How to get current loggedin user manager name and his email id?

manmathpanda
Giga Guru

How to get current loggedin user's manager name and email id?

1 ACCEPTED SOLUTION

Hitoshi Ozawa
Giga Sage
Giga Sage

Hi,

If it's absolutely necessary to create a client script, following will get current user's manager's info.

Client script

function onLoad() {
    var ajax = new GlideAjax('UserUtilClient');
    ajax.addParam('sysparm_name', 'getManagerInfo');
    ajax.getXMLAnswer(function(answer) {
        if (answer.length > 0) {
            var json = JSON.parse(answer);
            g_form.setValue('manager_name', json.name);
            g_form.setValue('manager_email', json.email);
        }
    });
}

Script include

var UserUtilClient = Class.create();
UserUtilClient.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getManagerInfo: function() {
        var grUser = new GlideRecord('sys_user');
        if (grUser.get(gs.getUserID())) {
            var manager = grUser.manager;
            if (manager) {
                return JSON.stringify({
                    "name": manager.name.toString(),
                    "email": manager.email.toString()
                });
            }
        }
    },
    type: 'UserUtilClient'
});

The result is a same as when using default value. This is a little bit slower because the form is loaded and then the form makes an ajax request to the server to get manager's information. When setting the default value, manager's name and email is filled when before the form is loaded so there's no ajax call after the form is loaded.

find_real_file.png

View solution in original post

10 REPLIES 10

client Script

Hi,

Please create a new question and let's discuss there?


Please consider marking my reply as Helpful and/or Accept Solution, if applicable. Thanks!

Hitoshi Ozawa
Giga Sage
Giga Sage

Hi,

If the question is about getting the current user's manager's name and email in a form, there's no need to use client script.

Default value on a field may be set to get manager's name and email address.

1. Manager's name.

Type: Single Line Text

Default value:javascript:var gr=new GlideRecord('sys_user');gr.get(gs.getUserID());gr.manager.name;

2. Manager's email.

Type: Email

Default value:javascript:var gr=new GlideRecord('sys_user');gr.get(gs.getUserID());gr.manager.email;

Execution result sample. I've set my manager to be Abel Tuter.

find_real_file.png

Hitoshi Ozawa
Giga Sage
Giga Sage

Hi,

If it's absolutely necessary to create a client script, following will get current user's manager's info.

Client script

function onLoad() {
    var ajax = new GlideAjax('UserUtilClient');
    ajax.addParam('sysparm_name', 'getManagerInfo');
    ajax.getXMLAnswer(function(answer) {
        if (answer.length > 0) {
            var json = JSON.parse(answer);
            g_form.setValue('manager_name', json.name);
            g_form.setValue('manager_email', json.email);
        }
    });
}

Script include

var UserUtilClient = Class.create();
UserUtilClient.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getManagerInfo: function() {
        var grUser = new GlideRecord('sys_user');
        if (grUser.get(gs.getUserID())) {
            var manager = grUser.manager;
            if (manager) {
                return JSON.stringify({
                    "name": manager.name.toString(),
                    "email": manager.email.toString()
                });
            }
        }
    },
    type: 'UserUtilClient'
});

The result is a same as when using default value. This is a little bit slower because the form is loaded and then the form makes an ajax request to the server to get manager's information. When setting the default value, manager's name and email is filled when before the form is loaded so there's no ajax call after the form is loaded.

find_real_file.png

Priya Thakur2
Tera Contributor

I actually needed it for a validation and it worked, thank you