- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2020 12:04 AM
Hi ,
I have a client script on the catalog form . There is a field called 'division' in the form which should autopopulate the value of 'division' field also present in the user table according to the requested for. I have a script include where i have fetched the values from user table and i have called the script include from client script . The problem is now i get a sysid instead of display value . Even if i use toString() or getDisplayValue still it gives me the sysid instead of displayvalue .
Here is the line of code in script include:
result.setAttribute('division', gr.u_division);
where gr is the glideRecord of sys_user table and the division field in the user table is a reference field refering to division table .
Client script:
.
.
ga.getXML(employeeInfo);
function employeeInfo(serverResponse) {
var result = serverResponse.responseXML.getElementsByTagName("result");
var div = result[0].getAttribute("division");
g_form.setValue("division",div );
}
Any leads on this is highly appreciated
Regards,
Naresh
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2020 12:30 AM
Hi,
You can get the display value of reference field in the script include function
result.setAttribute('division', gr.u_division.getDisplayValue());
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2020 12:15 AM
Hi,
In your server script include from where you are getting the value using GlideAjax, instead of using
gr.getValue('field_name'); use gr.getDisplayValue('field_name');
Please mark it as helpful/correct answer if it solves your query.
thanks.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2020 12:21 AM
Server script: Client callable Script include
var CSMDataUtils = Class.create();
CSMDataUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getUserData : function()
{
var con_sysID = this.getParameter("sysparm_con_sys_id"); //sys_id from client side, requested for in your case
var user= new GlideRecord('sys_user');
if (user.get(con_sysID)) {
var con_obj ={};
con_obj.name = user.getDisplayValue('field_name');
con_obj.email = user.getValue('email');
return JSON.stringify(con_obj);
}
},
type: 'CSMDataUtils'
});
Client script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
if (newValue) {
if (newValue != oldValue) {
var asset_det = new GlideAjax('CSMDataUtils');
asset_det.addParam('sysparm_name', 'getUserData');
asset_det.addParam('sysparm_con_sys_id', g_form.getValue('requested_for')); //make field name correction accordingly
asset_det.getXML(UserDetails);
}
}
}
function UserDetails(response) {
var answer = response.responseXML.documentElement.getAttribute('answer');
var result = JSON.parse(answer);
g_form.setValue('division', result.name);
g_form.setValue('email', result.email);
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2020 12:30 AM
Hi,
You can get the display value of reference field in the script include function
result.setAttribute('division', gr.u_division.getDisplayValue());
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2020 12:36 AM
Is there any way of retriveing the display value in the client script rather than in the script include ?