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.

Options should get populated on the basis of different Country

shubhi211
Tera Guru

Hi, there is new requirement for Catalog Item:

On the Basis of User's "Country" Field.

The options under "Salesforce Instance" should get populated.

 

For eg: Country= INDIA || Country1 || Country 2|| Country 3, Salesforce Instance = "Instance A, Instance B",

Country= USA || Country 4,  Salesforce Instance = "Instance C, Instance D, Instance E",

Country= UK , Salesforce Instance = "Instance F, Instance G", and so on

 

Total there are 10 countries

If you want to change the field variable please let me know what Variable field should be

Ask.png

1 ACCEPTED SOLUTION

shubhi211
Tera Guru

addOption(String fieldName, String choiceValue, String choiceLabel, Number choiceIndex);

 

fieldNameStringThe field name.
choiceValueStringThe value stored in the database.(BACKEND Value)
choiceLabelStringThe value displayed.
choiceIndexNumberOrder of the choice in the list.

 

Client Script

Type: OnChange
Variable name: country
 function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
 
var uCountry = g_form.getValue('country');
if (uCountry == 'India' || uCountry == 'Country1' || uCountry == 'Country2' || uCountry == 'Country3') {

g_form.addOption('salesforce_instance', 'InstanceA', 'InstanceA', 1);
g_form.addOption('salesforce_instance', 'InstanceB', 'InstanceB', 2);

g_form.removeOption('salesforce_instance', 'InstanceC');
g_form.removeOption('salesforce_instance', 'InstanceD');
g_form.removeOption('salesforce_instance', 'InstanceE');
g_form.removeOption('salesforce_instance', 'InstanceF');
g_form.removeOption('salesforce_instance', 'InstanceG');
}

if (uCountry == 'USA' || uCountry == 'Country4') {

g_form.addOption('salesforce_instance', 'InstanceC', 'InstanceC', 1);
g_form.addOption('salesforce_instance', 'InstanceD', 'InstanceD', 2);
g_form.addOption('salesforce_instance', 'InstanceE', 'InstanceE', 3);

g_form.removeOption('salesforce_instance', 'InstanceA');
g_form.removeOption('salesforce_instance', 'InstanceB');
g_form.removeOption('salesforce_instance', 'InstanceG');
}

if (uCountry == 'UK') {
g_form.addOption('salesforce_instance', 'InstanceF', 'InstanceF', 1);
g_form.addOption('salesforce_instance', 'InstanceG', 'InstanceG', 2);
g_form.removeOption('salesforce_instance', 'InstanceA');
g_form.removeOption('salesforce_instance', 'InstanceB');
g_form.removeOption('salesforce_instance', 'InstanceC');
g_form.removeOption('salesforce_instance', 'InstanceD');
g_form.removeOption('salesforce_instance', 'InstanceE');
}
}

}

View solution in original post

5 REPLIES 5

shubhi211
Tera Guru

addOption(String fieldName, String choiceValue, String choiceLabel, Number choiceIndex);

 

fieldNameStringThe field name.
choiceValueStringThe value stored in the database.(BACKEND Value)
choiceLabelStringThe value displayed.
choiceIndexNumberOrder of the choice in the list.

 

Client Script

Type: OnChange
Variable name: country
 function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
 
var uCountry = g_form.getValue('country');
if (uCountry == 'India' || uCountry == 'Country1' || uCountry == 'Country2' || uCountry == 'Country3') {

g_form.addOption('salesforce_instance', 'InstanceA', 'InstanceA', 1);
g_form.addOption('salesforce_instance', 'InstanceB', 'InstanceB', 2);

g_form.removeOption('salesforce_instance', 'InstanceC');
g_form.removeOption('salesforce_instance', 'InstanceD');
g_form.removeOption('salesforce_instance', 'InstanceE');
g_form.removeOption('salesforce_instance', 'InstanceF');
g_form.removeOption('salesforce_instance', 'InstanceG');
}

if (uCountry == 'USA' || uCountry == 'Country4') {

g_form.addOption('salesforce_instance', 'InstanceC', 'InstanceC', 1);
g_form.addOption('salesforce_instance', 'InstanceD', 'InstanceD', 2);
g_form.addOption('salesforce_instance', 'InstanceE', 'InstanceE', 3);

g_form.removeOption('salesforce_instance', 'InstanceA');
g_form.removeOption('salesforce_instance', 'InstanceB');
g_form.removeOption('salesforce_instance', 'InstanceG');
}

if (uCountry == 'UK') {
g_form.addOption('salesforce_instance', 'InstanceF', 'InstanceF', 1);
g_form.addOption('salesforce_instance', 'InstanceG', 'InstanceG', 2);
g_form.removeOption('salesforce_instance', 'InstanceA');
g_form.removeOption('salesforce_instance', 'InstanceB');
g_form.removeOption('salesforce_instance', 'InstanceC');
g_form.removeOption('salesforce_instance', 'InstanceD');
g_form.removeOption('salesforce_instance', 'InstanceE');
}
}

}