The requirement being restricting the dimension selection on the dimension controller based on certain business rules.
I had a requirement where the default dimensions on the employee master had to be restricted to allow entry only for a subset of the total dimensions. As shown in the screen shot below the need was to restrict the selection of only D1_Division and D3_ConsGroup on the employee master and disable the rest for data entry
The code for the same has to be written on the Active method of the relevant DataSource on the form.
DimensionAttributeSetStorage dimAttrSetStorage;
DimensionAttribute dimAttribute;
DimensionEnumeration dimEnumeration;
int ret;
ret = super();
dimensionDefaultingController.activated();
//The dimension controller to be locked to allow only certain dimensions to be entered.
dimAttrSetStorage = new DimensionAttributeSetStorage();
// D1_Division
dimAttribute = DimensionAttribute::findByName('D1_Division');
if(dimAttribute)
{
dimAttrSetStorage.addItem( dimAttribute.RecId, dimAttribute.HashKey, NoYes::Yes );
}
// D3_ConsGroup
dimAttribute = DimensionAttribute::findByName('D3_ConsGroup');
if(dimAttribute)
{
dimAttrSetStorage.addItem( dimAttribute.RecId, dimAttribute.HashKey, NoYes::Yes );
}
dimEnumeration = dimAttrSetStorage.save();
dimensionDefaultingController.setEditability( true, dimEnumeration );
I had a requirement where the default dimensions on the employee master had to be restricted to allow entry only for a subset of the total dimensions. As shown in the screen shot below the need was to restrict the selection of only D1_Division and D3_ConsGroup on the employee master and disable the rest for data entry
The code for the same has to be written on the Active method of the relevant DataSource on the form.
DimensionAttributeSetStorage dimAttrSetStorage;
DimensionAttribute dimAttribute;
DimensionEnumeration dimEnumeration;
int ret;
ret = super();
dimensionDefaultingController.activated();
//The dimension controller to be locked to allow only certain dimensions to be entered.
dimAttrSetStorage = new DimensionAttributeSetStorage();
// D1_Division
dimAttribute = DimensionAttribute::findByName('D1_Division');
if(dimAttribute)
{
dimAttrSetStorage.addItem( dimAttribute.RecId, dimAttribute.HashKey, NoYes::Yes );
}
// D3_ConsGroup
dimAttribute = DimensionAttribute::findByName('D3_ConsGroup');
if(dimAttribute)
{
dimAttrSetStorage.addItem( dimAttribute.RecId, dimAttribute.HashKey, NoYes::Yes );
}
dimEnumeration = dimAttrSetStorage.save();
dimensionDefaultingController.setEditability( true, dimEnumeration );
No comments:
Post a Comment