- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-08-2018 06:24 AM
I am trying to post data to another SNOW instance using table API(for Incident in my case).
1. I have created an Outbound REST message and a post method.
2. I wrote a Scheduled Job to call the rest message. In the script using .setRequestBody(), i set the body to a JSON, like, '{"caller_id":"Abel Tuter","short_description":"from REST POST123"}'. Here I am able to create a new incident with caller_id as Abel Tuter and Short Description as from REST POST123 and Status as 201 created.
3. Now I am using the below script to create a new JSON string
var jsonobj={};
var count;
var query = 'active=true^assignment_group!=ITIL^ORassignment_group=NULL^assignment_group!=NULL^assigned_to!=NULL^category!=NULL';
var gr = new GlideRecord('incident');
gr.addEncodedQuery(query);
gr.query();
while(gr.next()){
jsonobj += '{"assignment_group":"'+gr.assignment_group+'","Short Description":"'+gr.short_description+'"},';
}
count = '{"records":['+jsonobj.toString().substring(15,jsonobj.toString().length)+']}';
var avc=count.substring(0,count.length-3);
4. Now I am using this JSON string to set the request body, it is like:
'{"description":"JSON String"}'
var obj = '{"description":"'+avc+']}"}';
try {
var r = new sn_ws.RESTMessageV2('outbound rest to send json', 'post');
r.setRequestBody(obj);
var response = r.execute();
This is giving me 400 bad request error. In the outbound HTTP requests log, the request body is like this:
{"description":"{"records":[{"assignment_group":"287ebd7da9fe198100f92cc8d1d2154e","Short Descriptio**body truncated**
And the response body is:
{"error":{"detail":"Cannot decode: java.io.StringReader@121c0da","message":"Exception while reading **body truncated**
If i run the below code in background script I get the response pasted below the code:
var jsonobj={};
var count;
var query = 'active=true^assignment_group!=ITIL^ORassignment_group=NULL^assignment_group!=NULL^assigned_to!=NULL^category!=NULL';
var gr = new GlideRecord('incident');
gr.addEncodedQuery(query);
gr.query();
while(gr.next()){
jsonobj += '{"assignment_group":"'+gr.assignment_group+'","Short Description":"'+gr.short_description+'"},';
}
count = '{"records":['+jsonobj.toString().substring(15,jsonobj.toString().length)+']}';
var avc=count.substring(0,count.length-3);
var obj = '{"description":"'+avc+']}"}';
gs.info(obj)
*** Script: {"description":"{"records":[{"assignment_group":"287ebd7da9fe198100f92cc8d1d2154e","Short Description":"Network file shares access issue"},{"assignment_group":"287ebd7da9fe198100f92cc8d1d2154e","Short Description":"Wireless access is down in my area"},{"assignment_group":"8a4dde73c6112278017a6a4baf547aa7","Short Description":"I can't launch my VPN client since the last software update"},{"assignment_group":"8a5055c9c61122780043563ef53438e3","Short Description":"Rain is leaking on main DNS Server"},{"assignment_group":"d625dccec0a8016700a222a0f7900d06","Short Description":"How do I create a sub-folder"},{"assignment_group":"d625dccec0a8016700a222a0f7900d06","Short Description":"I can't get my weather report"},{"assignment_group":"d625dccec0a8016700a222a0f7900d06","Short Description":"Request for a new service"},{"assignment_group":"8a4dde73c6112278017a6a4baf547aa7","Short Description":"Issue with email"},{"assignment_group":"8a5055c9c61122780043563ef53438e3","Short Description":"Network storage unavailable"},{"assignment_group":"8a5055c9c61122780043563ef53438e3","Short Description":"Can't access Exchange server - is it down?"},{"assignment_group":"8a4dde73c6112278017a6a4baf547aa7","Short Description":"Manager can't access SAP Controlling application"},{"assignment_group":"8a4dde73c6112278017a6a4baf547aa7","Short Description":"SAP Financial Accounting application appears to be down"},{"assignment_group":"8a4dde73c6112278017a6a4baf547aa7","Short Description":"The SAP HR application is not accessible"},{"assignment_group":"73046b15db801300dea6dc50cf9619a0","Short Description":"form 16"}]}"}
According to my understanding this JSON string should get posted to description field of my provider instance. But it is not. Any help will be appreciated.
Regards
AS
Solved! Go to Solution.
- Labels:
-
Integrations

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-08-2018 08:05 AM
Here you go.
var jsonobj={};
var jsonArr=[];
var query = 'active=true^assignment_group!=ITIL^ORassignment_group=NULL^assignment_group!=NULL^assigned_to!=NULL^category!=NULL';
var gr = new GlideRecord('incident');
gr.addEncodedQuery(query);
gr.query();
while(gr.next()){
jsonobj={};
jsonobj["Assignment group"]= gr.getValue('assignment_group');
jsonobj["Short Description"]=gr.getValue('short_description');
jsonArr.push(jsonobj);
}
var obj={};
obj.description=JSON.stringify(jsonArr);
try {
var r = new sn_ws.RESTMessageV2('outbound rest to send json', 'post');
r.setRequestBody(JSON.stringify(obj));
//if the message is configured to communicate through ECC queue, either
//by setting a MID server or calling executeAsync, one needs to set skip_sensor
//to true. Otherwise, one may get an intermittent error that the response body is null
//r.setEccParameter('skip_sensor', true);
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
}
catch(ex) {
var message = ex.message;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-08-2018 06:38 AM
gr.assignment_group.toString()
Try Once where ever you are usning gr.object, use gr.object.toString();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-08-2018 06:56 AM
same result, 400
Thanks
AS

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-08-2018 06:43 AM
I assume that you are not getting this error when testing it directly from the Outbound Rest Message you created?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-08-2018 06:53 AM
I tried testing outbound rest message with the above mentioned JSON string as content. But there is same result.
Thanks
AS