May 06, 2017

Merger two LedgerDimension in Dynamics 365

Hi Folks,

In my previous post I shared  information about new classed that introduced in D365 for Dimension actions. In this post, I am sharing a sample code to merge two different ledger dimension and get a new LedgerDimension id.
This is rough code, please feel free to copy and update it according to your requirement.

public static void main(Args _args)
   {    
       LedgerJournalTrans  ledgerJournalTrans1, ledgerJournalTrans2 ;
       RefRecId            dim1, dim2, mergerDim;
      
  
       select firstonly TrvExpTrans where TrvExpTrans.ExpNumber == "USMF-000565";
       select firstonly AccountingDistribution where AccountingDistribution.SourceDocumentLine == SourceDocumentLine::find(TrvExpTrans.SourceDocumentLine).RecId;
       //AccountingDistribution::
       dim1 = TrvCostType::find("mycategory").LedgerDimension; //First dimension
       dim2 = 5637236123;//AccountingDistribution.LedgerDimension; //Second dimension
       mergerDim = LedgerDimensionFacade::serviceMergeLedgerDimensions(dim1, dim2);
     
      info(strFmt("Dim1: %1" , DimensionAttributeValueCombination::find(dim1).DisplayValue));
      info(strFmt("Dim2: %1" , DimensionAttributeValueCombination::find(dim2).DisplayValue));
      info(strFmt("merge dim: %1", DimensionAttributeValueCombination::find(mergerDim).DisplayValue));
  
   }

Please share your queries/feedback in comment box, I will be happy to help you.

-Harry

May 04, 2017

New classes for Ledger/Default Dimensions in D365FO

Hi Folks,

Since many days, I was trying to perform few logics over LedgerDimensions and DefaultDimensions, like merge and replace etc. In AX2012 its handled by DiemsionDefaultingService class that having many static methods to help us to play around ledger/default dimensions.

But in Dynamics 365 FO , this class is deprecated, and MS introduce few more classes to help us with these requirements. Here are few names of classes and method that can be used.


1. LedgerDimensionFacade : 
This class used for fixed LedgerDimension, we have many static methods here, like Merge Dimension, getdefaultDimension and many more, refer below image.

image

2. LedgerDimensionDefaultFacade: 
This class will help us to perform an action over the default dimension. Like, Merge specify default dimension into a single default dimension, replace attribute value etc.

Please refer below image, 

image

Both classed having an almost same method that is available in AX with DiemsionDefaultingService class.


See Also,

How to merge two dimension

-Harry