- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-20-2025 08:23 PM
Hi, People
I have to auto-populate several fields on a variable catalog item based on 'requested for'.
**I have it done over the auto-populate feature - the challenge is not to use it -
I have created the catalog client script and auto-populated the needed field but for location is displaying the sys ID --
Searching over the community, I'm missing the script include, also struggling on how to configure it done!
thanks in advance for any help!!!
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-21-2025 12:42 PM
Thank you for all your help, I solved it the following way.
Script include
Name: getUserDetails --
Glide AJAX enabled: TRUE --- client callable ---
Script
var getUserDetails = Class.create();
getUserDetails.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getUserInfo: function() {
var userID = this.getParameter("sysparm_userID");
var userGr = new GlideRecord("sys_user");
userGr.addQuery("sys_id", userID);
userGr.query();
if (userGr.next()) {
var obj = {};
obj.rfname = userGr.getDisplayValue("first_name");
obj.rmname = userGr.getDisplayValue("middle_name");
obj.rlname = userGr.getDisplayValue("last_name");
obj.rlocation = userGr.getDisplayValue("location");
obj.remail = userGr.getDisplayValue("email");
obj.rmphone = userGr.getDisplayValue("mobile_phone");
obj.rptitle = userGr.getDisplayValue("title");
obj.renumber = userGr.getDisplayValue("employee_number");
obj.rntid = userGr.getDisplayValue("u_string_1");
var json = new JSON();
var data = json.encode(obj);
return data;
}
},
type: 'getUserDetails'
});
Catalog Client Script
Name: Requestor information
Type: onChange
Variable name: Requestor Details >> requeted_for -- 'Requestor Details' = Variable set // 'Requested For' = variable --
Script
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('getUserDetails');
ga.addParam('sysparm_name', 'getUserInfo');
ga.addParam('sysparm_userID', newValue);
ga.getXML(callback);
function callback(response) {
var answer = response.responseXML.documentElement.getAttribute('answer');
answer = answer.evalJSON();
g_form.setValue("requestor_first_name", answer.rfname);
g_form.setValue("requestor_middle_name", answer.rmname);
g_form.setValue("requestor_last_name", answer.rlname);
g_form.setValue("requestor_location", answer.rlocation);
g_form.setValue("requestor_email", answer.remail);
g_form.setValue("requestor_contact_no", answer.rmphone);
g_form.setValue("requestor_employee_number", answer.renumber);
g_form.setValue("requestor_position_title", answer.rptitle);
g_form.setValue("users_network_id", answer.rntid);
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-20-2025 09:30 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-20-2025 10:04 PM
Hello @tom the
Here is script include code and onchange client script
Script Include client callable should be true:-
var getUserDetails = Class.create();
getUserDetails.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getUserInfo: function(){
var userID = this.getParameter("sysparm_userID");
var obj={};
var userGr = new GlideRecord("sys_user");
userGr.addQuery("sys_id", userID);
userGr.query();
if(userGr.next()){
obj['email'] = userGr.email.toString();
obj['manager'] = userGr.manager.toString();
obj['mobile_phone']= userGr.mobile_phone.toString();
obj['location']=userGr.location.toString();
//gs.info("manager: " + userGr.manager.)
}
return JSON.stringify(obj);
},
type: 'getUserDetails'
});
OnChange Client Script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue != '') {
var requestedForDetails = g_form.getValue('requested_for');
var ga = new GlideAjax('script_include_name');
ga.addParam('sysparm_name', 'getUserInfo');
ga.addParam('sysparm_userID', newValue);
ga.getXML(callback);
}
function callback(response) {
var answer = response.responseXML.documentElement.getAttribute('answer');
var ansParse = JSON.parse(answer);
g_form.setValue("email_id", ansParse.email.toString());
g_form.setValue("reporting_manager", ansParse.manager.toString());
g_form.setValue("mobile_number",ansParse.mobile_phone.toString());
g_form.setValue("location",ansParse.location.toString());
}
}
If it helped, please marked it as helpful
Thanks!
Thank You!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-21-2025 12:42 PM
Thank you for all your help, I solved it the following way.
Script include
Name: getUserDetails --
Glide AJAX enabled: TRUE --- client callable ---
Script
var getUserDetails = Class.create();
getUserDetails.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getUserInfo: function() {
var userID = this.getParameter("sysparm_userID");
var userGr = new GlideRecord("sys_user");
userGr.addQuery("sys_id", userID);
userGr.query();
if (userGr.next()) {
var obj = {};
obj.rfname = userGr.getDisplayValue("first_name");
obj.rmname = userGr.getDisplayValue("middle_name");
obj.rlname = userGr.getDisplayValue("last_name");
obj.rlocation = userGr.getDisplayValue("location");
obj.remail = userGr.getDisplayValue("email");
obj.rmphone = userGr.getDisplayValue("mobile_phone");
obj.rptitle = userGr.getDisplayValue("title");
obj.renumber = userGr.getDisplayValue("employee_number");
obj.rntid = userGr.getDisplayValue("u_string_1");
var json = new JSON();
var data = json.encode(obj);
return data;
}
},
type: 'getUserDetails'
});
Catalog Client Script
Name: Requestor information
Type: onChange
Variable name: Requestor Details >> requeted_for -- 'Requestor Details' = Variable set // 'Requested For' = variable --
Script
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('getUserDetails');
ga.addParam('sysparm_name', 'getUserInfo');
ga.addParam('sysparm_userID', newValue);
ga.getXML(callback);
function callback(response) {
var answer = response.responseXML.documentElement.getAttribute('answer');
answer = answer.evalJSON();
g_form.setValue("requestor_first_name", answer.rfname);
g_form.setValue("requestor_middle_name", answer.rmname);
g_form.setValue("requestor_last_name", answer.rlname);
g_form.setValue("requestor_location", answer.rlocation);
g_form.setValue("requestor_email", answer.remail);
g_form.setValue("requestor_contact_no", answer.rmphone);
g_form.setValue("requestor_employee_number", answer.renumber);
g_form.setValue("requestor_position_title", answer.rptitle);
g_form.setValue("users_network_id", answer.rntid);
}
}