in log unable to get exact RITM & Task Details using scripted rest api

Emp 53
Tera Contributor

Hi,

Below is the script written to display RITM & Task Details

var arr = [];
var reqItem = new GlideRecord('sc_req_item');
reqItem.addQuery('request.number', reqNumber);
reqItem.query();

var resultArray = []; // Initialize an array to store the final result

while (reqItem.next()) {

var ritmSysId = reqItem.sys_id;

var requestDetails = {
requestNumber: reqItem.number,
};

resultArray.push(requestDetails);

var taskDetailsArray = []; // Initialize an array to store task details for each request

var task = new GlideRecord('sc_task');
task.addQuery('request_item', ritmSysId);
task.query();

while (task.next()) {

var taskDetails = {
number: task.getValue('number')

};
taskDetailsArray.push(taskDetails);
}requestDetails.taskdetails = taskDetailsArray;
}response.setBody({
result: resultArray
}); in response i am getting same RITM number twice instead of 2RITMS'

1 ACCEPTED SOLUTION

Anil Lande
Kilo Patron

Hi,

Please try below:

var arr = [];
var reqItem = new GlideRecord('sc_req_item');
reqItem.addQuery('request.number', reqNumber);
reqItem.query();

var resultArray = []; // Initialize an array to store the final result
while (reqItem.next()) {
    var ritmSysId = reqItem.sys_id.toString();
    var requestDetails = {
        requestNumber: reqItem.getValue('number')  // use getValue or toString() methods to convert it to string
    };
    resultArray.push(requestDetails);
    var taskDetailsArray = []; // Initialize an array to store task details for each request
    var task = new GlideRecord('sc_task');
    task.addQuery('request_item', ritmSysId);
    task.query();
    while (task.next()) {
        var taskDetails = {
            number: task.getValue('number')
        };
        taskDetailsArray.push(taskDetails);
    }
    requestDetails.taskdetails = taskDetailsArray;
}
response.setBody({
    result: resultArray
});
Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande

View solution in original post

1 REPLY 1

Anil Lande
Kilo Patron

Hi,

Please try below:

var arr = [];
var reqItem = new GlideRecord('sc_req_item');
reqItem.addQuery('request.number', reqNumber);
reqItem.query();

var resultArray = []; // Initialize an array to store the final result
while (reqItem.next()) {
    var ritmSysId = reqItem.sys_id.toString();
    var requestDetails = {
        requestNumber: reqItem.getValue('number')  // use getValue or toString() methods to convert it to string
    };
    resultArray.push(requestDetails);
    var taskDetailsArray = []; // Initialize an array to store task details for each request
    var task = new GlideRecord('sc_task');
    task.addQuery('request_item', ritmSysId);
    task.query();
    while (task.next()) {
        var taskDetails = {
            number: task.getValue('number')
        };
        taskDetailsArray.push(taskDetails);
    }
    requestDetails.taskdetails = taskDetailsArray;
}
response.setBody({
    result: resultArray
});
Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande