To Filter standard and custom dimension values based on the dimension selected
public void lookup(FormControl _formControl, str _filterStr)
{
SysTableLookup sysTableLookup;
Query query;
QueryBuildDataSource qbdsDimensionFinancialTag,qbds,qbds1,qbds2;
QueryBuildRange qbrFinancialTagCategory;
//standard
DimensionAttributeValueSetItem valueSetItem;
DimensionAttribute dimAttribute;
DimensionAttributeValue dimAttributeValue;
str name,value;
container con;
OMOperatingUnit operatingUnit;
//standard
#define.MyCustomFinancialDimension('MyCustomFinancialDimension')
if( DimensionAttribute::findByName(Table1_Dimension.valueStr()).Type == DimensionAttributeType::CustomList)
{
query = new Query();
qbdsDimensionFinancialTag = query.addDataSource(tableNum(DimensionFinancialTag));
qbrFinancialTagCategory = qbdsDimensionFinancialTag.addRange(fieldNum(DimensionFinancialTag, FinancialTagCategory));
qbrFinancialTagCategory.value(strFmt('%1', DimensionAttribute::findByName(Table1_Dimension.valueStr(), false).financialTagCategory()));
sysTableLookup = sysTableLookup::newParameters(tableNum(DimensionFinancialTag), _formControl);
sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag, Value), true);
sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag, Description));
sysTableLookup.addSelectionField(fieldNum(DimensionFinancialTag, FinancialTagCategory));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
} else
{
value = Table1_Dimension.valueStr();
if(value == "CostCenter")
{
sysTableLookup = sysTableLookup::newParameters(tableNum(DimAttributeOMCostCenter), _formControl);
query = new query();
qbds = query.addDataSource(tableNum(DimAttributeOMCostCenter));
qbds.addRange(fieldNum(DimAttributeOMCostCenter,Value)).value(SysQuery::valueUnlimited());
sysTableLookup.addLookupfield(fieldNum(DimAttributeOMCostCenter, Value), true);
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
if(value == "Brand")
{
sysTableLookup = sysTableLookup::newParameters(tableNum(DimAttributeOMDepartment), _formControl);
query = new query();
qbds = query.addDataSource(tableNum(DimAttributeOMDepartment));
qbds.addRange(fieldNum(DimAttributeOMDepartment,Value)).value(SysQuery::valueUnlimited());
sysTableLookup.addLookupfield(fieldNum(DimAttributeOMDepartment, Value), true);
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
}
}