Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

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

ArunaTunga
Tera 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
Giga 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  ||  10x 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.