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'
});