To use those two method proceed like so:
purchTable = purchTable::find('PURCHID', true);
purchTable.DefaultDimension = getNewDefaultDimension(purchTable.DefaultDimension, "COSTCENTER", "YOURVALUE");
purchTable.update();
METHOD NUMBER 1:
static RecId getNewDefaultDimension(RecId defaultDimension, Name dimName, str 255 dimValue)
{
DimensionAttributeValueSetStorage dimStorage;
Counter i;
DimensionAttribute dimAttributeCostCenter;
DimensionAttributeValue dimAttributeValue;
dimStorage = DimensionAttributeValueSetStorage::find(defaultDimension);
dimAttributeCostCenter = DimensionAttribute::findByName(dimName);
if(dimValue)
{
dimAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimAttributeCostCenter, dimValue, true, true);
dimStorage.addItem(dimAttributeValue);
}
else
dimStorage.removeDimensionAttribute(DimensionAttribute::findByName(dimName).RecId);
return dimStorage.save();
}
METHOD NUMBER 2:
static RecId getNewDefaultDimension(RecId defaultDimension, Name dimName, str 255 dimValue)
{
container c;
RecId newdefaultDimension;
int i;
c = AxdDimensionUtil::getDimensionAttributeValueSetValue(defaultDimension);
i = conFind(c, dimName);
if(!i && !dimValue)
return defaultDimension;
if(i)
{
c = conDel(c, i+1, 1);
c = conDel(c, i, 1);
}
if(dimValue)
{
c += dimName;
c += dimValue;
}
c = conDel(c, 1, 1);
c = conIns(c, 1, conLen(c) / 2);
newdefaultDimension = AxdDimensionUtil::getDimensionAttributeValueSetId(c);
return newdefaultDimension;
}
To get the current value of a financial dimension:
static str 255 getDimensionValue(RecId defaultDimension, Name dimName)
{
DimensionAttributeValueSetStorage dimStorage;
Counter i;
DimensionAttribute dimAttributeCostCenter;
DimensionAttributeValue dimAttributeValue;
dimStorage = DimensionAttributeValueSetStorage::find(defaultDimension);
return dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName(dimName).RecId);
}
2 comments:
Thanks for this post, Ludo!
It's a pity, that there's no not hardcoded dimension identifier any more(like an enum)...
It's nearly impossible to find educated people on this subject, but you sound like you know what you're talking about!
Thanks
Feel free to visit my homepage - spionage handy findet man hier
Post a Comment