static void HKS_defaultSODimension(Args _args) { DimensionAttribute dimensionAttribute; DimensionAttributeValue dimAttributeValue; DimensionAttributeValueSetStorage dimensionAttributeValueSetStorage; DimensionAttributeValueSetItem dimensionAttributeValueSetItem; DimensionAttributeValueSet dimAttrValueSet; //Stores the Hash value based on the combination of Atttibutes values. If no record found, new record is created. SalesTable salesTable; recId defaultDim; TableId viewId; viewId = tableNum("DimAttributeSalesTable"); select firstonly dimensionAttribute where dimensionAttribute.BackingEntityType == viewId; //dimensionAttribute = DimensionAttribute::findByName("VendorGroup"); //find the attribute table. dimAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute,"20",false,true); //get the Attribute value table. If the value is not found create a new one. salesTable = salesTable::find("SO-100605"); dimensionAttributeValueSetStorage = dimensionAttributeValueSetStorage::find(salesTable.DefaultDimension); //if ( !dimensionAttributeValueSetStorage.getDisplayValueByDimensionAttribute(dimensionAttribute.RecId)) if (dimAttributeValue) //Check if the attribute value is valid. { //checkif the attribute value is already exisitng as part of hash value in dimensionAttributeValueSetStorage if (!dimensionAttributeValueSetStorage.containsDimensionAttributeValue(dimAttributeValue.RecId)) { dimensionAttributeValueSetStorage.addItem(dimAttributeValue); defaultDim = dimensionAttributeValueSetStorage.save(); update_recordSet salesTable setting DefaultDimension = defaultDim where salesTable.SalesId == "SO-100605"; //update the reference dimension. } } }