I want to populate data from one reference field to custom table fields ?

suresh40
Tera Contributor

HI All,

My requirement is I have a one  reference field(number) that is referring to another custom table , We have to display custom table records present table  field values .

My output is :

If i have select the number in reference field reaming data has to be populate itself.

 

Thanks,

Suresh.

6 REPLIES 6

Sai Kumar B
Mega Sage
Mega Sage

Hi Suresh,

Try with GlideAjax() api using client callable script include and OnChange() client script on your reference field and get the response from custom table.

Script include with onChange() client script reference- https://community.servicenow.com/community?id=community_article&sys_id=25975379dbe0f8d0190dfb2439961...

Girish12
Kilo Sage

Hi suresh,

You can create script include and call script include from onchange client script  

Please find the below thread for you reference.

https://community.servicenow.com/community?id=community_video&sys_id=0ca16fae1bc50050ada243f6fe4bcb62

 

Thanks & Regards,

Girish.

suresh40
Tera Contributor

Hi 

 I have tried scripts include calling it as a client script but values are showing undefined can you please let me if anything  mistake from my end 

 script include:

var GetItemDetails = Class.create();
GetItemDetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {
ItemDetails: function() {
var item = this.getparameter('item');
obj = {};
// var ABC = this.getparamenter('sysparam_abccode');
var number = new GlideRecord('u_test_items');
if (number.get(item)) {
obj.ABC_code = number.getValue('ABC_code');
obj.description = number.getValue('description');
obj.MOQ=number.getvalue('MOQ')
}

return JSON.stringify(obj);
},


type: 'GetItemDetails'
});

 

 

client script:

onchange client script for item number field

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (newValue === '') {
return;
} else {
var user = g_form.getValue('u_item');

//Call script include
var ga = new GlideAjax('GetItemDetails'); //Scriptinclude
ga.addParam('sysparm_name', 'ItemDetails'); //Method
ga.addParam('item', user); //Parameters
ga.getXMLAnswer(getResponse);

function getResponse(response){
console.log(response);
var res = JSON.parse(response);
console.log(res);
g_form.setValue('u_abc_code', res.ABC_code);
g_form.setValue('u_description', res.description);
g_form.setValue('u_moq', res.MOQ);

}
}
}

 

o/p is 

 

find_real_file.png

Hi Suresh,

Try with the below scripts

script include:

var GetItemDetails = Class.create();
GetItemDetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    ItemDetails: function() {
        var item = this.getParameter('sysparm_item');
        var number = new GlideRecord('u_test_items');
        number.addQuery('', item); //In Quotes keep the field name you are refering to
        number.query();
        if (number.next()) {
            obj = {};
            obj.abc = number.getValue('ABC_code');//give the backend value of the field which you want to populate
            obj.desc = number.getValue('description');//give the backend value of the field which you want to populate
            obj.moq = number.getValue('MOQ');//give the backend value of the field which you want to populate
            gs.log('INFO :' + abc + desc + moq);
        }
        return JSON.stringify(obj);
    },
    type: 'GetItemDetails'
});

 

Client script :

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }
    //Type appropriate comment here, and begin script below
    var user = g_form.getDisplayBox('u_item').value;
    alert(user);
    //Call script include
    var ga = new GlideAjax('GetItemDetails'); //Scriptinclude
    ga.addParam('sysparm_name', 'ItemDetails'); //Method
    ga.addParam('sysparm_item', user); //Parameters
    ga.getXML(getResponse);

    function getResponse(response) {
        var answer1 = response.responseXML.documentElement.getAttribute('answer');
        alert(answer1);
        var res = JSON.parse(answer1);
        g_form.setValue('u_abc_code', res.abc);
        g_form.setValue('u_description', res.description);
        g_form.setValue('u_moq', res.moq);

    }
}

 

Let me know if any.

 

Regards,

Girish