Quantcast
Channel: Microsoft Dynamics 365 Community
Viewing all articles
Browse latest Browse all 53207

Resolve Budget dimension through X++ [D365FO]

$
0
0

This one is to resolve budget dimensions. Be careful here to use the right class. Budget plan and Budget register use a different contract class.


public static void getBudgetLedgerDimension()
{
//use BudgetPlanningContract for Budget plan
//use BudgetAccountContract for Budget register
BudgetAccountContract budgetAccountContract = new BudgetAccountContract();
budgetAccountContract.parmValues(new List(Types::Class));
budgetAccountContract.parmAccountStructure('Manufacturing P&L');

DimensionAttributeValueContract attributeValueContract;

//Main account
attributeValueContract = DimensionAttributeValueContract::construct('MainAccount', '110180');
budgetAccountContract.parmValues().addEnd(attributeValueContract);

//Dimension 1 - repeat this for all other dimensions
attributeValueContract = DimensionAttributeValueContract::construct('Department', '022');
budgetAccountContract.parmValues().addEnd(attributeValueContract);

//resolve the dimension
BudgetDimensionCombinationServiceProvider budgetDimensionCombinationServiceProvider = BudgetDimensionCombinationServiceProvider::newForBudgetAccountContract(budgetAccountContract);
DimensionStorageResult dimensionStorageResult = budgetDimensionCombinationServiceProvider.resolve();
if (dimensionStorageResult.parmInvalidValue())
{
error("Invalid dimension");
}

info(strFmt("Budget Ledger RecId: %1", dimensionStorageResult.parmSavedRecId()));
}

Viewing all articles
Browse latest Browse all 53207

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>