Script Include and Client Script

sushma9
Tera Contributor

Hi ,

I Am trying to get the user details  like department , user id , manager , when the requested for changes  in  Service catalog but i am not able to get it . Please find the script below and let me know if any changes has to be done.

 

Script Include :

getUserValues: function() {

var grUser = new GlideRecord('sys_user');
grUser.addQuery('sys_id', this.getParameter('sysparm_requestedfor'));
grUser.query();
if (gr.next()) {
var userID = grUser.user_name;
var Email = grUser.email;
var department = grUser.department.name;
var manager = grUser.manager.name;

return userID + '$' + Email + '$' + department + '$' + manager;


}

 

 

 

Client Script : On Change (Requested For )

 

var requestedFor = g_form.getValue('requested_for');

var ga = new GlideAjax('GettingUserDetails');
ga.addParam('sysparm_name', 'getUserValues'); // Function name should be provided
ga.addParam('sysparm_requestedfor', requestedFor);
ga.getXML(callback);

function callback(resp) {

var ans = resp.response.Xml.documentElement.getAttribute('answer');
var sepAnswer = ans.split('$');
g_form.setValue('user_name', sepAnswer[0]);
g_form.setValue('email', sepAnswer[1]);
g_form.setValue('department', sepAnswer[2]);
g_form.setValue('manager', sepAnswer[3]);
}

1 ACCEPTED SOLUTION

Hi @sushma9 ,

Thanks for marking this answer as helpful, if this resolved your issue, please then mark it correct to set this thread to solved/closed.

BR.

Hope this helps!
BR.
Ishaan Shoor

View solution in original post

3 REPLIES 3

Ishaan Shoor
Mega Sage
Mega Sage

 

Hi @sushma9 


There were some issues in your scripts and I've updated them, kindly update the code at your end and let me know how you go.

Client Script 

 

 

function onChange(control, oldValue, newValue, isLoading) {
  
var requestedFor = g_form.getValue('requested_for');
var ga = new GlideAjax('GettingUserDetails');
ga.addParam('sysparm_name', 'getUserValues'); // Function name should be provided
ga.addParam('sysparm_requestedfor', requestedFor);
ga.getXMLAnswer(callback);

function callback(resp) {
var ans = resp;
var sepAnswer = ans.split('$');
g_form.setValue('user_name', sepAnswer[0]);
g_form.setValue('email', sepAnswer[1]);
g_form.setValue('department', sepAnswer[2]);
g_form.setValue('manager', sepAnswer[3]);
}
}

 


Script Includes

 

 

var GettingUserDetails = Class.create();
GettingUserDetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {
      getUserValues: function() {
      var details = '';
      var requestedforSysID = this.getParameter('sysparm_requestedfor');
      var grObj = new GlideRecord("sys_user");
      grObj.addQuery("sys_id", requestedforSysID); //comparing sysID
      grObj.query();
      if (grObj.next()) { 
            //getting user details
            details = grObj.user_name + '$' + grObj.email + '$' + grObj.department + '$'+ grObj.manager;
        }
        return details;
    },
    type: 'GettingUserDetails'
});

 


If my answer helped you in any way or if this resolved your issue, please then mark it as helpful or correct accordingly to set this thread to solved.

Regards,

Ishaan 

 

Hope this helps!
BR.
Ishaan Shoor

Hi @sushma9 ,

Thanks for marking this answer as helpful, if this resolved your issue, please then mark it correct to set this thread to solved/closed.

BR.

Hope this helps!
BR.
Ishaan Shoor

Aman Kumar S
Kilo Patron

Hi @sushma9 ,

You can follow below post for the requirement, it exactly does what you are looking for:

https://www.servicenow.com/community/developer-articles/get-user-details-based-on-the-logged-in-user...

 

Best Regards
Aman Kumar