How to get dimension value from ledger dimension in axapta 2012


 DimensionAttribute             dimensionAttribute1;  
 DimensionAttributeValueGroupStatus     dimAttrValueGroupStatus1;  
 DimensionAttributeValueGroupCombination   dimAttrValueGroupCombo1;  
 DimensionAttributeValueGroup        dimAttrValueGroup1;  
 DimensionAttributeLevelValue        dimAttrLevelValue1;  
 DimensionAttributeValue           dimAttrValue1;  
 DimensionAttrValueCOAOverride        dimAttrValueCOAOverride1;  
 DimensionAttrValueLedgerOverride      dimAttrValueLedgerOverride1;  
 DimensionFinancialTag            dimensionFinancialTag1;  
 InventPosting                inventPosting1;  
 DimensionValue               Dim1, Dim2, Dim3;  
 MainAccountNum               LedgerAc;  
 RecId                    LedgerRecId, dimCombinationId;  
 dimCombinationId  = 65656776; // for example here i gave a valid ledgerdimension  
 // find MainAccountId from LedgerDimension  
 LedgerAc    = MainAccount::findByLedgerDimension(dimCombinationId).MainAccountId;  
 LedgerRecId     = Ledger::findLedgerRecIdByLegalEntity(CompanyInfo::findDataArea(curext()).RecId);  
 while select Ordinal from dimAttrValueGroupCombo1 order by Ordinal  
 where dimAttrValueGroupCombo1.DimensionAttributeValueCombination == dimCombinationId  
 join dimAttrValueGroup1  
 where dimAttrValueGroup1.RecId == dimAttrValueGroupCombo1.DimensionAttributeValueGroup  
 outer join dimAttrValueGroupStatus1  
 where dimAttrValueGroupStatus1.DimensionAttributeValueGroup == dimAttrValueGroup1.RecId  
 join dimAttrLevelValue1  
 where dimAttrLevelValue1.DimensionAttributeValueGroup == dimAttrValueGroup1.RecId  
 join pessimisticLock IsSuspended, IsTotal, ActiveFrom, ActiveTo, DimensionAttribute, RecId, EntityInstance from dimAttrValue1  
 where dimAttrValue1.RecId == dimAttrLevelValue1.DimensionAttributeValue  
 outer join pessimisticLock IsSuspended, ActiveFrom, ActiveTo, RecId from dimAttrValueCOAOverride1  
 where dimAttrValueCOAOverride1.DimensionAttributeValue == dimAttrValue1.RecId && dimAttrValueCOAOverride1.ChartOfAccounts == LedgerChartOfAccounts::current()  
 outer join pessimisticLock IsSuspended, ActiveFrom, ActiveTo, RecId from dimAttrValueLedgerOverride1  
 where dimAttrValueLedgerOverride1.DimensionAttributeValue == dimAttrValue1.RecId && dimAttrValueLedgerOverride1.Ledger == LedgerRecId  
 {  
 dimensionFinancialTag1 = null;  
 select * from dimensionFinancialTag1  
 where dimensionFinancialTag1.RecId == dimAttrValue1.EntityInstance  
 join dimensionAttribute1  
 where dimensionAttribute1.RecId == dimAttrValue1.DimensionAttribute;  
 if (dimensionAttribute1.Name == ‘Department’)  
 {  
 Dim1 = dimensionFinancialTag1.Value;  
 }  
 if (dimensionAttribute1.Name == ‘CostCenter’)  
 {  
 Dim2 = dimensionFinancialTag1.Value;  
 }  
 if (dimensionAttribute1.Name == ‘Purpose’)  
 {  
 Dim3 = dimensionFinancialTag1.Value;  
 }  
 }