I want to populate data from one reference field to custom table fields ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-18-2021 09:52 AM
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-19-2021 05:31 AM
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...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-19-2021 05:57 AM
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-20-2021 10:16 AM
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-20-2021 08:55 PM
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