- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-18-2020 08:41 AM
Hello all,
I have the following REST API call inside my script include.
However, instead of this call, I want to configure a call to the third system through a MID server.
At first I created a new MID Server on my instance with all the needed information (name "myMID")
How can I use this MID server inside my code?
My code is the following:
var r=new sn_ws.RESTMessageV2();
//endpoint
r.setEndpoint("aURL"); //set a url endpoint (third system's endpoint)
r.setHttpMethod("post"); //HTTP method
//set the queryParameters (the first parameter is the name of the parameter that the third system is waiting for)
r.setQueryParameter("id",id); //id is passed from catalog client script
r.setQueryParameter("t",t); //t is passed from catalog client script
var response=r.execute(); //send the REST API call
var responseBody=response.getBody(); //receive back the response
var answer=JSON.parse(responseBody);
...
How can send this call from the MID server??
Solved! Go to Solution.
- Labels:
-
Integrations
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-19-2020 02:37 AM
Hi,
Points below
You are not able to connect to that API from Postman since it is in client's network
1) I configured the MID server on my instance and I put it in the http request tab of an outgoing message. Do I need to make anything else?
- The MID Server should be in client's internal network and you should check by hitting the endpoint of API when you login to MID Server to confirm if mid server can reach. If not get client's network team involved and allow MID Server machine's IP address to be reaching to that client API
2) I guess I need somehow to install the mid server on the client's network? Am I right?
- Yes
3) To make the call, I just need to use the outbound message that uses the mid server?
- Yes; ensure you first test the endpoint from mid server
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
‎11-18-2020 08:56 AM
//set a MID server name if one wants to run the message on MID //r.setMIDServer('MY_MID_SERVER'); //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);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-19-2020 02:04 AM
Hey
r.setMIDServer('MY_MID_SERVER');
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-19-2020 06:11 AM
Yes and No. If you have code taking data in the return you need to ignore sensor process from running. So add below line to the code.
//r.setEccParameter('skip_sensor', true);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-30-2020 03:54 AM
Hi
I would use the r.setMIDServer('MY_MID_SERVER')
and use always REST messages.
This way the authentication, authorization, etc. is handled by ServiceNow itself.
If you have enabled discovery - then there is a parameter skip_sensor you need to disable for this particular web call.
Cheers,
Joro
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-20-2020 03:18 AM
Hey
I don't understand if I need to include also the method waitForResponse(),
since I am making a post call to the third system through the mid server, but I am waiting also for a response from the third system.