- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-23-2023 05:59 AM
Good Day everyone,
i created a catalog item that is used for internal changes to an employee.
In my form i have a reference field linked to the sys_user table and when you choose a person their information will get populated into single text fields via a client script.
What is happening, the person Manager (linked to the sys_user table) and their Location(linked to the cmn_location table) is only coming back with the Sys_ID as seen below:
The script i am using is the following:
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-23-2023 07:08 AM
I was able to figure it out,
here is the updated code for anyone to use.....

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-23-2023 07:38 AM
Try this:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var userDetails = g_form.getReference('preferred_name', myFunc);
function myFunc(userDetails){
var loc = new GlideRecord('cmn_location');
loc.addQuery('sys_id', userDetails.location);
loc.query(getLocation);
function getLocation(loc){
loc.next();
var man = new GlideRecord('sys_user');
man.addQuery('sys_id', userDetails.manager);
man.query(getManager);
function getManager(man){
man.next();
g_form.setValue('current_title', userDetails.title);
g_form.setValue('current_persona', userDetails.u_persona);
g_form.setValue('current_share_team', userDetails.u_share_team);
g_form.setValue('current_department', userDetails.department);
g_form.setValue('current_office_workstation_id', userDetails.u_desk_location);
g_form.setValue('current_location', userDetails.location, loc.name);
g_form.setValue('current_phone_number', userDetails.phone);
g_form.setValue('current_manager', userDetails.manager, man.u_preferred_name);
}
}
}
}
Help others to find a correct solution by marking the appropriate response as accepted solution and helpful.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-23-2023 06:53 AM - edited 08-23-2023 07:13 AM
Sorry, mixing two things up 🙂
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var userDetails = g_form.getReference('preferred_name', myFunc);
function myFunc(userDetails){
var locInfo = new GlideRecord('cmn_location');
locInfo.get(userDetails.location);
var userInfo= new GlideRecord('sys_user');
userInfo.get(userDetails.manager);
g_form.setValue('current_title', userDetails.title);
g_form.setValue('current_persona', userDetails.u_persona);
g_form.setValue('current_share_team', userDetails.u_share_team);
g_form.setValue('current_department', userDetails.department);
g_form.setValue('current_office_workstation_id', userDetails.u_desk_location);
g_form.setValue('current_location', userDetails.location, locInfo.name);
g_form.setValue('current_phone_number', userDetails.phone);
g_form.setValue('current_manager', userDetails.manager, userInfo.u_preferred_name);
}
}
Edited, since you aparently use a custom name field.
Help others to find a correct solution by marking the appropriate response as accepted solution and helpful.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-23-2023 07:42 AM
still getting the SYS_ID from your code here

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-23-2023 06:22 AM
@Peter Williams Please update your script as follows.
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var userDetails = g_form.getReference('preferred_name', myFunc);
function myFunc(userDetails){
g_form.setValue('current_title', userDetails.title);
g_form.setValue('current_persona', userDetails.u_persona);
g_form.setValue('current_share_team', userDetails.u_share_team);
g_form.setValue('current_department', userDetails.department.getDisplayValue());
g_form.setValue('current_office_workstation_id', userDetails.u_desk_location);
g_form.setValue('current_location', userDetails.location.getDisplayValue());
g_form.setValue('current_phone_number', userDetails.phone);
g_form.setValue('current_manager', userDetails.manager.getDisplayValue());
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-23-2023 06:40 AM
this didnt work either
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-23-2023 07:08 AM
I was able to figure it out,
here is the updated code for anyone to use.....