User Details auto population in Problem Management
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-04-2023 03:19 AM
Hi,
I'm trying to auto populate some user details in the Problem Management Module with 'User' field as the main field, then populates the rest.
I am new to scripting so I am not sure how the approach will be.
Thanks!
5 REPLIES 5
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-04-2023 06:25 AM
HI @johnjosephjose ,
I trust you are doing great.
Client Script on change of user field:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue === '') {
return;
}
// Call a GlideAjax to get user details based on the selected user
var ga = new GlideAjax('GetUserDetails');
ga.addParam('sysparm_name', 'getUserDetails');
ga.addParam('sysparm_user_sys_id', newValue);
ga.getXML(populateFields);
}
function populateFields(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
var userObj = JSON.parse(answer);
// Populate fields based on the returned user details
g_form.setValue('email', userObj.email);
g_form.setValue('phone', userObj.phone);
g_form.setValue('department', userObj.department);
// Add more fields as needed
}
Script Include : GetUserDetails
var GetUserDetails = Class.create();
GetUserDetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getUserDetails: function() {
var userSysId = this.getParameter('sysparm_user_sys_id');
var userGR = new GlideRecord('sys_user');
if (userGR.get(userSysId)) {
var userDetails = {
email: userGR.getValue('email'),
phone: userGR.getValue('phone'),
department: userGR.getValue('department')
// Add more fields as needed
};
return JSON.stringify(userDetails);
}
},
type: 'GetUserDetails'
});
Was this answer helpful?
Please consider marking it correct or helpful.
Your feedback helps us improve!
Thank you!
Regards,
Amit Gujrathi