Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

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