- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-20-2020 03:23 PM
Im stuck with a Scripted Rest API. I am going to be posting JSON to ServiceNow via powershell. I would like to have one POST but with Multiple records like so
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-22-2020 02:35 PM
Anyone looking to loop through a Scripted Rest message to update an import set table, With the help of Mike and Pradeep, this is working for me, modify for your needs
(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var sn;
var bios;
var requestBody = request.body;
var requestString = requestBody.dataString;
var parser = new JSONParser();
var result = parser.parse(requestString);
//gs.log("******", result);
for (var i = 0; i <result.length; i++) {
sn = result[i].u_serial_number; // Device Serial Number
bios = result[i].u_bios_password; //New PW to update
var record = new GlideRecord('tablename');// Staging table name
record.initialize();
record.u_serial_number = sn;
record.u_bios_password = bios;
record.insert();
}
return {
"response": "Successfully saved request into " + request.pathParams.tablename + " table.",
"requestString": result
};
})(request, response);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-20-2020 03:57 PM
Hi Danny,
Could you please try with the updated code below.
(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var sn;
var bios;
var requestBody = request.body;
var requestString = requestBody.dataString;
var obj = JSON.stringify(requestString);
// gs.log("The Object ", obj);
for (var key in requestString)
sn = requestString[key].u_serial_number; // Device Serial Number
bios = requestString[i].u_bios_password; //New PW to update
var record = new GlideRecord('u_bios_import');
record.initialize();
record.u_serial_number = sn;
record.u_bios_password = bios;
record.insert();
}
return {
"response": "Successfully saved request into " + request.pathParams.tablename + " table.",
"requestString": requestString
};
})(request, response);
Note: Untested code.
- Pradeep Sharma

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-20-2020 05:26 PM
try
(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var sn;
var bios;
var requestBody = request.body;
var requestString = requestBody.dataString;
var obj = JSON.stringify(requestString);
var parser = new JSONParser();
var parameterArr = parser.parse(obj);
for (var i = 0; i < parameterArr.length; i++) {
sn = parameterArr[i].u_serial_number; // Device Serial Number
bios = parameterArr[i].u_bios_password; //New PW to update
var record = new GlideRecord('u_bios_import');
record.initialize();
record.u_serial_number = sn;
record.u_bios_password = bios;
record.insert();
}
return {
"response": "Successfully saved request into " + request.pathParams.tablename + " table.",
"requestString": requestString
};
})(request, response);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-21-2020 02:46 PM
Hey Mike,
I believe it is working, Now im getting this error on my transform map
on my transform map i am going to coalesce on Serial_number on the CMDB_CI table.
"800 - Unable to resolve target record, coalesce values not present: u_serial_number"

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-21-2020 02:53 PM
Hi Danny,
Could you please try the resolution steps mentioned here https://hi.service-now.com/kb_view.do?sysparm_article=KB0547762
-Pradeep Sharma