AX 2012 Financial dimension update using x++ :
METHOD NUMBER 1:
METHOD NUMBER 2:
To get the current value of a financial dimension:
AX
2012 Financial dimension update
Here are 2 ways to update a
financial dimension, while keeping the other dims. The result should be the
same, just use whatever you prefer
To use those two method proceed like so:
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);
}
0 comments:
Post a Comment