- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-07-2020 04:44 AM
Hi all,
My requirement is :on change of caller ,Caller's manager name should get populate in short description.for this i have written client script On Change of caller with below code:
var man = g_form.getReference('caller_id', setmanager);
function setmanager(man) {
if (man)
alert('manager is '+ man.manager);
g_form.setValue('short_description', man.manager);}
and this is returning sys_id and if i have written below code then its returning no value :
var man = g_form.getReference('caller_id', setmanager);
function setmanager(man) {
if (man)
alert('manager is '+ man.Manager.name);
g_form.setValue('short_description', man.Manager.name);}
Please guide, Thanks in advance.
Thanks,
Priya
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-07-2020 08:21 AM
Hello Priya,
Dot walking will not work in client script. In order to get manager's name you need to call a script include from client script as below.
1. Create a Client script as below:
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
var callerID = g_form.getValue('caller_id');
var si =new GlideAjax('getCallerID');
si.addParam('sysparm_name','getUserInfo');
si.addParam('sysparm_caller_id',callerID);
si.getXML(getManager);
function getManager(response){
var manager = response.responseXML.documentElement.getAttribute('answer');
alert("Manager Name: "+manager);
}
}
2. Script Include Code:
Create a script include as below:
Name: getCallerID
Client callable: TRUE (Checked)
var getCallerID = Class.create();
getCallerID.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getUserInfo: function() {
var userID = this.getParameter('sysparm_caller_id');
var gr = new GlideRecord('sys_user');
gr.addQuery('sys_id',userID);
gr.query();
if(gr.next()){
var manager = gr.getDisplayValue('manager');
return manager;
}
},
type: 'getCallerID'
});
Please mark as Correct Answer and Helpful, if applicable.
Thank You!
Abhishek Gardade
Abhishek Gardade
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-13-2020 11:47 AM
Hi Abhishek/all,
In Service catalog based on Requester field (Variable Name : requester_demo) , Requester's manager name should get populate in Manager field (Variable Name : manager_demo).
Implemented it using Glide Ajax (Catalog client script) and script include as below…but I think script include code is not fired and always getting manager name as null
Catalog Client script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var requester= g_form.getValue('requester_demo');
var ga=new GlideAjax('getRequesterManager');
ga.addParam('sysparm_name','getrequester_manager');
ga.addParam('sysparm_requester_demo',requester);
ga.getXML(getManager);
function getManager(response){
var manager = response.responseXML.documentElement.getAttribute('answer');
alert("Manager Name: "+manager);
}
Script Include: (Name : getRequesterManager)
var getRequesterManager = Class.create();
getRequesterManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getrequester_manager :function() {
var managername = this.getParameter('sysparm_requester_demo');
var gr = new GlideRecord('sys_user');
gr.addQuery('sys_id',managername);
gr.query();
if(gr.next()){
var manager = gr.getDisplayValue('manager');
return manager;
}
},
type: 'getRequesterManager'
});
Please guide.
Thanks,
Priya

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-08-2020 12:45 AM
Performance like Abhishek mentioned, queries, server side vs client side, though also User Experience. The user's screen freezes, waiting for the response.
Though touching on performance: actually GlideAjax + getXML like often is mentioned isn't better as getReference + callback. Both retrieve the whole record.
You need to perform GlideAjax + getXMLAnswer which only retrieves the answer you defined.
Kind regards,
Mark
---
LinkedIn
Community article list
Kind regards,
Mark Roethof
Independent ServiceNow Consultant
10x ServiceNow MVP
---
~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-07-2020 08:25 AM
The code Abhishek Gardade just posted for Script Include + Client Script should help you. Now only add what I mentioned about getXMLAnswer instead of applying getXML. getXMLAnswer is more efficient.
Read about it here:
getXMLAnswer vs getXML
If my answer helped you in any way, please then mark it as helpful.
Kind regards,
Mark
---
LinkedIn
Community article list
Kind regards,
Mark Roethof
Independent ServiceNow Consultant
10x ServiceNow MVP
---
~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-07-2020 08:34 AM
I can see you have created a duplicate thread for the same query. So can you please delete those threads?
You can delete these thread by clicking More Options
Thank You,
Abhishek Gardade
Abhishek Gardade
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-07-2020 09:26 AM
Thanks Abhishek.
Yes i have deleted duplicate threads. As when i was posting question each time it was showing me error that content is unavailable and due to that it get posted multiple time... 🙂