In my recent post, Replace financial dimension value in the ledger dimension. we saw how can we replace the financial dimension in the ledger dimension.
In AX 2012 R3, Budget planning functionality brought budget ledger dimension which is the extension of the ledger dimension.
Today, we will see how can we replace financial dimension in the budget ledger dimension.
AxdDimensionUtil having methods for the budget planning ledger dimension here is the link for that. Budget Planning helper methods in the AxdDimensionUtil
Below is the method can be used to replace dimension value in the budget planning ledger dimension. Just pass the ledger dimension(RecId), DimensionName (which you want to replace ) and new dimension value.
public static LedgerDimensionBudgetPlanning replaceDimValueBudgetPlanning(
LedgerDimensionBudgetPlanning _ledgerDimension,
Name _dimAttrName,
DimensionValue _dimValue)
{
LedgerDimensionBudgetPlanning ledgerDimension;
container conLedgerDimension;
conLedgerDimension = AxdDimensionUtil::getBudgetPlanningAccountValue(_ledgerDimension);
if (conFind(conLedgerDimension, _dimAttrName))
{
conLedgerDimension = conpoke(conLedgerDimension, conFind(conLedgerDimension, _dimAttrName)+1, _dimValue);
}
else
{
conLedgerDimension = conpoke(conLedgerDimension, 3, conPeek(conLedgerDimension, 3) +1);
conLedgerDimension = conIns(conLedgerDimension, conlen(conLedgerDimension) +1, _dimAttrName);
conLedgerDimension = conIns(conLedgerDimension, conlen(conLedgerDimension) +1, _dimValue);
}
ledgerDimension = AxdDimensionUtil::getBudgetPlanningAccountId(conLedgerDimension);
return ledgerDimension;
}