How to set fields auto populate using script include?

mahesh babu1
Tera Contributor

Hi 

     I just created a scripted code from the server side as well as client side but i am enable to get output

i just given script as

On Client script:

Type : onchange

Field : caller

function onChange(control, oldValue, newValue, isLoading, isTemplate) {

    if (isLoading || newValue === '') {

        return;

    }

 

    var abc = g_form.getValue('caller_id');

    var ga = new GlideAjax('global.getdetails');

    ga.addParam('sysparm_user', 'getuserdetails');

    ga.addParam('server', abc);

    ga.getXML(pop);

 

    function pop(response) {

        var resp = (response.responseXML.documentElement.getAttribute('answer'));

        alert(resp);

 

        var result = resp.split(';');

        g_form.setValue('u_first_name', result[0]);

        g_form.setValue('u_last_name', result[1]);

        g_form.setValue('u_user_manager', result[2]);

    }

 

}

 

 

 

 

On script include

Cient callable is checked

var getdetails = Class.create();

getdetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getuserdetails: function() {

        var y = this.parameter('server');

        var gr = new GlideRecord('sys_user');

        gr.addQuery('sys_id', y);

        gr.query();

 

        if (gr.next()) {

            return gr.u_first_name + ';' + gr.u_last_name + ';' + gr.u_user_manager;

        }

    },

 

    type: 'getdetails'

});

5 REPLIES 5

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

update line as these

function onChange(control, oldValue, newValue, isLoading, isTemplate) {

    if (isLoading || newValue === '') {
        return;
    }

    var abc = g_form.getValue('caller_id');
    var ga = new GlideAjax('global.getdetails');
    ga.addParam('sysparm_user', abc);
    ga.addParam('sysparm_name', 'getuserdetails');
    ga.getXML(pop);
    function pop(response) {
        var resp = response.responseXML.documentElement.getAttribute('answer');
        var result = resp.split(';');
        g_form.setValue('u_first_name', result[0]);
        g_form.setValue('u_last_name', result[1]);
        g_form.setValue('u_user_manager', result[2]);
    }

}

Script include change:

        var y = this.getParameter('server');

Regards
Ankur

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

@mahesh babu 

Hope you are doing good.

Did my reply answer your question?

If my response helped please close the thread by marking appropriate response as correct so that it benefits future readers.

Regards
Ankur

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

Valmik Patil1
Kilo Sage

Hi Mahesh,

In script include code

Instead of  var y = this.parameter('server'); use below

 var y = this.getParameter('sysparm_server'); // uset this code

And in client script 

replace  ga.addParam('sysparm_user', 'getuserdetails');  and ga.addParam('server', abc); with 

 ga.addParam('sysparm_name', 'getuserdetails');
ga.addParam('sysparm_server', abc);

 

Thanks,

Valmik

Nagaraj Tofin5
Tera Expert

Hi Mahesh,

Please try executing below scripts

Client Script:

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }
    var abc = g_form.getValue('caller_id');
    var ga = new GlideAjax('global.getdetails');
    ga.addParam('sysparm_name', 'getuserdetails');
    ga.addParam('sysparm_server', abc);
    ga.getXML(pop);
}

function pop(response) {
    var resp = (response.responseXML.documentElement.getAttribute('answer'));
    resp = resp.toString();
    alert(resp);
    var result = resp.split(';');
    g_form.setValue('u_first_name', result[0]);
    g_form.setValue('u_last_name', result[1]);
    g_form.setValue('u_user_manager', result[2]);
}

 

Server Script:

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

    getuserdetails: function() {
        var y = this.getParameter('sysparm_server');
        var gr = new GlideRecord('sys_user');
        gr.addQuery('sys_id', y);
        gr.query();
        if (gr.next()) {
            return gr.u_first_name + ';' + gr.u_last_name + ';' + gr.u_user_manager;
        }
    },
    type: 'getdetails'
});

 

Kindly mark as right, if I have answered or provided solution for your query

Regards,
Nagaraj Tofin