Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Catalogue Client Script not auto populating fields on catalogue item

matthew_hughes
Kilo Sage

In ServiceNow, I'm trying to develop an onLoad Client Script that will pre-populate the details of the following fields from a business application depending on if they meet a certain criteria:

matthew_hughes_0-1764056466899.png

 

I'm using the following code in my onLoad client script if the 'IBP Tier' field of a business application is A:

 

function onLoad() {
    var draft = g_form.getValue('drafted');
    var cbp = g_form.getValue('cbp_tier');
    var l2 = g_form.getValue('u_availability_regulatory_less_than_2_hours');
    var l2rat = g_form.getValue('rationale_2_hrs');
    if (cbp == 'Tier A') {
        alert('MH Value of L2 is ' + l2);
        alert('MH Value of L2rat is ' + l2rat);
        alert('MH Value of CBP is ' + cbp);
        if (l2 != '') {
            alert('L2 is not empty' + l2);
            if ((l2 != 5 || l2 != 4) && l2 != '') {
                setAllValues(5;
            }
            else{
                setAllValues5);
            }
        }
    }

    function setAllValues(val) {
            g_form.setValue('u_availability_regulatory_less_than_4_hours', val);
            g_form.setValue('u_availability_regulatory_less_than_24_hours', val);
            g_form.setValue('u_availability_regulatory_more_than_24_hours', val);
            g_form.setValue('u_availability_regulatory_less_than_2_hours', val);
        }
}
 
However, when I load my catalogue item with that client script, the following occurs:
matthew_hughes_1-1764056670379.png

 

The values of the four fields remain exactly the same. I'm expecting all of them to be updated to 'Severe' or '5' as the field 'Regulatory and Legal: Less than 2 Hours' is not 'Severe' or 'Material'

 

 

1 REPLY 1

Simon Christens
Kilo Sage

Hi,

 

Theres typos in this part of the script

if ((l2 != 5 || l2 != 4) && l2 != '') {
                setAllValues(5;
            }
            else{
                setAllValues5);
            }