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.

Incorrect value passing form script include to client script

Rameshnathan
Tera Expert

Hi

i want to pass this tow value from script include to client script,

its displaying correct value in the script include but then i get this thought client script its displaying this error     ([object XMLHttpRequest])

Script Include   :-

if(grp.next()){

asgment.push(grp.getDisplayValue('assignment_group'));

priority.push(grp.getDisplayValue('priority'));

}

var result =[asgment,priority];

return result;

Client Script :-

function CallBack(response){

alert(response);

g_form.setValue('short_description', response);

}

1 ACCEPTED SOLUTION

Chuck Tomasi
Tera Patron

Hi Ramesh,



When you return a payload from the server, it must be a string. I HIGHLY recommend using JSON to ensure arrays, or objects, are preserved properly and that commas or other special characters don't get in the way of a split command. Here's an example of how you can return the priority and assignment_group display value as a JSON object, stringify it on the server side and parse it on the client side, then create your short_description based on those two properties. Sorry for the crappy formatting in the community editor.



if(grp.next()){



var myAnswer = {


        "assignment_group" : grp.getDisplayValue('assignment_group'),


"priority" : grp.getDisplayValue('priority')


};



}




var result = JSON.stringify(myAnswer);



return result;




Client Script :-



function CallBack(response){


var answer = response.responseXML.documentElement.getAttribute("answer");


var myObj = JSON.parse(answer);


var myString = myObj.assignment_group + ' ' + myObj.priority;



g_form.setValue('short_description', myString);



}


View solution in original post

16 REPLIES 16

Rajesh T
Giga Expert

Script include returns name value pair (Array type) which you are trying to assign to the Short Description which is a String Type.



Thanks,


Rajesh T


Rajesh T
Giga Expert

Can you put log in the script include for result and see the output.


Try this if you don't see output:



var result = [];


if(grp.next()){


result.push("'"+grp.getDisplayValue('assignment_group')+"'");


result.push("'"+grp.getDisplayValue('priority')+"'");


}



Chuck Tomasi
Tera Patron

Hi Ramesh,



When you return a payload from the server, it must be a string. I HIGHLY recommend using JSON to ensure arrays, or objects, are preserved properly and that commas or other special characters don't get in the way of a split command. Here's an example of how you can return the priority and assignment_group display value as a JSON object, stringify it on the server side and parse it on the client side, then create your short_description based on those two properties. Sorry for the crappy formatting in the community editor.



if(grp.next()){



var myAnswer = {


        "assignment_group" : grp.getDisplayValue('assignment_group'),


"priority" : grp.getDisplayValue('priority')


};



}




var result = JSON.stringify(myAnswer);



return result;




Client Script :-



function CallBack(response){


var answer = response.responseXML.documentElement.getAttribute("answer");


var myObj = JSON.parse(answer);


var myString = myObj.assignment_group + ' ' + myObj.priority;



g_form.setValue('short_description', myString);



}


Hi Chuck



Thank you,



its working fine. i did small change. now its working


Script Include :


if(grp.next()){


var myAnswer = {


"assignment_group" : grp.getDisplayValue('assignment_group'),


"priority" : grp.getDisplayValue('priority')


};


var result = JSON.stringify(myAnswer);


gs.info("Test Result" + result);


return result;


}


Hi Chuck



Actually i can call the script include in Client Side and its working fine,



I want get the same value in BR, so please tell me how to call the same script include in Business Rule also.



Thanks