- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-10-2017 10:16 PM
Hi,
I need help in sending response from Servicenow to Third party using REST API.
I have a custom table and need to embed Record number in this as a request and SNOW has to send response with 10 fields information. 3rd party will not send sys_id and so i need to have an scripted REST so that Record number in request.
Please help me in this. They need only response.
Thanks
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-13-2017 09:11 PM
Hi Maneesh,
Please try the below code it should work.
//var reqId = request.queryParams.rec_number;
var reqId = request.pathParams.rec_number;
var respBody = {};
var req = {};
var content = [];
var i=0;
var gr = new GlideRecord('table_name');
gr.addQuery('number',reqId);
gr.query();
while(gr.next()){
req = {};
req.number = gr.number;
req.short_description = gr.short_description;
req.priority = gr.priority;
content[i] = req;
i++;
}
if(content.length == 0 ){
respBody.status = 'Error' ;
respBody.content = 'No record found';
}else{
respBody.status = 'success';
respBody.content = content;
}
response.setContentType('application/json');
response.setStatus(200);
response.setBody(respBody);
-Udhay
Please Hit like, Helpful or Correct depending on the impact of the response
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-10-2017 10:33 PM
Hi Maneesh,
You should create a scripted REST webservice API in your servicenow instance. It will provide you an endpoint URL, you can share this endpoint URL (including username & password) with the third party application and ask them to send the request.
You have to write the processing logic in your scripted REST webservice to handle the incoming request and provide a valid response.
You may refer the below URL for more details,
-Udhay
Please Hit like, Helpful or Correct depending on the impact of the response
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-10-2017 10:47 PM
response.getStreamWriter().writeString("Sys Id is :" + obj.getValue('sys_id'));
you can use this response.getStreamWriter to handle the response
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-10-2017 11:01 PM
In addtion to what Surendra mentioned, you can also use setBody() function to set the response body since you are trying to send information of 10 fields in the response body.
Eg:
var body = {};
body.field1 = 'value1';
body.field2 = 'value2';
body.field3 = 'value3';
response.setBody(body);
-Udhay
Please Hit like, Helpful or Correct depending on the impact of the response
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-11-2017 07:34 AM
Thanks Udhay and Surendra for the resonse.
I have started creating the REST API now I am struck with response setup in code. Can you please also help me in the coding:
3rd party will send the record number
In response SNOW has to send fields value dynamically related to that record
Please help me in code logic.
Thanks