- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-28-2025 03:00 AM
Hi All,
I have a catalog form with 2 variable sets:
I want to pass the values in JSON format so that the output looks like:
"[{\"serial\":\"1\",\"datetime\":\"2\",\"target_version\":\"3\"},{\"site_wan_iterface\":\"4\",\"port_num\":\"5\",\"bandwidth\":\"6\"}]"
I have written below script:
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-28-2025 03:28 AM
so basically you want to combine both the json array and keep only 1 and then send
try this
function addOSUpgrade(grRITM2) {
var ritm_variables2 = {};
var add_os = [];
for (var prop2 in grRITM2.variables) {
if (prop2 == 'os_upgrade_configuration') {
ritm_variables2.vars = JSON.parse(grRITM2.variables.os_upgrade_configuration.toString());
for (var i = 0; i < ritm_variables2.vars.length; i++) {
var sserial = setSerial(ritm_variables2.vars[i].serial);
var sdatetime = setDateTime(ritm_variables2.vars[i].datetime);
var starget = setTargetVersion(ritm_variables2.vars[i].target_version);
var obj2 = {
"serial": sserial,
"datetime": sdatetime,
"target_version": starget
};
add_os.push(obj2);
}
}
}
return add_os;
}
function addWANInterface(grRITM3) {
var ritm_variables3 = {};
var add_wan = [];
for (var prop3 in grRITM3.variables) {
if (prop3 == 'wan_interface_bandwidth_configuration') {
ritm_variables3.vars = JSON.parse(grRITM3.variables.wan_interface_bandwidth_configuration.toString());
for (var i = 0; i < ritm_variables3.vars.length; i++) {
var ssitewan = setWanInterface(ritm_variables3.vars[i].site_wan_iterface);
var sportnum = setPortNum(ritm_variables3.vars[i].port_num);
var sbandwidth = setBandwidth(ritm_variables3.vars[i].bandwidth);
var obj3 = {
"site_wan_iterface": ssitewan,
"port_num": sportnum,
"bandwidth": sbandwidth
};
add_wan.push(obj3);
}
}
}
return add_wan;
}
var grRITM2 = new GlideRecord('sc_req_item');
grRITM2.addQuery('number', inputs.ritm_no);
grRITM2.query();
var finalObj = [];
if (grRITM2.next()) {
finalObj = finalObj.concat(addOSUpgrade(grRITM2));
}
var grRITM3 = new GlideRecord('sc_req_item');
grRITM3.addQuery('number', inputs.ritm_no);
grRITM3.query();
if (grRITM3.next()) {
finalObj = finalObj.concat(addWANInterface(grRITM3));
}
outputs.sdwans = JSON.stringify(finalObj);
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
03-28-2025 03:28 AM
so basically you want to combine both the json array and keep only 1 and then send
try this
function addOSUpgrade(grRITM2) {
var ritm_variables2 = {};
var add_os = [];
for (var prop2 in grRITM2.variables) {
if (prop2 == 'os_upgrade_configuration') {
ritm_variables2.vars = JSON.parse(grRITM2.variables.os_upgrade_configuration.toString());
for (var i = 0; i < ritm_variables2.vars.length; i++) {
var sserial = setSerial(ritm_variables2.vars[i].serial);
var sdatetime = setDateTime(ritm_variables2.vars[i].datetime);
var starget = setTargetVersion(ritm_variables2.vars[i].target_version);
var obj2 = {
"serial": sserial,
"datetime": sdatetime,
"target_version": starget
};
add_os.push(obj2);
}
}
}
return add_os;
}
function addWANInterface(grRITM3) {
var ritm_variables3 = {};
var add_wan = [];
for (var prop3 in grRITM3.variables) {
if (prop3 == 'wan_interface_bandwidth_configuration') {
ritm_variables3.vars = JSON.parse(grRITM3.variables.wan_interface_bandwidth_configuration.toString());
for (var i = 0; i < ritm_variables3.vars.length; i++) {
var ssitewan = setWanInterface(ritm_variables3.vars[i].site_wan_iterface);
var sportnum = setPortNum(ritm_variables3.vars[i].port_num);
var sbandwidth = setBandwidth(ritm_variables3.vars[i].bandwidth);
var obj3 = {
"site_wan_iterface": ssitewan,
"port_num": sportnum,
"bandwidth": sbandwidth
};
add_wan.push(obj3);
}
}
}
return add_wan;
}
var grRITM2 = new GlideRecord('sc_req_item');
grRITM2.addQuery('number', inputs.ritm_no);
grRITM2.query();
var finalObj = [];
if (grRITM2.next()) {
finalObj = finalObj.concat(addOSUpgrade(grRITM2));
}
var grRITM3 = new GlideRecord('sc_req_item');
grRITM3.addQuery('number', inputs.ritm_no);
grRITM3.query();
if (grRITM3.next()) {
finalObj = finalObj.concat(addWANInterface(grRITM3));
}
outputs.sdwans = JSON.stringify(finalObj);
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
03-28-2025 03:53 AM
Hi Ankur,
It is working now.
Thank you!