Notifications
Announcements
No record found.
Hi,I have a master form where I have entered the main account id and dimensions like cost-center, item category, etc.How can we create a ledger dimension for this?
Hi Vikash,
Please check if d365foe.blogspot.com/.../get-ledger-dimension-from-string-in-d.html helps.
Is it a custom form?
yes, it is a custom form.
If you have the values separately on this new form and you wan to create ledgerDimension for a transaction, try this code -
public RecId getLedgerDimension(Mainaccount _mainaccount, str dim1,dim2,dim3) { DimensionServiceProvider DimensionServiceProvider = new DimensionServiceProvider(); LedgerAccountContract LedgerAccountContract = new LedgerAccountContract(); DimensionAttributeValueContract ValueContract; List ListValueContract = new List(Types::Class); dimensionAttributeValueCombination dimensionAttributeValueCombination; DimensionStorage dimStorage; if (dim1) { ValueContract = new DimensionAttributeValueContract(); ValueContract.parmName('dim1') ; ValueContract.parmValue(dim1); ListValueContract.addEnd(ValueContract); } if (dim2) { ValueContract = new DimensionAttributeValueContract(); ValueContract.parmName('dim2') ; ValueContract.parmValue(dim2); ListValueContract.addEnd(ValueContract); } if (dim3) { ValueContract = new DimensionAttributeValueContract(); ValueContract.parmName('dim3') ; ValueContract.parmValue(dim3); ListValueContract.addEnd(ValueContract); } LedgerAccountContract.parmMainAccount(_MainAccount); LedgerAccountContract.parmValues(ListValueContract); dimStorage = DimensionServiceProvider::buildDimensionStorageForLedgerAccount(LedgerAccountContract); dimensionAttributeValueCombination = DimensionAttributeValueCombination::find(dimStorage.save()); return dimensionAttributeValueCombination.RecId; }
public DimensionDynamicAccount generateLedgerDimension() { int hierarchyCount; int hierarchyIdx; RecId dimAttId_MainAccount; LedgerRecId ledgerRecId; MainAccount mainAccount; RefRecId recordvalue; DimensionAttribute dimensionAttribute; DimensionAttributeValue dimensionAttributeValue; DimensionSetSegmentName DimensionSet; DimensionStorage dimStorage; TPZ_MISReportMaster master; container _conData; LedgerAccountContract LedgerAccountContract = new LedgerAccountContract(); DimensionAttributeValueContract ValueContract; List valueContracts = new List(Types::Class); dimensionAttributeValueCombination dimensionAttributeValueCombination; _conData=[master.AccountId,master.AccountingLocationValue,master.Brand,master.CTCValue,master.CostCenter,master.Department,master.EmpCodes,master.ItemCategory,master.Region,master.ResponsibilityCenter,master.Size,master.Type,master.Variant];; mainAccount = MainAccount::findByMainAccountId(master.AccountId); 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-us"); 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(master.AccountId); LedgerAccountContract.parmValues(valueContracts); dimStorage = DimensionServiceProvider::buildDimensionStorageForLedgerAccount(LedgerAccountContract); dimensionAttributeValueCombination = DimensionAttributeValueCombination::find(dimStorage.save()); ledgerRecId = dimensionAttributeValueCombination.RecId; return ledgerRecId; }
Hi,
I tried this code.
do you still need help on this issue?
Under review
Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.
As AI tools become more common, we’re introducing a Responsible AI Use…
We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…
These are the community rock stars!
Stay up to date on forum activity by subscribing.
André Arnaud de Cal... 490 Super User 2025 Season 2
Martin Dráb 429 Most Valuable Professional
BillurSamdancioglu 241 Most Valuable Professional