We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

client script and ajax call

amit98971223
Kilo Contributor

HI,

Im trying to get display value of a reference field. I know of the method g_form.getDisplayBox(), but I am trying to do it from ajax call.

I am only able to get the sys id of the reference field.

I tried the following but no luck.

Client side:

ga.addParam('sysparm_field_sysID',g_form.getValue('reference_field'));

script include:

var val1=this.getParameter('sysparm_field_sysID');

ans=val1.getDisplayValue() ;

How can I use getDisplayValue() in a script include or I cannot, please help me?

regards

AMit

1 ACCEPTED SOLUTION

hvrdhn88
Giga Patron

Hi Amit,



Please check the script below.



client script:



function onChange(control, oldValue, newValue, isLoading, isTemplate) {


  if (isLoading) {


  return;


  }



  var test= g_form.getValue('enter your reference field');


  var check = new GlideAjax('your script include name');


  check.addParam('sysparm_name', 'script include function name');


  check.addParam('sysparm_comp', test);


  check.getXML(analyzeResponse);



  function analyzeResponse(response)


  {


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



  alert(answer);



}





script include:



name: test


Must be checked as client callable



var test= Class.create();


auto_fill_lochypcomp.prototype = Object.extendsObject(AbstractAjaxProcessor, {



  test: function()


  {



  var test= this.getParameter('sysparm_comp');


  var grp = new GlideRecord('sys_user');


grp.addQuery('name',test);


  grp.query();


  while(grp.next())


  {


//now you can perform your query here.


  }


      },



  type: 'test'


});




I hope it will help you.




Thanks,


Harshvardhan


View solution in original post

4 REPLIES 4

Dave Smith1
ServiceNow Employee

You'll need to create an object of AbstractAjaxProcessor in a class within the Script Include, and a GlideAjax object within your client script.



We cover this on our Scripting Course - have you attended that at all?


Hi Dave,
I probably haven't attended it, that is why the confusion..
I will surely read it


hvrdhn88
Giga Patron

Hi Amit,



Please check the script below.



client script:



function onChange(control, oldValue, newValue, isLoading, isTemplate) {


  if (isLoading) {


  return;


  }



  var test= g_form.getValue('enter your reference field');


  var check = new GlideAjax('your script include name');


  check.addParam('sysparm_name', 'script include function name');


  check.addParam('sysparm_comp', test);


  check.getXML(analyzeResponse);



  function analyzeResponse(response)


  {


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



  alert(answer);



}





script include:



name: test


Must be checked as client callable



var test= Class.create();


auto_fill_lochypcomp.prototype = Object.extendsObject(AbstractAjaxProcessor, {



  test: function()


  {



  var test= this.getParameter('sysparm_comp');


  var grp = new GlideRecord('sys_user');


grp.addQuery('name',test);


  grp.query();


  while(grp.next())


  {


//now you can perform your query here.


  }


      },



  type: 'test'


});




I hope it will help you.




Thanks,


Harshvardhan


Thanks Harsh vardhan, it helped.