g_scratchpad not working for client script in Agent Workspace Incident creation form
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-26-2020 04:39 AM
Hi,
I am trying to populate sub category list in agent workspace incident creation.
On selecting the category the sub-category L1 list doesn't populate.
This is the client script:
function onLoad() {
//alert ("CS running now");
//Type appropriate comment here, and begin script below
var categoriesTree = g_scratchpad.atosChoices;
var renderFields = g_scratchpad.choicesFields;
var setFields = g_scratchpad.setFields;
for (var rF = 0; rF < renderFields.length; rF++) {
g_form.clearOptions(renderFields[rF]);
g_form.addOption(renderFields[rF], '', '-- None --', 0);
}
var _dependentValue = {}; // Stash for dependent values
// Process categories tree
for (var cat = 0; cat < categoriesTree.length; cat++) {
// At first add categories which don't depend on any other values
if (categoriesTree[cat].dependent == "") {
g_form.addOption(categoriesTree[cat].name, categoriesTree[cat].value, categoriesTree[cat].label);
}
// If there is already value set for field being processed then save it in the stash..
if (setFields[categoriesTree[cat].name] == categoriesTree[cat].value) {
_dependentValue[categoriesTree[cat].value] = categoriesTree[cat].value;
g_form.setValue(categoriesTree[cat].name, categoriesTree[cat].value); //..and set correct value on the form
//jslog("vals: " + categoriesTree[cat].name + " - " + categoriesTree[cat].value + " setFields: " + setFields[categoriesTree[cat].name]);
}
// If currently processed category is already set (and exists in stash) add
// options to slave list/category
if (_dependentValue[categoriesTree[cat].dependent]) {
if (categoriesTree[cat].value != setFields[categoriesTree[cat].name]) {
g_form.addOption(categoriesTree[cat].name, categoriesTree[cat].value, categoriesTree[cat].label);
// console.log("vals2: " + categoriesTree[cat].name + " - " + categoriesTree[cat].value );
}
}
}
}
Any help is appreciated.
- Labels:
-
Agent Workspace
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-26-2020 04:50 AM
In your client script did you set UI type as ALL ? please validate.
It works.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-26-2020 04:53 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-27-2020 01:59 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-27-2020 02:13 AM
Hi,
Did you check you are getting value for this
renderFields
Try to add alert and check
Possibly it is empty or undefined and you are trying to use length on that in the for
function onLoad() {
//alert ("CS running now");
//Type appropriate comment here, and begin script below
var categoriesTree = g_scratchpad.atosChoices;
var renderFields = g_scratchpad.choicesFields;
var setFields = g_scratchpad.setFields;
alert(renderFields);
for (var rF = 0; rF < renderFields.length; rF++) {
g_form.clearOptions(renderFields[rF]);
g_form.addOption(renderFields[rF], '', '-- None --', 0);
}
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
