The CreatorCon Call for Content is officially open! Get started here.

client script

shivaadapa
Tera Expert

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?

 

11 REPLIES 11

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

Maddysunil
Kilo Sage

@shivaadapa 

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