Scripted rest api to query "task_ci" table to get change request number , start date and end date
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-03-2024 02:09 AM - edited 04-03-2024 02:09 AM
Hi,
I wrote scripted rest api to query "task_ci" table to get change request number , change request start date and end date. Below is complete code for same.
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var map = [];
var task = new GlideRecord('task_ci');
task.addEncodedQuery('task.sys_class_name=change_request^task.ref_change_request.state=-1');
task.query();
while (task.next()) {
var change = {};
var ciList = [];
var changeId = task.ref_change_request.sys_id;
var affectedCIs = task.ci_item.sys_id;
ciList.push(affectedCIs); //Add new items to the end of the array
change.changeId = changeId;
change.ciList = ciList;
change.start_date = task.ref_change_request.start_date;
change.end_date = task.ref_change_request.end_date;
map.push(change);
}
response.setStatus(200);
response.setContentType('application/json');
response.setBody({
status: 'success',
data: map,
message: 'Task returned changerequest sys id and corresponding effected ci sysid.',
});
})(request, response);
Issue:
a)start date and end date returns empty.
b)Even querying change request number also I am not able to retrieve.
References
https://www.servicenow.com/community/developer-forum/how-do-i-filter-a-gliderecord-query-for-tasks-b...
https://stackoverflow.com/questions/54030626/how-do-i-filter-a-gliderecord-query-for-tasks-by-a-chan...

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-03-2024 05:45 AM
@Surya007 Please update the script as follows and see if it works.
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var map = [];
var task = new GlideRecord('task_ci');
task.addEncodedQuery('task.sys_class_name=change_request^task.ref_change_request.state=-1');
task.query();
while (task.next()) {
var change = {};
var ciList = [];
var changeId = task.ref_change_request.sys_id+'';
var affectedCIs = task.ci_item.sys_id+'';
ciList.push(affectedCIs); //Add new items to the end of the array
change.changeId = changeId+'';
change.ciList = ciList;
change.start_date = task.ref_change_request.start_date +'';
change.end_date = task.ref_change_request.end_date+'';
map.push(change);
}
response.setStatus(200);
response.setContentType('application/json');
response.setBody({
status: 'success',
data: map,
message: 'Task returned changerequest sys id and corresponding effected ci sysid.',
});
})(request, response);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-03-2024 01:49 PM
@Sandeep RajputThanks, even after adding ' '(single quotes) to start_date and end_date they are displaying value as empty. Using ref_change_request from task no value is returning except sysid using dot walk.
Any other suggestions please?
Thanks,
Surya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-07-2024 10:43 PM
Hi,
Anyone has any inputs ? Thanks a lot.
Regards,
Surya