- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-04-2022 10:53 PM
Hi Team,
We have a requirement to set a reference field on load. We have done it through sys id using set value, but our client has suggested to use it via GlideAjax instead of hardcoded "sys_id". Hence, I have written a on load client script and script include as shown below but its not setting the reference field value and throwing an alert "[object HTMLCollection]" when I try to get the "answer" value.
Client Script:
function onLoad() {
var gr = new GlideAjax('x_acal_ahc.AHC_getServiceProvider');
gr.addParam('sysparm_name', 'getProviderName');
gr.addParam('sysparm_serviceProvider', g_form.setValue('service_provider', 'lion'));
gr.getXML(getResponse);
}
function getResponse(response) {
var answer = response.responseXML.documentElement.getElementsByTagName('result');
alert(answer); //getting "[object HTMLCollection]" instead of "lion"
g_form.setValue('service_provider', answer);
}
Script Include:
var AHC_getServiceProvider = Class.create();
AHC_getServiceProvider.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getProviderName: function() {
var result = this.newItem("result");
var service_provider = this.getParameter('sysparm_serviceProvider');
var gr = new GlideRecord("u_zoo"); //zoo table to get value
gr.get(service_provider);
result.setAttribute("providerName", gr.getValue("sys_id")); //trying to return Lion sys_id
},
type: 'AHC_getServiceProvider'
});
Thanks in Advance,
Abhishek
Solved! Go to Solution.
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-04-2022 11:25 PM
Hi,
why not use default value for this in the variable configuration?
you can store the sys_id of the record in system property as string and then call that in default value
Easier to maintain going forward
Just change the sys_id later on if required
javascript: var sysId = gs.getProperty('propertyName'); sysId;
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
‎01-04-2022 11:01 PM
Hi,
Please update your script like below:
Client Script:
function onLoad() {
var gr = new GlideAjax('x_acal_ahc.AHC_getServiceProvider');
gr.addParam('sysparm_name', 'getProviderName');
gr.addParam('sysparm_serviceProvider', g_form.getValue('service_provider')); // you have to pass service provider value here
gr.getXML(getResponse);
}
function getResponse(response) {
var answer = response.responseXML.documentElement.getElementsByTagName('result');
alert(answer); //getting "[object HTMLCollection]" instead of "lion"
g_form.setValue('service_provider', answer);
}
Script Include:
var AHC_getServiceProvider = Class.create();
AHC_getServiceProvider.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getProviderName: function() {
var result = this.newItem("result");
var service_provider = this.getParameter('sysparm_serviceProvider');
var gr = new GlideRecord("u_zoo"); //zoo table to get value
gr.get(service_provider);
result.setAttribute("providerName", gr.getValue("sys_id")); //trying to return Lion sys_id
return JSON.stringify(result); // you have to return some result
},
type: 'AHC_getServiceProvider'
});
Thanks,
Anil Lande
Thanks
Anil Lande
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-04-2022 11:04 PM
Hi
But where are we getting the "Lion" data from the zoo table? I need a particular record from the table.
Thanks,
Abhishek

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-04-2022 11:11 PM
Okay in that case you have to update glideRecord query in script include.
var AHC_getServiceProvider = Class.create();
AHC_getServiceProvider.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getProviderName: function() {
var result = this.newItem("result");
var service_provider = this.getParameter('sysparm_serviceProvider');
var gr = new GlideRecord("u_zoo"); //zoo table to get value
gr.get('name','lion'); // replace 'name' by the column name which store animal name
result.setAttribute("providerName", gr.getValue("sys_id")); //trying to return Lion sys_id
return JSON.stringify(result); // you have to return some result
},
type: 'AHC_getServiceProvider'
});
Thanks
Anil Lande
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-04-2022 11:23 PM
Hi
Its still returning this "[object HTMLCollection]" in alert instead of "lion"
Thanks,
Abhishek