- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-17-2017 02:12 AM
Hello,
I have record producer and contain a variable Carton Number.
When the user enters the Carton number in Record producer, the code would need to take the carton number, plug it into this URL and process the json response and fill the value in rest of the field.
script include
sample_http_request : function(){
//var responseBody='[{"olpnId":"DTR000749357","dfcNbr":"6707","channelDesc":"COM : RDC","rdcNbr":"5120","storeNbr":"4116","customerName":"JASON HOLLIS (412)824-9406","orderId":"TX85658","omsOrderNbr":"16592175","webOrderNbr":"W494870456","orderStatus":"190 : Shipped","shipDateTime":"2016-06-02 14:13:09"}]';
//Sample json response
var carton_number = this.getParameter('sysparm_carton_number');
var r = new sn_ws.RESTMessageV2('getCarton Number', 'get');
r.setStringParameter('olpn', carton_number);
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
var obj = JSON.parse(responseBody);
var len = obj.length;
var obj2 = [];
for(i=0; i<len; i++){
var u_olpnId = obj[i].olpnId;
var u_dfcNbr= obj[i].dfcNbr;
var u_channelDesc = obj[i].channelDesc;
var u_rdcNbr = obj[i].rdcNbr;
var u_storeNbr = obj[i].storeNbr;
var u_customerName = obj[i].customerName;
var u_orderId= obj[i].orderId;
var u_omsOrderNbr = obj[i].omsOrderNbr;
var u_webOrderNbr= obj[i].webOrderNbr;
var u_orderStatus = obj[i].orderStatus;
var u_shipDateTime= obj[i].shipDateTime;
obj2[i] = {olpnId:u_olpnId, dfcNbr: u_dfcNbr, channelDesc : u_channelDesc, rdcNbr: u_rdcNbr, storeNbr: u_storeNbr, customerName: u_customerName,orderId : u_orderId, orderStatus: u_orderStatus, omsOrderNbr: u_omsOrderNbr, webOrderNbr: u_webOrderNbr,shipDateTime: u_shipDateTime,};
}
var json = new JSON();
var data = json.encode(obj2);//JSON formatted string
return data;
On change client script
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var gah = new GlideAjax('getCartonNumber');
gah.addParam('sysparm_name','sample_http_request');
gah.addParam('sysparm_carton_number',g_form.getValue('u_carton_number'));
gah.getXML(ajaxResponse);
function ajaxResponse(response) {
try{
var answer = response.responseXML.documentElement.getAttribute("answer");
// get result element and attributes
//alert('HEY');
//alert(answer);
answer = answer.evalJSON();
for(var i = 0; i < answer.length; i++) {
var u_olpnId = answer[i].olpnId;
var u_dfcNbr= answer[i].dfcNbr;
var u_channelDesc = answer[i].channelDesc;
var u_rdcNbr = answer[i].rdcNbr;
var u_storeNbr = answer[i].storeNbr;
var u_customerName = answer[i].customerName;
var u_orderId= answer[i].orderId;
var u_omsOrderNbr = answer[i].omsOrderNbr;
var u_webOrderNbr= answer[i].webOrderNbr;
var u_orderStatus = answer[i].orderStatus;
var u_shipDateTime= answer[i].shipDateTime;
//alert('feb 10 '+u_dfcNbr);
g_form.setValue('dfc',u_dfcNbr);
g_form.setValue('channelDesc',u_channelDesc);
g_form.setValue('rdcNbr',u_rdcNbr);
g_form.setValue('storeNbr',u_storeNbr);
g_form.setValue('customerName',u_customerName);
g_form.setValue('orderId',u_orderId);
g_form.setValue('omsOrderNbr',u_omsOrderNbr);
g_form.setValue('webOrderNbr',u_webOrderNbr);
g_form.setValue('orderStatus',u_orderStatus);
g_form.setValue('shipDateTime',u_shipDateTime);
g_form.setValue('dfcNbr',name);
g_form.setValue('channelDesc',email);
g_form.setValue('rdcNbr',phone);
g_form.setValue('storeNbr',cont);
}
}catch(e){
//alert('EEEEE ' + e);
}
}
//Type appropriate comment here, and begin script below
}
How can I set the up the end point in the REST message?
Solved! Go to Solution.
- Labels:
-
Integrations
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-17-2017 03:59 AM
Hi Saranya,
In the endpoint of get method under Rest Message have this as endpoint this will serve as dynamic and send this value to script include via ajax and use setParameter method
https://xxx.apps-np.xxx.com/DFCOrderInfo?olpn=${olpn}
var olpn = this.getParameter(); // this you will be sending from client script
r.setStringParameter('olpn', olpn);
This means this olpn value will be dynamic.
Under variable substitution for get method create new and add this in value and name
name = olpn
value = olpn
screenshot below
Mark Correct if this solves your issue and also hit Like and Helpful if you find my response worthy based on the impact.
Thanks
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
02-17-2017 02:46 AM
are you trying to set end point dynamically?
then you can use setEndpoint method
r.setEndpoint("http://<instance>.service-now.com/api/now/table/incident");
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-17-2017 02:55 AM
Its not service point url and its another server in which last olpn will change dynamically based on the selection in record producer
https://xxx.apps-np.xxx.com/DFCOrderInfo?olpn=DTR000637374

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-17-2017 03:04 AM
then I don't see any issue with what you defined..
did you try logging the endpoint using
getEndpoint()
just to confirm whether endpoint is setting or not
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-17-2017 03:59 AM
Hi Saranya,
In the endpoint of get method under Rest Message have this as endpoint this will serve as dynamic and send this value to script include via ajax and use setParameter method
https://xxx.apps-np.xxx.com/DFCOrderInfo?olpn=${olpn}
var olpn = this.getParameter(); // this you will be sending from client script
r.setStringParameter('olpn', olpn);
This means this olpn value will be dynamic.
Under variable substitution for get method create new and add this in value and name
name = olpn
value = olpn
screenshot below
Mark Correct if this solves your issue and also hit Like and Helpful if you find my response worthy based on the impact.
Thanks
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader