How to get multiple values from user table and populate through client script?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-07-2022 03:01 AM
Hello Experts,
Please help me correcting the below code.
Script include:
var UserDetails = Class.create();
UserDetails.prototype = {
initialize: function() {
},
getDetails: function(){
var result;
var user = this.getParameter('sysparm_user');
var grUser = new GlideRecord('sys_user');
grUser.addQuery('sys_id',user);
grUser.query();
if(grUser.next()){
result = {
"email": grUser.getValue('email')
};
}
var str = JSON.stringify(result);
return str;
},
type: 'UserDetails'
};
OnChange Client Script:
var user = g_form.getValue('user');
var ga = new GlideAjax('UserDetails');
ga.addParam('sysparm_user',user);
ga.addParam('sysparm_name','getDetails');
ga.getXML(callBack);
function callBack(response){
var result = response.responseXML.documentElement.getAttribute(response);
var obj = JSON.parse(result);
alert(obj.email);
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-07-2022 03:27 AM
Hi Guru,
Please follow this
https://community.servicenow.com/community?id=community_article&sys_id=c77ff0dddbbb8190847d5ac2ca96198a
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-07-2022 04:28 AM
Please mark my answer as correct if it resolved your issue and bookmark the article I shared for future reference.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-07-2022 03:42 AM
Hi Guru,
You can refer below onload Client Script and script include to populate user details, you can use same code in onChange.
Client Script :
function onLoad() {
var glideAjax = new GlideAjax('MyFavoritesAjax'); // client callbale script include name
glideAjax.addParam('sysparm_name', 'get_userInfo'); // function name
glideAjax.addParam('sysparm_user', g_user.userID); // parameter to pass on script include
glideAjax.getXML(getResults);
function getResults(serverResponse) {
var favorites = serverResponse.responseXML.getElementsByTagName("favorite");
for (var i = 0; i < favorites.length; i++) {
var name = favorites[i].getAttribute("name");
var value = favorites[i].getAttribute("value");
// alert("value" + value);
if (name == 'email') { // setting email value
g_form.setValue('email', value);
}
if (name == 'manager') { // setting manager value
g_form.setValue('aproving_manager', value);
}
if (name == 'department') { // setting department value
g_form.setValue('department', value);
}
}
}
}
Script Include : (Client callable true)
var MyFavoritesAjax = Class.create();
MyFavoritesAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {
// fetch Logged in users information
get_userInfo: function() {
var id = this.getParameter('sysparm_user'); // to get parameter from client side
var userGR = new GlideRecord('sys_user');
userGR.addQuery('sys_id', id);
userGR.query();
if (userGR.next()) {
this._addFavorite("email", userGR.email.getDisplayValue());
this._addFavorite("department", userGR.department.getDisplayValue());
this._addFavorite("manager", userGR.manager.getDisplayValue());
}
},
_addFavorite: function(name, value) {
var favs = this.newItem("favorite");
favs.setAttribute("name", name);
favs.setAttribute("value", value);
},
type: "MyFavoritesAjax"
});
Result :
Kindly mark correct and helpful if applicable
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-07-2022 03:43 AM
Hi,
good article for this
Get User Details based on the Logged in user/ User selected in Client Script
here is an example
var UserDetails = Class.create();
UserDetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getDetails: function(){
var result;
var user = this.getParameter('sysparm_user');
var grUser = new GlideRecord('sys_user');
grUser.addQuery('sys_id',user);
grUser.query();
if(grUser.next()){
result = {
"email": grUser.getValue('email'),
"phone": grUser.getValue('mobile_phone')
};
}
var str = JSON.stringify(result);
return str;
},
type: 'UserDetails'
});
Client script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('UserDetails');
ga.addParam('sysparm_name', "getDetails");
ga.addParam('sysparm_user', newValue);
ga.getXMLAnswer(function(answer){
if(answer != ''){
var parser = JSON.parse(answer);
var email = parser.email;
var phone = parser.mobile_phone;
}
});
//Type appropriate comment here, and begin script below
}
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader