client script
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2024 02:02 AM
Hi
if i select one value from reference field then the two fields in the refrence field table values should be populate in the present table two fields. How can i achieve this?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2024 03:03 AM
Exactly. So an onChange client script gets the reference from that field and updates the other two fields. Why don't you want to use the best option you have: getReference()?
Please mark any helpful or correct solutions as such. That helps others find their solutions.
Mark
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2024 04:10 AM
You can write on change client script on that reference field and you can call client callable script include to get the field details:
Below is Sample client script and script include, just modify correct field name and table in script:
Client Script:
var referenceSysId = g_form.getValue('reference_field');
if (referenceSysId) {
var ga = new GlideAjax('PopulateFieldsFromReference');
ga.addParam('sysparm_name', 'populateFields');
ga.addParam('sysparm_reference_sys_id', referenceSysId);
ga.getXML(populateFieldsCallback);
}
function populateFieldsCallback(response) {
if (response && response.responseXML) {
var xmlDoc = response.responseXML;
var field1Value = xmlDoc.documentElement.getAttribute('field1');
var field2Value = xmlDoc.documentElement.getAttribute('field2');
g_form.setValue('field1', field1Value);
g_form.setValue('field2', field2Value);
}
}
Script Include:
var PopulateFieldsFromReference = Class.create();
PopulateFieldsFromReference.prototype = Object.extendsObject(AbstractAjaxProcessor, {
populateFields: function() {
var referenceSysId = this.getParameter('sysparm_reference_sys_id');
var referenceRecord = new GlideRecord('reference_table_name');
if (referenceRecord.get(referenceSysId)) {
var field1Value = referenceRecord.getValue('field1');
var field2Value = referenceRecord.getValue('field2');
var xml = '<record field1="' + field1Value + '" field2="' + field2Value + '"/>';
return xml;
}
return '';
}
});
Please Mark ✅Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.
Thanks