How to fetch both variable and Multirow variables on RITM using REST api
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-25-2024 03:27 AM
Hi All,
Hope you are doing good.
I'm developing a Scripted REST API GET method to retrieve a single RITM from ServiceNow. The RITM form includes both variable and multi-row variables. Please see the attached RITM details for reference. I've managed to retrieve variable information but am unable to get the values for multi-row variables.
Can someone help me combine all the variables into a single Scripted REST API response?
Thank you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-25-2024 03:45 AM - edited 07-25-2024 03:47 AM
Hello @Nurulaslah Anua ,
You can query 'sc_req_item' table and filter it for your catalog item or RITM number. Please refer below script-
var values = '';
var ritm = 'RITM0010001';
var gr = new GlideRecord('sc_req_item');
gr.addQuery('number', ritm);
gr.query();
var arr = [];
while(gr.next()) {
values += 'Summary is: ' + gr.variables.requested_for+ ',';
values += 'Description is: ' + gr.variables.is_this_a_replacement_for_a_lost_or_broken_iphone+ ',';
values += 'Due Date is: ' + gr.variables.monthly_data_allowance;
values += 'MRVS Data : ' + gr.variables.mrvs_var_name; //this will give value in the JSON
}
gs.info(values);
If my answer solves your issue, please mark it as Accepted ✔️& Helpful👍!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-29-2024 08:20 PM
Hi,
Thank you for your response.
I'm having trouble with this code. It's returning a status code of 200 OK, but the response body is empty "".
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-29-2024 11:04 PM
Hi @Nurulaslah Anua ,
Please try the below:
(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var ritm = new GlideRecord('sc_req_item');
//Replace with RITm's sysID
if (ritm.get('524c038083f70210e1c15d10feaad3bf')) {
var objectArray = [];
var mrvsSet = ritm.variables.mobile_devices_set; //Replace with mrvs name
var mvrs = JSON.parse(mrvsSet);
var varValues = '';
for (var i = 0; i < mvrs.length; i++) {
varValues += ritm.variables.division + '\n'; //variables name
varValues += ritm.variables.requested_by.getDisplayValue() + '\n'; //variables name
varValues += mvrs[i].storage + '\n'; //variables of mrvs(change the name as per your mrvs)
varValues += mvrs[i].device_type + '\n'; //variables of mrvs(change the name as per your mrvs)
objectArray.push(varValues);
}
}
return objectArray;
})(request, response);
Replace the variable's name as per your item.
Mark this as Helpful / Accept the Solution if this helps.