- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-30-2022 11:20 PM
I have three fields in a custom table as below.
Whenever a new record is inserted with all the values I need to write a script to insert the same with labels and values in the sys_choice table with elements as Category and SubCategory. The issue I am facing here is I need to do insert 2 times with different element values for one record inserted in the custom table. Any idea how can I achieve this?
I really appreciate any help you can provide.
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-31-2022 03:49 AM
Hi Raviteja,
Create a business rule on the custom table that executes on "insert".
Check on "Advanced" and add the following script. I've named fields "fuctionalarea" and added fields to enter table name, language, value, and label to set on the choice.
(function executeRule(current, previous /*null when async*/ ) {
if (current.category == '' || current.functionalarea == '' || current.subcategory == '') {
return;
}
var fieldList = ['category', 'subcategory', 'functionalarea'];
var name = current.name; // 'incident';
var lang = current.language; // 'en';
var value = current.value; // 'test';
var label = current.label; // 'test';
for (var i = 0; i < fieldList.length; i++) {
insertRecord(name, lang, value, label, fieldList[i]);
}
function insertRecord(name, lang, value, label, field) {
var grChoice = new GlideRecord("sys_choice");
grChoice.addQuery('name', name);
grChoice.addQuery('element', field);
grChoice.addQuery('language', lang);
grChoice.addQuery('value', value);
grChoice.query();
if (!checkGR.hasNext()) {
var grChoice2 = new GlideRecord("sys_choice");
grChoice2.initialize();
grChoice2.setValue('name', name);
grChoice2.setValue('element', field);
grChoice2.setValue('language', lang);
grChoice2.setValue('value', value);
grChoice2.setValue('label', label);
grChoice2.insert();
}
}
})(current, previous);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-30-2022 11:34 PM
Hi
Here is your solution:
Mark my answer correct & Helpful, if Applicable.
Thanks,
Sandeep
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-30-2022 11:44 PM
Hi Sandeep
Here I have 3 fields so need to do 3 insertions with different elements.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-31-2022 12:07 AM
What have you done as scripting, and can you clarify how are you mapping the fields from custom table to sys_choice?
Aman Kumar
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-31-2022 12:13 AM
Hi,
when 1 record gets inserted into your custom table you will have 1 category, 1 subcategory
Then you can use GlideRecord 2 times; what's the challenge?
Can you share the script you are started?
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader