Question regarding executeAsync() RESTMessageV2 in outbound
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-13-2022 11:00 PM
Hi Community,
I have created an asynchronous business rule to trigger a REST Message which execute asynchronously (using executeAsync() method) to create a ticket in third party system. As per my understanding any lines after executeAsync() method will not work. But, in my case I had defined getStatusCode and getBody methods in the script after executeAsync(), and I am able to parse the response. How is this possible? I am missing something? or my understanding is incorrect?
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-13-2022 11:14 PM
Hi,
Share your script.
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-13-2022 11:25 PM
Hi
Script Include:
sendNewTicket: function(incident){
var newTicket = new sn_ws.RESTMessageV2('rest message','post');
newTicket.setRequestHeader('Authorization','Bearer '+this.accessToken);
newTicket.setRequestHeader('Content-Type','application/json');
var requestBody = {"number": "123456"};
newTicket.setRequestBody(JSON.stringify(requestBody));
var response = newTicket.executeAsync();
var httpStatus = response.getStatusCode();
var responsebody = response.getBody();
var parseResponse = JSON.parse(responsebody);
var ticketId = parseResponse.id;
// I am updating incident object from here by passing current object from business rule to script include
incident.correlation_id = ticketId
incident.update();
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-13-2022 11:29 PM
Hi
sendNewTicket: function(incident){
var newTicket = new sn_ws.RESTMessageV2('rest message','post');
newTicket.setRequestHeader('Authorization','Bearer '+this.accessToken);
newTicket.setRequestHeader('Content-Type','application/json');
var requestBody = {"number": "123456"};
newTicket.setRequestBody(JSON.stringify(requestBody));
var response = newTicket.executeAsync();
var httpStatus = response.getStatusCode();
var responsebody = response.getBody();
var parseResponse = JSON.parse(responsebody);
var ticketId = parseResponse.id;
// I am updating incident object from here by passing current object from business rule to script include, ex:
incident.correlation_id = ticketId
incident.update();
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-13-2022 11:14 PM
This KB may be helpful
https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0694711