on incident form it is show this at caller field "onChange script error: ReferenceError: caller_i"

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

    var ga = new GlideAjax('SI_ReturnUserDetails');
    ga.addParam('sysparam_name','returnDetails');
    ga.addParam('sysparam_caller_id',g_form.getValue(caller_id));
    ga.getXML(displayUserDetails);

    function displayUserDetails(response) {

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

        var result = JSON.parse(answer);
        g_form.setValue('u_email',result.email);
        g_form.setValue('u_firstname',result.firstName);
        g_form.setValue('u_lastname',result.lastName);

    }

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

returnDetails:function(){
    var sys_id =this.getParameter('sysparam_caller_id');

    var gr=new GlideRecord('sys_user');
    gr.get(sys_id);

    var usrobj = {};
    usrobj.email =gr.email.toString();
    usrobj.firstName =gr.firstName.toString();
    usrobj.lastName =gr.lastName.toString();
   
    return JSON.stringify('usrobj');

},
    type: 'SI_ReturnUserDetails'
});
9 REPLIES 9

Aniket Chavan
Tera Sage
Tera Sage

Hello @Kongaleti Navee 

Please give a try to the script below and let me know how it works for you.
Script Include (SI_ReturnUserDetails):

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

    returnDetails: function () {
        var sys_id = this.getParameter('sysparam_caller_id');

        var gr = new GlideRecord('sys_user');
        gr.get(sys_id);

        var usrobj = {
            email: gr.email.toString(),
            firstName: gr.firstName.toString(),
            lastName: gr.lastName.toString()
        };

        return JSON.stringify(usrobj);
    },

    type: 'SI_ReturnUserDetails'
});

 

Client Script:

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

    var ga = new GlideAjax('SI_ReturnUserDetails');
    ga.addParam('sysparam_name', 'returnDetails');
    ga.addParam('sysparam_caller_id', g_form.getValue('caller_id'));
    ga.getXML(displayUserDetails);

    function displayUserDetails(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
        alert(answer);

        var result = JSON.parse(answer);
        setFormValues(result);
    }

    function setFormValues(userDetails) {
        g_form.setValue('u_email', userDetails.email);
        g_form.setValue('u_firstname', userDetails.firstName);
        g_form.setValue('u_lastname', userDetails.lastName);
    }
}

 

Let me know your views on this and Mark Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.

 

Thanks,

Aniket

Harish Bainsla
Tera Sage
Tera Sage

Hi check with this code and refer below video

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

var ga = new GlideAjax('SI_ReturnUserDetails');
ga.addParam('sysparam_name', 'returnDetails');

// Corrected variable name from caller_id to 'caller_id'
ga.addParam('sysparam_caller_id', g_form.getValue('caller_id'));

ga.getXML(displayUserDetails);

function displayUserDetails(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);

var result = JSON.parse(answer);
g_form.setValue('u_email', result.email);
g_form.setValue('u_firstname', result.firstName);
g_form.setValue('u_lastname', result.lastName);
}
}

var SI_ReturnUserDetails = Class.create();
SI_ReturnUserDetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {
returnDetails: function () {
var sys_id = this.getParameter('sysparam_caller_id');
var gr = new GlideRecord('sys_user');
gr.get(sys_id);

var usrobj = {};
usrobj.email = gr.email.toString();
usrobj.firstName = gr.firstName.toString();
usrobj.lastName = gr.lastName.toString();

// Fix: Return the JSON object directly without stringifying it
return usrobj;
},
type: 'SI_ReturnUserDetails'
});

https://youtu.be/vKQTkKpc_co?si=1SwgU2l9lrMDECZQ

How to fetch multiple values from Server to client side using Script Include & GlideAjax #ServiceNow Script Include & Types video Link : https://www.youtube.com/watch?v=svKX5KELh44&t=6s Script Include and GlideAjax Part -1 video link : https://www.youtube.com/watch?v=1aCfa4pwlBg&t=5s Please Like ...

Kongaleti Navee
Tera Contributor

it showing as null in the alert message

Kongaleti Navee
Tera Contributor

can any one helpme in how to debug any script in servicenow