Auto populate Manager in reference field

Mohammed Amine1
Tera Contributor

Hi,

How can I auto populate a reference variable in a catalog Item field using a Catalog client script?

 

I want to display the manager of the current logged user.

I already managed to display the current logged user info.

 

This is the begining of the script : 

 

function onLoad() {

    g_form.setValue('current_user', g_user.userID);
    g_form.setValue('current_user_manager',     .....     );

}

 

Thanks for any help.

1 ACCEPTED SOLUTION

Saloni Suthar
Mega Sage
Mega Sage

Hi @Mohammed Amine1 

You can also add default value in your reference variable to populate the manager of the logged in user:

 

saloni1_0-1675130240232.png

 

 

 

 

 

 


If my response helped you, please click on "Accept as solution" and mark it as helpful.
- Saloni

View solution in original post

14 REPLIES 14

Mayu
Tera Guru
Tera Guru

We can set default value in reference field of manager variable .

In default section add Javascript:gs.getUser().getManagerID() ; 

Please mark correct if it helpful.

Pavankumar_1
Mega Patron

Hi @Mohammed Amine1 ,

If you want to achieve it with only Client script then use below onload script and script include will work.

1. Onload catalog client script:

function onLoad() {
    var ga = new GlideAjax('getUserLineManager');
    ga.addParam('sysparm_name', "getManager");
    ga.getXMLAnswer(function(answer) {
        g_form.setValue("manager", answer);//give your manager variable
    });

}

2. Script include. check Client callable true

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

    getManager: function() {
        var mgr = new GlideRecord("sys_user");
        mgr.addQuery("sys_id", gs.getUserID());//check with logged in user
        mgr.query();
        if (mgr.next()) {
            return mgr.manager.toString();
        }
    },
    type: 'getUserLineManager'
});

screenshots:

Client script:

Screenshot (618).png

Script Include:

Screenshot (619).png

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

Very helpful - Thank you Pavankumar4 

Ashish04
Tera Contributor

Hi Mohammad,

we can achieve this scenario in two ways.

1. In default section add javascript:gs.getUser().getManagerID();

2. display business rule using scratchpad and ,client script

var user = gs.getUser();
var manager = user.manager;
g_scratchpad.manager = manager;
In your client script as below

function onLoad() {
var manager = g_scratchpad.manager;
g_form.setValue('Reference field name' , manager);
}

 

Please mark correct it it helpful.

Warm Regards

Ashish

Ankur Bawiskar
Tera Patron
Tera Patron

@Mohammed Amine1 

no scripting is required.

you can use the feature of Catalog Lookup definition

Catalog Data Lookup Definition on any table, eliminating Catalog Client Scripting 

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader