How to get Value instead of Sys.id in a Catalog Client Script?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-11-2017 07:46 AM
I am fairly new to scripting. I've used this script before and it has worked. Now, I'm trying it on a different Variable and it's not working.
My goal is to reference the variable "u_workstation" and provide the product name (model_id) of the workstation to the variable "u_model_make_laptop".
Everything seems to be working except the value that appears in "u_model_make_laptop" is a sys_id value not the display value.
Please help
function onChange(control, oldValue, newValue, isLoading) {
var modelId = g_form.getReference('u_workstation');
if (modelId.model_id)
g_form.setValue('u_model_make_laptop', modelId.model_id);
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-11-2017 07:52 AM
Hi Candice,
What is the field type of model_id on the table where the u_workstation record is pointing? I suspect it is another reference field.
Although it's a few lines more, you may want to consider using a GlideAjax construct in your client script to get back the exact data you want.
Helpful video in episode 33: TechNow Episode List
Docs: Client Scripts
Docs: GlideForm
Docs: GlideAjax
Client Script Best Practices - ServiceNow Wiki

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-11-2017 08:00 AM
You are correct. model_id is another reference type field. I will review the videos you posted and hopefully be able to create the GlideAjax.
Thank you.