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

Choices of location should be made available based on the country selected in the list collector field.

rog
Giga Contributor

Hi all,

 

I have a requirement where in we need to populate the location (reference to cmn_location) value based on the selection of country (reference to core_country). If for example countries Japan and China are selected then on the locations that are active under these countries should be available for selection in location field.

 

I got to know that we need to achieve this through script include and advance reference qualifier since the location field is a reference field. Please note that the country field is a List Collector.

 

Based on the inputs we have written the below code:

 

var getCountryLocation = Class.create();
getCountryLocation.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getCountry1 : function ()
{
var sys_id_list=[];
var cou;
var a=current.variables.countries.getDisplayValue();
var gr1=new GlideRecord('cmn_location');
gr1.addQuery('country',a);
gr1.query();
while(gr1.next())
{
sys_id_list.push(gr1.getValue('sys_id'));
}
return 'sys_idIN'+sys_id_list.toString();
},

type: 'getCountryLocation'
});

 

calling it in the reference qualifier,

javascript : new getCountryLocation().getCountry1();

please suggest. Thanks in advance.

1 ACCEPTED SOLUTION

Jim Coyne
Kilo Patron

You should be able to just set the "Reference qual" field to:

javascript:"country=" + current.variables.countries.getDisplayValue();

View solution in original post

20 REPLIES 20

Correct.  A Script Include is NOT required in this scenario.  But, as Joni mentioned, the "Reference qual" field should be:

javascript:"countryIN" + current.variables.countries.getDisplayValue();

...with "IN" because there may be multiple countries selected in the List Collector.

Ah, yes, indeed the simplest solution is the best. Can't believe I basically forgot this while focusing on the script include.

 

javascript:"countryIN" +  current.variables.countries.getDisplayValue();

rog
Giga Contributor

I have tried it but now it is returning empty locations. what am i missing here?

This should definitely work as I tested it as well.
Make sure your variable is called 'countries'.

The current.variables.countries.getDisplayValue() returns the display value of those so for example China and Japan.

Then make sure your cmn_location table actually contains locations where country is Japan or China.

If no such location exists, then you'd end up with 0 results.

rog
Giga Contributor

Is it not working because the countries field is a list collector and the location field is a reference field?