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.

Catalog item_catalog client script is not working

shaikkhasim
Tera Contributor

Hi Team

i have created a catalog item, 

My Requirement is , once user Name is selected . email filed should be fill automatically of that persons manager 

 

i used the catalog client script but it is not working , pls find the attached images 

 

Regards

khasim

khasim
10 REPLIES 10

Vishal Birajdar
Giga Sage

Hi @shaikkhasim 

 

As suggested by other's if you have instance version Utah or latest version then you can use Auto-populate functionality

 

else you can use script include and client script

 

Step 1 : Write client callable script include 

Name : userUtils

function name : getManagerEmail

 

   getManagerEmail: function() {
       /*1. Declare variable to return manager email*/
        var managerEmail;
        
        /*2. Get user value from client script  */
        var user = this.getParameter('sysparm_user');

        /*3.  glide record on user table and check email address */
        var grUser = new GlideRecord('sys_user');
        grUser.addQuery('sys_id', user);
        grUser.query();

        if (grUser.next()) {
            /* 4.If manager present then set manager value */
            if (grUser.manager) {
                managerEmail = grUser.manager.email;
            }
        }
     /*5. Return manager email*/
        return managerEmail;
    },

VishalBirajdar_0-1699330458865.png

 

Step 2 : onChnage client script on User name field

**Make sure UI type is selected as ALL

 

function onChange(control, oldValue, newValue, isLoading) {
    var user = g_form.getValue('user_name');

    var ga = new GlideAjax('userUtils');   //script include
    ga.addParam('sysparm_name', 'getManagerEmail');  //function name
    ga.addParam('sysparm_user', user); 

    ga.getXMLAnswer(callBackFun);

    function callBackFun(answer) {
	   var managerEmail = answer;
	   g_form.setValue('manager_variable_name',managerEmail);   //user your variable name
    }

}

 

VishalBirajdar_1-1699330671281.png

 

 

 

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates