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 client script for manager

venkateshdhanap
Tera Contributor

I have variable name, User(user_id) and Line Manager(line_manager). Line manager should populated based on the user selected. Please suggest the catalog client script for this.

1 ACCEPTED SOLUTION

I would suggest use script include,



Use below code


Script include


var userDetails   = Class.create();


userDetails .prototype = Object.extendsObject(AbstractAjaxProcessor, {



getManager: function() {


  var gr=new GlideRecord("sys_user");


  gr.addQuery("sys_id",this.getParameter('sysparam_id'));


  gr.query();


  gr.next();


  if(gr.manager!=''){


  return gr.manager.name;


  }


  else


  {


  return "blank";


  }


    },


      type: 'userDetails '


});


find_real_file.png


Client Script


function onChange(control, oldValue, newValue, isLoading) {


    if (isLoading || newValue == '') {


          return;


    }


var ga = new GlideAjax('userDetails');


ga.addParam('sysparm_name','getManager'); // pass   script include function


ga.addParam('sysparam_id',newValue);


ga.getXML(Process);


 


}




function Process(response) {


    var answer = response.responseXML.documentElement.getAttribute("answer");


  alert(answer);


    g_form.setValue("man",answer); // man should be line manager variable name


    }



find_real_file.png


Regards
Harish

View solution in original post

9 REPLIES 9

Hi Venkatesh,



I would like to echo the same thing as harishkumar responded. Please find his response below. It is always recommended to do database query from server side scripting. Hence, please use a Script Include and call that in your Catalog Client Script.



I hope this helps.Please mark correct/helpful based on impact


I would suggest use script include,



Use below code


Script include


var userDetails   = Class.create();


userDetails .prototype = Object.extendsObject(AbstractAjaxProcessor, {



getManager: function() {


  var gr=new GlideRecord("sys_user");


  gr.addQuery("sys_id",this.getParameter('sysparam_id'));


  gr.query();


  gr.next();


  if(gr.manager!=''){


  return gr.manager.name;


  }


  else


  {


  return "blank";


  }


    },


      type: 'userDetails '


});


find_real_file.png


Client Script


function onChange(control, oldValue, newValue, isLoading) {


    if (isLoading || newValue == '') {


          return;


    }


var ga = new GlideAjax('userDetails');


ga.addParam('sysparm_name','getManager'); // pass   script include function


ga.addParam('sysparam_id',newValue);


ga.getXML(Process);


 


}




function Process(response) {


    var answer = response.responseXML.documentElement.getAttribute("answer");


  alert(answer);


    g_form.setValue("man",answer); // man should be line manager variable name


    }



find_real_file.png


Regards
Harish

Thanks HarishKumar, It is working. it the correct answer


If it is working as expected can you mark the answer as correct?


Regards
Harish

Hello @Harish KM ,

 

Can you tell me where I missed. 

PRASHANTHISATH_0-1722921847501.png

Catalog client script:

function onChange(control, oldValue, newValue, isLoading) {

    if (isLoading || newValue == '') {

        return;

    }

    var ga = new GlideAjax('getRequestedForManager');

    ga.addParam('sysparm_name', 'getManager'); // pass   script include function

    ga.addParam('sysparam_id', newValue);

    ga.getXML(Process);


}


function Process(response) {


    var answer = response.responseXML.documentElement.getAttribute("answer");


    alert(answer);


    g_form.setValue("manager", answer); // man should be line manager variable name


}
 
Script Include:
var getRequestedForManager = Class.create();

getRequestedForManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getManager: function() {
        var gr = new GlideRecord("sys_user");
        gr.addQuery("sys_id", this.getParameter('sysparam_id'));
        gr.query();
        gr.next();
        if (gr.manager != '') {
            return gr.manager.name;
        } else {
            return "blank";
        }
    },

    type: 'getRequestedForManager'
});