void VKAddFinancialDimension(DimensionAttributeValueSetStorage _dimSetStorage, str _name, str _value) { DimensionAttribute dimAttr = DimensionAttribute::findByName(_name); DimensionAttributeValue dimAttrValue; dimAttrValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimAttr, _value, false, true); if (_dimSetStorage) { _dimSetStorage.addItem(dimAttrValue); } else { throw error(strFmt("Value %1 for dimension %2 not found", _value, _name)); } }Usage:
DimensionAttributeValueSetStorage dimSetStorage = new DimensionAttributeValueSetStorage(); DimensionDefault defaultDimension; VKAddFinancialDimension(dimSetStorage, 'FinDimName1', 'FinDimValue'); VKAddFinancialDimension(dimSetStorage, 'FinDimName2', 'FinDimValue'); defaultDimension = dimSetStorage.save();Changing existing financial dimension set:
public static DimensionValue VKGetFinancialDimensonValue(DimensionDefault _dimensionDefault, Name _dimensionName) { DefaultDimensionView defaultDimensionView; select firstonly DisplayValue from defaultDimensionView where defaultDimensionView.Name == _dimensionName && defaultDimensionView.DefaultDimension == _dimensionDefault; return defaultDimensionView.DisplayValue; } public static DimensionDefault VKChangeFinancialDimensionValue(DimensionDefault _dimensionDefault, Name _dimensionName, DimensionValue _newDimensionValue) { DimensionAttributeValueSetStorage dimensionAttributeValueSetStorage; DimensionAttribute dimensionAttribute; DimensionValue oldDimensionValue; DimensionDefault newDimensionDefault; // Get current value oldDimensionValue = VKFunctions::VKGetFinancialDimensonValue(_dimensionDefault, _dimensionName); // Build DimensionAttributeValueSetStorage dimensionAttributeValueSetStorage = DimensionAttributeValueSetStorage::find(_dimensionDefault); // Remove old dimension value dimensionAttribute = DimensionAttribute::findByName(_dimensionName); dimensionAttributeValueSetStorage.removeDimensionAttributeValue( DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, oldDimensionValue).RecId); // Set new dimension value if(_newDimensionValue) { dimensionAttributeValueSetStorage.addItem( DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, _newDimensionValue, false, true)); } newDimensionDefault = dimensionAttributeValueSetStorage.save(); return newDimensionDefault; }
DimensionDefault newDimensionDefault = ledgerJournalTrans.DefaultDimension; newDimensionDefault = VKChangeFinancialDimensionValue(newDimensionDefault, 'FinsDimName1', 'FinDimValue'); newDimensionDefault = VKChangeFinancialDimensionValue(newDimensionDefault, 'FinsDimName2', 'FinDimValue');
MainAccount mainAccount = MainAccount::findByMainAccountId(_lineStaging.MainAccount); ledgerJournalTrans.AccountType = LedgerJournalACType::Ledger; ledgerJournalTrans.LedgerDimension = LedgerDefaultAccountHelper::getDefaultAccountFromMainAccountRecId(mainAccount.RecId); ledgerJournalTrans.LedgerDimension = LedgerDimensionFacade::serviceCreateLedgerDimension(ledgerJournalTrans.LedgerDimension, defaultDimension);
ledgerJournalTrans.AccountType = LedgerJournalACType::Vend; ledgerJournalTrans.LedgerDimension = LedgerDynamicAccountHelper::getDynamicAccountFromAccountNumber('VendAccountNum', ledgerJournalTrans.AccountType); ledgerJournalTrans.DefaultDimension = defaultDimension;
ledgerJournalTrans.DefaultDimension = LedgerDimensionFacade::getDefaultDimensionFromLedgerDimension(generalJournalAccountEntry.LedgerDimension);
DaxOnline.org is free platform that allows you to quickly store and reuse snippets, notes, articles related to Dynamics AX.
Authors are allowed to set their own AdSense units and "buy me a coffee" link.
Join us.