- 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:36 AM - edited 01-30-2025 04:37 AM
try this and share the log
if (approvers1.length > 0) {
for (var j = 0; j < approvers1.length; j++) {
var gr1 = new GlideRecord('sysapproval_approver');
gs.info("Approval 1-" + approvers1[j].toString());
gr1.initialize();
gr1.sysapproval = current.sys_id;
gr1.document_id = current.sys_id;
gr1.source_table = 'sn_customerservice_north_america_procurement';
gr1.approver = approvers1[j].toString();
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:57 AM
Approval 1-b8da035adb8aafc4227d18df4b96193d,20a26b08db97a740e4f5138b4b961998
approve isb8da035adb8aafc4227d18df4b96193d,20a26b08db97a740e4f5138b4b961998
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2025 05:03 AM
approvers1 is an array
So seems each array elements contains more than 1 sysId as comma separated values
please share the complete script how that array is getting populated
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 05:10 AM
approvers1 is getting populated via script include. We are fetching multiple approver sysid then need to create separate approval record for each of them
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2025 05:13 AM
this script is not related to the array of approver
can you share the relevant script
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader