Ankur Bawiskar
Tera Patron

Hi Raphel,

yes this is possible i.e. calling REST API and you can call it from any server side script such as BR, Script Include, Workflow etc

Sample outbound rest script below

https://community.servicenow.com/community?id=community_question&sys_id=947e0048dbb7d740e0e80b55ca96...

https://community.servicenow.com/community?id=community_question&sys_id=b7c647a5db1cdbc01dcaf3231f96...

https://developer.servicenow.com/app.do/app.do#!/lp/technology_partner_program/app_store_learnv2_rest_kingston_exercise_write_a_script_to_invoke_the_rest_message?v=kingston

Mark Correct if this solves your issue and also mark Helpful if you find my response worthy based on the impact.
Thanks
Ankur

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

Not applicable

Hi Raphael,

Here is a sample script. Let me know if you need any modifications. Also, I added comments for your understanding

var request = new sn_ws.RESTMessageV2();
request.setEndpoint('ENDPOINT of thord party tool');
request.setHttpMethod('POST'); //mention here POST or GET

/*Use one of the below statement to set authentication*/
//request.setBasicAuth(user,password);
request.setRequestHeader('Authorization','Basic SU5UTFxBNjEzNjIzOklORllAMTAwOA==');

//Set here how you are sending the data i.e. XML or JSON
request.setRequestHeader("Accept","application/xml");
request.setRequestHeader('Content-Type','application/xml');



request.setRequestBody('Give the body here to send');
		
request.setMIDServer('MIDSERVER'); //Set Mid server if you are using any
		
var response = request.execute(); //It will send the post request to thord party tool


//Use below code to check response
//response.waitForResponse(50);
		
//response.setHttpTimeout(10000);
var responseBody =  response.getBody(); //this now holds the XML inside the envelope, as a string
var xmlDoc = new XMLDocument2();
xmlDoc.parseXML(responseBody);
var val = xmlDoc.getNodeText('/ID');

 

Please mark this comment as Correct Answer/Helpful if it helped you.

Cheers,

Hardit Singh

View solution in original post

Thanks for this. When declaring the endpoint, should it be the link to the third party tool?

 

Is this where I can declare what variable values will I send?

request.setRequestBody('Give the body here to send');

Not applicable

Yes, in the endpoint the link which third party tool has provided.

In the request body you will give what values you have to send. Ex. if you want to send values in JSON

 

{"short_description":"TEST","category":"CategoryTest"}

What if I want to assign values dynamically in the request body? Can I use current.short_description for example