onchange script error: typeerror: cannot read properties of undefined (reading 'tostring') function

shubhamverm3478
Tera Contributor

Hi,

I am facing issue while changing assignment group,When assignment group changes ,its showing error on assigned to,state,subcategory.

 

Below is onchange client script for field subcategory.

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    /*   if (isLoading || newValue === '') {
        return;
    } */
    //alert("Sub New: " + newValue + " Old: " + oldValue);
    //var sections = g_form.getSections(); //commented by X217872
    if(newValue=='posting_request') {
        g_form.setSectionDisplay('posting_request',true);      
        //sections[4].style.display = 'block'; //commented by X217872
        //g_tabs2Sections.setActive(3); //commented before
    }
    else {
       
        g_form.setMandatory('u_cost_type', false);
        g_form.setMandatory('u_intercompany_charge', false);
        g_form.setSectionDisplay('posting_request',false);      
        g_form.setSectionDisplay('notes',true);
    /*  sections[4].style.display = 'none';
        g_tabs2Sections.setActive(0); */ //commented by X217872
       
    }
   
    if(newValue=='cost_objects' || newValue=='invoice_creation') {
        //alert('inside if Posting request CS ');
        var req = new GlideAjax('finance_populateERP');
        req.addParam('sysparm_name', 'popERP');
        req.addParam('sysparm_subsi', g_form.getValue('u_user_subsidiary_1'));
        req.getXML(ERPDetails);
    }
   
    function ERPDetails(response) {
        //alert('inside function Posting request CS ');
        var answer = response.responseXML.documentElement.getAttribute("answer");
        var answersplit = answer.toString().split('!@$');
        //alert("ANS WSview: " + answer);
        for(var i = 0;i<answersplit.length-1;i++){
            g_form.setValue('u_erp_system', 'NULL');
            g_form.setValue('u_erp_system',answersplit[0]);
            //g_form.setValue('variables.fr_in_issuer_country',answersplit[1]);
        }
    }
   
}

 

 

1 REPLY 1

Eshwar Reddy
Kilo Sage

Hi @shubhamverm3478 

Try Below Code

// Clear fields if assignment group changes
if (g_form.getValue('assignment_group') !== oldValue) {
g_form.setValue('assigned_to', '');
g_form.setValue('state', '');
g_form.setValue('subcategory', '');
}

if (newValue === 'posting_request') {
g_form.setSectionDisplay('posting_request', true);
g_form.setMandatory('u_cost_type', true);
g_form.setMandatory('u_intercompany_charge', true);
} else {
g_form.setMandatory('u_cost_type', false);
g_form.setMandatory('u_intercompany_charge', false);
g_form.setSectionDisplay('posting_request', false);
g_form.setSectionDisplay('notes', true);
}

if (newValue === 'cost_objects' || newValue === 'invoice_creation') {
var req = new GlideAjax('finance_populateERP');
req.addParam('sysparm_name', 'popERP');
req.addParam('sysparm_subsi', g_form.getValue('u_user_subsidiary_1'));
req.getXML(ERPDetails);
}

function ERPDetails(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
var answersplit = answer.toString().split('!@$');
if (answersplit.length > 0) {
g_form.setValue('u_erp_system', answersplit[0]);
}
}


Thanks
Esh