Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Variable substitution in Rest Endpoint through script include & get variable value from client scrip

Shree14
Tera Contributor

Hi All,

 

I need to put a variable value in Rest Endpoint: https:lookup/${address_id}

 

If I hard code this address in script I'm getting 200 response, but if I add it dynamically through not getting any response/error but I could able to log the variable value correctly in System Logs.

 

var r3 = new sn_ws.RESTMessageV2('smaty_test', 'Int complete address'); //Rest MSG & Method
        r3.setStringParameterNoEscape('address_id', add3); //add3 - 'PD4DPC8DPgNHT09HTExGS00DOjE4'
 
Please suugest if anything to be added additionaly/ make change in above code
 
Thanks,
Padma
6 REPLIES 6

Could you please share your client script code in order to debug further? 

----------------------------------------------------------------
Mark this as Helpful / Accept the Solution if this helps.

Shree14
Tera Contributor
Client Script: 
function onChange(control, oldValue, newValue, isLoading) {
   if (isLoading || newValue == '') {
      return}
   var int_street_1 =  g_form.getValue('international_street');
 var country_1 =  g_form.getValue('country');
 var id =  g_form.getValue('int_shipping_address');

 

 alert(id);

 

 var slice = id.split(','); // Splitting the Shipping Address.
            var n= slice.length; //length of returned slices.
            var id_slice = slice[n-1];
var  add_id =id_slice.toString();
    var gb = new GlideAjax('TestSmarty');
    gb.addParam('sysparm_name', 'getInternational3'); //Method
gb.addParam('sysparm_iddd', add_id);
    gb.addParam('sysparm_street3', int_street_1);
    gb.addParam('sysparm_country3', country_1);
    gb.getXML(ajaxResponse);
    function ajaxResponse(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
alert('answer:' + answer);
        var obj = JSON.parse(answer); // Parsing
        alert('obj:' + obj);
}
 
Script INclude:
var TestSmarty = Class.create();
TestSmarty.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getInternational3: function() {
        var address_id = this.getParameter('sysparm_iddd');
        var int_country3 = this.getParameter('sysparm_country3');
        var country3 =int_country3.toString();
        var address_id3 = address_id.toString();

        gs.log('id3_test'+ address_id);
        gs.log('country3_test'+int_country3);
       
        try {
        var r3 = new sn_ws.RESTMessageV2('smaty_test', 'Int complete address'); //Rest MSG & Method
        r3.setStringParameterNoEscape('address_id', address_id.toString()); //add3 - 'PD4DPC8DPgNHT09HTExGS00DOjE4'
    r3.setStringParameterNoEscape('country', country3 );
            gs.log('country31_test' + country3);             gs.log('ad id_test' + add3);
            var response3 = r3.execute();
            gs.log("This is topic token3_test" + response3);
            var responseBody3 = response3.getBody();
        gs.log('response:_test'+responseBody3);
            var httpStatus3 = response3.getStatusCode();
                        gs.log('http_test'+ httpStatus3);

            if(httpStatus3 == 200){
           
                gs.log("smarty success3_test" + responseBody3);
            }
            //var parsed = JSON.parse(responseBody3);
            //var token = responseBody.toString().split('credentials token="')[1].split('" estimated')[0];
        } catch (ex) {
    gs.log('inside catch');
            var message3 = ex.getMessage();
            gs.error(message3);
        }
        return responseBody3;
    },
    type: 'TestSmarty'
});
 
I am not getting the outbound log also