/// <summary> /// replace specific financial dimension value in DefaultDimension based on the LedgerParameters setup /// </summary> /// <param name = "_defaultDimensionFrom">DefaultDimension recId the value should be taken from</param> /// <param name = "_defaultDimensionTo">DefaultDimension recId the value should be assigned to</param> /// <returns>returns new DefaultDimension recId if conditions are met</returns> public static DimensionDefault replaceDefaultDim(DimensionDefault _defaultDimensionFrom, DimensionDefault _defaultDimensionTo) { if(!_defaultDimensionFrom) { return _defaultDimensionTo; } LedgerParameters ledgerParameters = LedgerParameters::find(); if (ledgerParameters.DepartmentSetFinancialDimension && ledgerParameters.DepartmentDimensionAttribute) { DimensionAttribute dimAttr; DimensionAttributeValue dimAttrValue; DimensionAttributeValueSetStorage davss; davss = DimensionAttributeValueSetStorage::find(_defaultDimensionTo); dimAttr = DimensionAttribute::find(ledgerParameters.DepartmentDimensionAttribute); DimensionAttributeValueSetStorage dimStorage = DimensionAttributeValueSetStorage::find(_defaultDimensionFrom); DimensionValue dimValue = dimStorage.getDisplayValueByDimensionAttribute(dimAttr.RecId); dimAttrValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimAttr, dimValue); if(dimAttrValue && !davss.containsDimensionAttributeValue(dimAttrValue.RecId)) { davss.addItem(dimAttrValue); return davss.save(); } } return _defaultDimensionTo; }
This blog is contains coding reference related to Microsoft AX 2012 and D365 finance and operations and Power platform
Showing posts with label Default dimension. Show all posts
Showing posts with label Default dimension. Show all posts
Tuesday, May 25, 2021
Set Financial Dimensions by X++ code in AX 2012/Setting one Dimension value in the combination
Monday, April 12, 2021
Create default dimension using X++ in D365fo
MapEnumerator mapEnum;
boolean validDim = true;
List _contractList;
Map dimMap = new Map(Types::String, Types::String);
RecId defaultDimension;
DimensionDefaultContract dimensionDefaultContract = DimensionDefaultContract::construct();
dimMap.insert('Client', '003501_036');
dimMap.insert('Purpose', '2016GBG');
dimMap.insert('Division', 'CORP');
dimMap.insert('Department', 'ADMIN');
dimMap.insert('Location', 'LOSANGELES');
dimMap.insert('SubDepartment', 'AP');
dimMap.insert('Employee', '100077');
mapEnum = dimMap.getEnumerator();
while(mapEnum.moveNext())
{
str dimName, dimValue;
boolean dimNameValid;
dimName = mapEnum.currentKey();
dimValue = mapEnum.currentValue();
DimensionAttributeValueContract dimAttrValContract = DimensionAttributeValueContract::construct(dimName, dimValue);
_contractList = dimensionDefaultContract.parmValues();
_contractList.addEnd(dimAttrValContract);
}
if(dimensionDefaultContract && !dimensionDefaultContract.parmValues().empty())
{
DimensionNameValueListServiceProvider dimensionDefaultServiceProvider = DimensionNameValueListServiceProvider::newForDimensionNameValueListContract(dimensionDefaultContract);
DimensionStorageResult dimensionStorageResult = dimensionDefaultServiceProvider.resolve();
switch(dimensionStorageResult.parmStatus())
{
case DimensionStorageResultStatus::Valid:
defaultDimension = dimensionStorageResult.parmSavedRecId();
break;
default:
error(strFmt("Validation Status: %1", dimensionStorageResult.parmStatus()));
break;
}
}
info(strFmt("Default Dimension %1",defaultDimension));
Subscribe to:
Posts (Atom)