Requirement
Create Ledger Dimension From Main Account & Financial Dimension Values.
Sample Code
_mainAccountNum = '100920' // your main account or ledger account from a valid chart //of accounts _conValue = ['001', 'ABC', 0] //values of financial dimension added to a container. static int64 getLedgerDim(MainAccountNum _mainAccountNum, container _conValue) { container _conData; int hierarchyCount; int hierarchyIdx; RecId dimAttId_MainAccount; LedgerRecId ledgerRecId; MainAccount mainAccount; RefRecId recordvalue; DimensionAttribute dimensionAttribute; DimensionAttributeValue dimensionAttributeValue; DimensionSetSegmentName DimensionSet; DimensionStorage dimStorage; LedgerAccountContract LedgerAccountContract = new LedgerAccountContract(); DimensionAttributeValueContract ValueContract; List valueContracts = new List(Types::Class); dimensionAttributeValueCombination dimensionAttributeValueCombination; _conData = _conValue;//["033", "abc", 0]; mainAccount = MainAccount::findByMainAccountId(_mainAccountNum); recordvalue = DimensionHierarchy::getAccountStructure(mainAccount.RecId,Ledger::current()); hierarchyCount = DimensionHierarchy::getLevelCount(recordvalue); DimensionSet = DimensionHierarchyLevel::getDimensionHierarchyLevelNames(recordvalue); for(hierarchyIdx = 1;hierarchyIdx<=hierarchyCount;hierarchyIdx++) { if(hierarchyIdx == 1) continue; dimensionAttribute = DimensionAttribute::findByLocalizedName(DimensionSet[hierarchyIdx],false,"en-in"); if(dimensionAttribute) { dimensionAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute,conPeek(_conData,hierarchyIdx)); if(dimensionAttributeValue) { ValueContract = new DimensionAttributeValueContract(); ValueContract.parmName(dimensionAttribute.Name) ; ValueContract.parmValue(dimensionAttributeValue.CachedDisplayValue); valueContracts.addEnd(ValueContract); } } } LedgerAccountContract.parmMainAccount(_mainAccountNum); LedgerAccountContract.parmValues(valueContracts); dimStorage = DimensionServiceProvider::buildDimensionStorageForLedgerAccount(LedgerAccountContract); dimensionAttributeValueCombination = DimensionAttributeValueCombination::find(dimStorage.save()); ledgerRecId = dimensionAttributeValueCombination.RecId; return ledgerRecId; }