Getting reference field value in client script

venkatkk
Tera Contributor

I have a record producer where Department , CostCenter is added. CostCenter is dependent on Department. All these values lies in cmn_department table.

i added a Catalog Client script to pickup the values But it shows sys_id instead of values since CostCenter is Reference field. Pls help how can i get the value of Cost Center ?

Catalog Client Script

OnChange

Department

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

  if (isLoading || newValue == '') {

  return;

  }

  var dept_new = g_form.getValue(newValue);

  var gr = new GlideRecord('cmn_department');

  gr.addQuery('name', newValue);

  gr.query();

  if(gr.next())

  {

  //var cc_value = getRefernce(gr.cost_center);

  var cc_value = gr.getDisplayBox("cost_center").value;

  g_form.setValue('cost_centre_new', cc_value);

  g_form.setValue('gl_code_new', gr.u_gl_code);

  }

  //Type appropriate comment here, and begin script below

}

when i use   g_form.setValue('cost_center_new', gr.cost_centre); it gives me Sys_id

Pls Help

1 ACCEPTED SOLUTION

Pls try below script include code is working:-




var getDepartment = Class.create();


getDepartment.prototype = Object.extendsObject(AbstractAjaxProcessor, {


  deptName:function() {
var val='';
  var deptId = this.getParameter('sysparm_dept');
      var gr = new GlideRecord('cmn_department');
 
  gr.addQuery('sys_id',deptId);
  gr.query();
  if (gr.next())
{
val=gr.getDisplayValue('cost_center');
}
return val;
}
});



-------


Mark Correct if it solved your issue or hit Like and Helpful if you find my response worthy.


View solution in original post

13 REPLIES 13

Thanks Srinivas...Still log says cost center and gl code is "undefined"


Client Script which i used is :-


OnChange


Dept


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


  if (isLoading || newValue == '') {


  alert("Returing");


  return;


  }


  var ga = new GlideAjax("getDepartment");


  alert("Inside CS");


  ga.addParam("sysparm_name", "deptName");


  ga.addParam('sysparm_dept',newValue);


  alert("newValue===>"+newValue);


  ga.getXML(ajaxResponse);



  function ajaxResponse(serverResponse) {


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


  var result = serverResponse.responseXML.getElementsByTagName("result");


  //g_form.setValue('cost_center',answer);


  g_form.setValue('cost_center', result.getAttribute("cost_center"));


  g_form.setValue('gl_code', result.getAttribute("u_gl_code"));


  }


}



Script Include:-


var getDepartment = Class.create();


getDepartment.prototype = Object.extendsObject(AbstractAjaxProcessor, {



  deptName:function() {


  var deptId = this.getParameter('sysparm_dept');


  gs.log("deptId===>"+deptId);


  var result = this.newItem("result");


  var gr = new GlideRecord('cmn_department');


  gr.addQuery('sys_id',deptId);


  gr.query();


  gs.log("Inside SI 1");


  //if(gr.next()){


  gs.log("Inside SI 2");



  result.setAttribute('cost_center', gr.cost_center.getDisplayValue());


  gs.log("Cost Center====>"+ gr.cost_center.getDisplayValue());


  result.setAttribute('u_gl_code',gr.u_gl_code.getDisplayValue());


  gs.log("GL Code====>"+ gr.u_gl_code);


  // }


  //}


  },


  type: 'getDepartment'


});


Any help from anyone?


I fixed this issue by changing the catalog client script. Thanks Everyone.


Pls try below script include code is working:-




var getDepartment = Class.create();


getDepartment.prototype = Object.extendsObject(AbstractAjaxProcessor, {


  deptName:function() {
var val='';
  var deptId = this.getParameter('sysparm_dept');
      var gr = new GlideRecord('cmn_department');
 
  gr.addQuery('sys_id',deptId);
  gr.query();
  if (gr.next())
{
val=gr.getDisplayValue('cost_center');
}
return val;
}
});



-------


Mark Correct if it solved your issue or hit Like and Helpful if you find my response worthy.