Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Through REST API, How to get RITM and Task values for each Request?

soibam_ana_sing
Giga Contributor

we are integration SNOW with third party platform " Hybrid cloud management" through REST APIs. we use only REST APIs for integration. 

We order Catalog Items through Service catalog APIs(https://docs.servicenow.com/bundle/istanbul-servicenow-platform/page/integrate/inbound-rest/reference/r_SCatAPIAddItemToCartPOST.html#ariaid-title12)  and a request is generated (REQ0010180). Through REST APIs, How would I get RITM and Task values for each Request? 

we don't want to use  client script gliderecord

 

regards

Soibam

6 REPLIES 6

thank you very much. great help.

Hitoshi Ozawa
Giga Sage
Giga Sage

Can create a Scripted REST API to get everything in 1 REST call.

(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
    var number = request.pathParams.number;

    var taskInfo = {};
    try {
        var grRTIM = new GlideRecord('sc_req_item');
        if (grRTIM.get('number', number)) {
            taskInfo = {
                'number': number.toString(),
                'item': grRTIM.cat_item.name.toString(),
                'stage': grRTIM.stage.toString(),
                'request': grRTIM.request.number.toString(),
                'requested_for': grRTIM.requested_for.name.toString(),
                'opened_by': grRTIM.opened_by.name.toString(),
                'due_date': grRTIM.due_date.toString(),
                'updated': grRTIM.sys_updated_on.toString()
            };
            var grTask = new GlideRecord('sc_task');
            grTask.addQuery('parent', grRTIM.sys_id);
            grTask.query();
            var taskList = [];
            while (grTask.next()) {
                var taskNumber = grTask.number;
                var taskPriority = grTask.priority;
                taskList.push({
                    'number': grTask.number.toString(),
                    'priority': grTask.priority.toString(),
                    'state': grTask.state.toString(),
                    'short_description': grTask.short_description.toString(),
                    'assignment_group': grTask.assignment_group.name.toString(),
                    'opened': grTask.opened_at.toString()
                });

            }
            //gs.info(JSON.stringify(taskList));
            taskInfo['tasks'] = taskList;
        }
    } catch (e) {
        gs.error("ERROR=", e);
    }
    return taskInfo;
})(request, response);

Example result:

{
  "result": {
    "number": "RITM0010040",
    "item": "mrvs script",
    "stage": "Assess or Scope Task",
    "request": "REQ0010033",
    "requested_for": "System Administrator",
    "opened_by": "System Administrator",
    "due_date": "2020-10-06 09:10:08",
    "updated": "2020-10-04 09:10:10",
    "tasks": [
      {
        "number": "SCTASK0010059",
        "priority": "4",
        "state": "-5",
        "short_description": "Provide requested service",
        "assignment_group": "Software",
        "opened": "2020-10-04 09:10:09"
      },
      {
        "number": "SCTASK0010058",
        "priority": "4",
        "state": "1",
        "short_description": "Assess or Scope Task",
        "assignment_group": "Field Services",
        "opened": "2020-10-04 09:10:08"
      }
    ]
  }
}