auto populate caller details when caller field changes but it was note populating can any one help

ArunaTunga
Kilo Contributor

Client script: table is incident filed name is caller

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
   if (isLoading || newValue === '') {
      return;
   }

   //Type appropriate comment here, and begin script below
   var ga= new GlideAjax('UserDetails');
   ga.addParam('sysparm_name','getUserDetails');
   ga.addParam('sysparm_user',newValue);
   ga.getXML(function(response){
    var answer = response.responseXML.documentElement.getAttribute('answer');
    var data = JSON.parse(answer);
    g_form.setValue('u_caller_department',data.department);
    g_form.setValue('u_caller_email',data.email);
    g_form.setValue('u_caller_manager',data.manager);
   });
   
}


Script includes (enabled client callable):

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

    getUserDetails : function(){
    var userId = this.getParameter('sysparm_user');
    var details ={};
    var gr= new GlideRecord('sys_user');
   
    if(gr.get(userId)){
        details.department = gr.department.getDisplayValue();
        details.manager=gr.manager.getDisplayValue();
        details.email = gr.email+'';
    }
     return JSON.stringify(details);
    },
    type: 'UserDetails'
});
7 REPLIES 7

PoonkodiS
Mega Sage

@ArunaTunga ,

Script include:

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

    getUserDetails: function () {
        var userId = this.getParameter('sysparm_user');
        var details = {};
        var gr = new GlideRecord('sys_user');

        if (gr.get(userId)) {
            details.department = gr.department.toString(); // sys_id
            details.manager = gr.manager.toString();       // sys_id
            details.email = gr.email.toString();
        }

        return JSON.stringify(details);
    },

    type: 'UserDetails'
});
 
Client Script:
//Type appropriate comment here, and begin script below
   function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || !newValue) {
        return;
    }

    var ga = new GlideAjax('UserDetails');
    ga.addParam('sysparm_name', 'getUserDetails');
    ga.addParam('sysparm_user', newValue);
    ga.getXML(function (response) {
        var answer = response.responseXML.documentElement.getAttribute('answer');
        var data = JSON.parse(answer);

        g_form.setValue('department', data.department);
        g_form.setValue('manager', data.manager);
        g_form.setValue('email', data.email);
    });
}
 
 
 
 
Regards,
Poonkodi

Ankur Bawiskar
Tera Patron

@ArunaTunga 

so what's populating and what's not?

share what debugging did you do from your side?

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

@Ankur Bawiskar 

3 fileds were populating as expected and issue was i have given incorrect filedname in onchange client script.