User Details auto population in Problem Management

johnjosephjose
Tera Contributor

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. 

 

johnjosephjose_0-1696414711656.png

 

Thanks! 

 

5 REPLIES 5

Amit Gujarathi
Giga Sage
Giga Sage

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