Hello All - I'm creating a sales order for a specific retail store using X and getting below mentioned error, please help me to fix this.
Unable to return DimensionAttributeValue record for Dimension CC with value <blank> as no record exists in table DimensionFinancialTag through view DimensionFinancialTag
Note: I got this error only on UAT environment, On Development environment its working perfectly. All the configurations of financial dimensions are same on both environments.
The code i used to get the financial dimensions is below
retailChannelTbl.clear();
select DefaultDimension from retailChannelTbl
where retailChannelTbl.INVENTLOCATION == inventLocation.InventLocationId;
dimAttrCCValue = CfzSalesOrderDataProvider::getDimensionDisplayValue(retailChannelTbl.DefaultDimension, 'CC');
dimAttr = DimensionAttribute::findByName('CC');
dimAttrValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimAttr, dimAttrCCValue, false, true);
if (dimAttrValue)
{
dimavss.addItem(dimAttrValue);
}
/***********************************************************************/
dimAttrCCValue = CfzSalesOrderDataProvider::getDimensionDisplayValue(retailChannelTbl.DefaultDimension, 'BC');
dimAttr = DimensionAttribute::findByName('BC');
dimAttrValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimAttr, dimAttrCCValue, false, true);
if (dimAttrValue)
{
dimavss.addItem(dimAttrValue);
}
/***********************************************************************/
dimAttrCCValue = CfzSalesOrderDataProvider::getDimensionDisplayValue(inventTable.DefaultDimension, 'CAT');
dimAttr = DimensionAttribute::findByName('CAT');
dimAttrValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimAttr, dimAttrCCValue, false, true);
if (dimAttrValue)
{
dimavss.addItem(dimAttrValue);
}
/***********************************************************************/
dimAttrCCValue = CfzSalesOrderDataProvider::getDimensionDisplayValue(retailChannelTbl.DefaultDimension, 'RC');
dimAttr = DimensionAttribute::findByName('RC');
dimAttrValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimAttr, dimAttrCCValue, false, true);
if (dimAttrValue)
{
dimavss.addItem(dimAttrValue);
}
salesLine.DefaultDimension = dimavss.save();
and the body of the function getDimensionDisplayValue is below
public static str getDimensionDisplayValue(RecId defaultDimension, Name dimName)
{
DimensionAttributeValueSetStorage dimStorage;
dimStorage = DimensionAttributeValueSetStorage::find(defaultDimension);
return dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName(dimName).RecId);
}