- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2025 04:00 AM
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2025 05:47 AM
what is field type for u_category_lead in table sn_customerservice_category_leader?
Seems it's a list field holding multiple sysIds and hence it's not working
If yes then script include function needs change so that it pushes the values correctly
var LeaderApproval = Class.create();
LeaderApproval.prototype = {
initialize: function() {},
getCategory: function(category, functions, regionValue) {
var categoryList = [];
var categoryValue = '';
var functionsValue = '';
var grn = new GlideRecord("sn_customerservice_procurement_category");
grn.addQuery("sys_id", category);
grn.addQuery("u_procurement_function", functions);
grn.query();
if (grn.next()) {
categoryValue = grn.u_procurement_category.toString();
functionsValue = grn.u_procurement_function.toString();
}
var arrayUtil = new global.ArrayUtil();
var gr = new GlideRecord('sn_customerservice_category_leader');
gr.addQuery('u_category', categoryValue);
gr.addQuery('u_tower', functionsValue);
gr.addQuery('u_region', regionValue);
gr.query();
while (gr.next()) {
var arr = gr.u_category_lead.toString().split(',');
if (arr.length > 0) {
// if it's array then concat and store in categoryList array
categoryList = arrayUtil.concat(categoryList, arr);
} else {
categoryList.push(gr.u_category_lead.toString());
}
}
categoryList = arrayUtil.unique(categoryList); // get unique
//return "sys_idIN" + categoryList;
return categoryList;
},
type: 'LeaderApproval'
};
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2025 04:05 AM
I assume those are user sysIds and those users are active, not locked out
if yes then try this -> use toString() while setting the value to field
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2025 04:07 AM
from where are you inserting the record? If you are using GlideRecord then ACLs should not evaluate.
there is an OOB field level WRITE ACL which allows only maint user to edit that
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2025 04:09 AM
I am able to create it via background script as admin
var gr1 = new GlideRecord('sysapproval_approver');
gr1.initialize();
gr1.sysapproval = '1b451fcf1b431a108e08fc451a4bcb6f';
gr1.document_id = '1b451fcf1b431a108e08fc451a4bcb6f';
gr1.source_table = 'sc_req_item';
gr1.approver = gs.getUserID();
gr1.state = 'requested';
gr1.insert();
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2025 04:31 AM
value for users are coming in "approvers1" field as array.(sys_if of 2-3 users separated by comma).
In order to insert approval record they need to be split and added but using "For" loop it is not working