GlideAJAX that can be used by client scripts and replace existing use of GlideRecord from Client script
Import
·
Apr 13, 2020
·
article
I see lot of users are using GlideRecord in client script (Which is not recommended and it will not work on Service Portal) so you can stop using GlideRecord in client script and replace with GlideAJAX. Example below, you can add fields based on your requirement.
Create Script Includes;
Name: commonUtils
Client callable: true (checked)
Script:
var commonUtils = Class.create();
commonUtils.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getUserInfo: function(){
var user = this.getParameter('sysparm_user');
var gr = new GlideRecord("sys_user");
gr.get(user);
var deptname = gr.department.getDisplayValue();
var dept = gr.getValue('department');
var manager = gr.getValue('manager');
var managername = gr.manager.getDisplayValue();
var location = gr.getValue('location');
var locationname = gr.location.getDisplayValue();
var response = {};
response.deptname = deptname;
response.dept = dept;
response.manager = manager;
response.managername = managername;
response.location = location;
response.locationname = locationname;
return JSON.stringify(response);
},
type: 'commonUtils'
});
Client Script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
// Call the GA function
var ga = new GlideAjax('commonUtils');
ga.addParam('sysparm_name', "getUserInfo");
ga.addParam('sysparm_user', newValue); //Onchange field is reference field to sys_user table
ga.getXMLAnswer(function(answer){
var response = JSON.parse(answer);
g_form.setValue('department_name', response.deptname); //used for string field
g_form.setValue('department', response.dept); //used for reference field to department table
g_form.setValue('manager_name', response.managername); //used for string field
g_form.setValue('manager', response.manager); //used for reference field to user table
g_form.setValue('location_name', response.locationname); //used for string field
g_form.setValue('location', response.location); //used for reference field to location table
});
}
View original source
https://www.servicenow.com/community/developer-articles/glideajax-that-can-be-used-by-client-scripts-and-replace/ta-p/2304681