how to populate selected users manager in catalog item

Community Alums
Not applicable
SCRIPT INCLUDE
var UserDetails = Class.create();
UserDetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {

 

    getManager: function() {

 

        var user = this.getParameter('sysparm_name');
        var mgr = new GlideRecord("sys_user");
        mgr.addQuery("sys_id", user);
        mgr.query();
        if (mgr.next()) {
            return mgr.manager.name;
        }
    },
    type: 'UserDetails'
});
  
CLIENT SCRIPT
 
function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }
        if (newValue == '') {
        g_form.clearValue('user_s_manager_name');
    }
    var ga = new GlideAjax('UserDetails');
    ga.addParam('sysparm_name'"getManager");
    ga.addParam('sysparm_name', g_form.getValue('name'));
    ga.getXML(getResponse);

    function getResponse(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
        if (answer != '') {
            g_form.setValue("user_s_manager_name", answer);
        }
    }
}
 
 
can someone validate my code , it is not working for me
 
PRITHVIRAMESH_0-1683983983131.png

 

2 ACCEPTED SOLUTIONS

Mallidi Suma
Tera Guru

Hi @Community Alums ,

 

Please try the below code.

Client Script:-

function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
if (newValue == '') {
g_form.clearValue('user_s_manager_name');
}
var ga = new GlideAjax('UserDetails');
ga.addParam('sysparm_name', 'getManager');
ga.addParam('sysparm_userID', newValue);
ga.getXML(getResponse);

function getResponse(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
if (answer != '') {
g_form.setValue("user_s_manager_name", answer);
}
}
//Type appropriate comment here, and begin script below
}

 

Server Side Script:-

 

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

setManager: function() {
var user = this.getParameter('sysparm_userID');
var mgr = new GlideRecord("sys_user");
mgr.addQuery("sys_id", user);
mgr.query();
if (mgr.next()) {
return mgr.manager;
}
},

type: 'UserDetails'

});

 

Please mark my answer as helpful if it helps !!

View solution in original post

Community Alums
Not applicable

but in the client script please replace the 'getManager' to 'setManager' then it will work

View solution in original post

2 REPLIES 2

Mallidi Suma
Tera Guru

Hi @Community Alums ,

 

Please try the below code.

Client Script:-

function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
if (newValue == '') {
g_form.clearValue('user_s_manager_name');
}
var ga = new GlideAjax('UserDetails');
ga.addParam('sysparm_name', 'getManager');
ga.addParam('sysparm_userID', newValue);
ga.getXML(getResponse);

function getResponse(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
if (answer != '') {
g_form.setValue("user_s_manager_name", answer);
}
}
//Type appropriate comment here, and begin script below
}

 

Server Side Script:-

 

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

setManager: function() {
var user = this.getParameter('sysparm_userID');
var mgr = new GlideRecord("sys_user");
mgr.addQuery("sys_id", user);
mgr.query();
if (mgr.next()) {
return mgr.manager;
}
},

type: 'UserDetails'

});

 

Please mark my answer as helpful if it helps !!

Community Alums
Not applicable

but in the client script please replace the 'getManager' to 'setManager' then it will work