Auto Populate the user data into the catalog form

sasipriya
Tera Contributor

Hi Team,

 

 can anyone help me on below requirement

I need to autofill the user details in the catalog form when I select the user in the request for a variable.

 

Please check the screenshot.

 

Thanks,

Sasipriya.

7 REPLIES 7

Hi @sasipriya 

 

Script Include

 

var DxsherpaUtil = Class.create();
DxsherpaUtil.prototype = Object.extendsObject(AbstractAjaxProcessor, {


    getDetails: function() {

        var getid = this.getParameter('sysparm_value');
      //  gs.log(getid);
        var gr = new GlideRecord('sys_user');
        gr.addQuery('sys_id', getid);
        gr.query();
        while (gr.next()) {
            var values = gr.getDisplayValue('department');
            var vipvalue = gr.getDisplayValue('vip');
           // gs.log(values);

        }

        return values + " , " + vipvalue;


    },

 

OnChange Client Script

 

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

    //Type appropriate comment here, and begin script below
    var val = g_form.getValue('requested_for');
  //  alert(val);

    var ga = new GlideAjax('script include name');
    ga.addParam('sysparm_name', 'function name ()');
    ga.addParam('sys_parm_values', val);
    ga.getXML(callback);

    function callback(response){
        alert(response);
        var answer = response.responseXML.documentElement.getAttribute("answer");
        alert(answer);

        var test = answer.split(' ,');
        g_form.setValue('department' , test[0]);
        g_form.setValue('company' , test[1]);
        g_form.setValue('manager' , test[2]);
        g_form.setValue('vip' , test[3]);

    }

}

Hi @sasipriya ,

i am setting the manager reference variable from requester you can set based on your requirement.

onchange client script:

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading) {
        return;
    }
    if (newValue == '') {//if requester for is empty
        g_form.clearValue('manager');
    }
    var ga = new GlideAjax('getUserLineManager');//script include name
    ga.addParam('sysparm_name', "getManager"); //function name
    ga.addParam('sysparm_req', g_form.getValue('requested_for'));//parameter
    ga.getXMLAnswer(function(answer) {
        g_form.setValue("manager", answer);
    });
}

Script Include:

create script include and make client callable is true.

var getUserLineManager = Class.create();
getUserLineManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getManager: function() {
      var user = this.getParameter('sysparm_req');
        var mgr = new GlideRecord("sys_user");
        mgr.addQuery("sys_id", user);
        mgr.query();
        if (mgr.next()) {
            return mgr.manager.toString();
        }
    },
    type: 'getUserLineManager'
});
If it helps please click Accept as Solution/hit the Thumb Icon.
ServiceNow Community MVP 2024.
Thanks,
Pavankumar

Pavankumar_1
Mega Patron

Hi @sasipriya ,

If your issue got resolved close the question by accepting the solution & hit like button and others get benefited from this.

If it helps please click Accept as Solution/hit the Thumb Icon.
ServiceNow Community MVP 2024.
Thanks,
Pavankumar