Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

ui builder client script ,UX Client Script Include

kack l
Tera Expert


I'm working on a "furigana auto-generation" feature in UI Builder on ServiceNow Workspace.
In a Client Script (onChange event), I wrote the following code:
,UX Client Script Include:

function include({ imports }) {
console.log(' AutoKanaUtil 被载入');

const kanjiToHiragana = {
'髙': 'たか', '山': 'やま',
'養': 'よう', '蜂': 'ほう', '場': 'じょう',
};

function convertKana(input) {
console.log('🔠 convertKana 被呼び出された:', input);
if (typeof input !== 'string') return '';

let result = '';
for (let char of input) {
if (kanjiToHiragana[char]) {
result += kanjiToHiragana[char];
} else {
result += char;
}
}

return result;
}

return {
convertKana
};
}

ui builder client scrip:

function handler({ api, event, imports }) {
  console.log('🔍 onChange triggered with value:', event.payload?.value);
  console.log('📦 imports object:', imports);

  try {
    const kanaUtil = imports['sn_cwf_wrkspc.AutoKanaUtil']();
    if (!kanaUtil || typeof kanaUtil.convertKana !== 'function') {
      console.error(' convertKana ');
      return;
    }

    const inputValue = event.payload?.value || '';
    const kana = kanaUtil.convertKana(inputValue);
    console.log(' kana result:', kana);

   
    if (api.record) {
      api.record.u_hurikana = kana;     // api.record.setValue('u_hurikana', kana);
    } else if (event.record) {
      event.record.u_hurikana = kana;
    } else {
      console.error('No record object available—check the API docs for the proper setter.');
    }
  } catch (e) {
    console.error(' ', e);
  }
}

However, this causes a runtime error: Error: TypeError: Cannot set properties of undefined (setting 'u_hurikana')

Should I use something like api.record.u_hurikana = kana instead?

I would appreciate any clarification regarding limitations or best practices for modifying field values within UI Builder Client Scripts.



0 REPLIES 0