Reference field display value to String field on Catalog Item

Shane J
Tera Guru

How can I get a value from a Reference field to populate a String field via an OnChange client script (for a Catalog Item)?   Right now, all I can get is the Sys_ID.   The field needs to get populated initially with the cost_center field, based on the logged in under, but after that it may need to be manually changed (to a non-reference value).

1 ACCEPTED SOLUTION

This will work



Script Include:



var UserDetailsAjax = Class.create();


UserDetailsAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {      


      getCostCenterDetails: function()


      {


              var getUserCostDetails = new GlideRecord('sys_user');


              if(getUserCostDetails.get(this.getParameter('sysparm_requested_for')))


                      {


                      return getUserCostDetails.cost_center.getDisplayValue();


              }


      }


});



Client script



var getCost = new GlideAjax('UserDetailsAjax');


getCost.addParam('sysparm_name','getCostCenterDetails');


getCost.addParam('sysparm_requested_for',newValue);


getCost.getXML(setCostCenter);



function setCostCenter(response) {


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


g_form.setValue('cost_center', answer);


}


View solution in original post

10 REPLIES 10

Looks like it is good to go, thank you!



Here's the final full OnChange script for anyone looking for a reference:



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


  if(newValue != ""){




var getCost = new GlideAjax('UserDetailsAjax');


getCost.addParam('sysparm_name','getCostCenterDetails');


getCost.addParam('sysparm_requested_for',newValue);


getCost.getXML(setCostCenter);


  }


function setCostCenter(response) {


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


g_form.setValue('cost_center', answer);


}


  }