Category Archives: D365 Extension Framework

D365 FO/AX7/Class Extension: COC (Chain of command) & Method Wrapping With Example

  • Introduction COC (chain of command) & Method Wrapping In Microsoft Dynamics 365 finance and operations –
  • Microsoft D365 Finance and operations supports very powerful feature called COC or method wrapping.
  • In past, Microsoft Dynamics AX/Axapta supports overlayering where you can overlayer Microsoft classes, table methods etc directly by placing your code in the middle, bottom or top if standard code. Below is screenshot and example for your reference. In below screenshot i placed my custom code in the middle of standard method by using overlayering.
  • In Microsoft Dynamics 365 finance and operations (After version 8.0) , you cannot overlayer code as everything is sealed now. We have to use COC or method wrapping.Microsoft has improved the Functionality of Class extension for D365 FO by adding wrap logic around methods which are defined in the base class that you are augmenting. You can Wrap or do Chain of command (COC) of public and protected methods.
  • In below screenshot i am using method wrapping or class extension of standard class which is different from Microsoft Dynamics AX overlayering approach.

  • Next keyword means to call the orginal method “ChecItemPostingDate” of standard class “InventUpdate”
  • You can get values of Global Variables of in your extension class of your parent class or main class.
  • Final Modifier means The method can’t be overridden in any class that derives from its class.
  • Here are one more example where we are using COC (chain of commands) in Table methods.

Benefits Of Using Change Of Commands instead of Old Overlayering approach in Microsoft Dynamics 365 finance and operations

  1. Easy Future upgrades and version enhancements as you are not doing overlayering in standard classes or methods or objects & keeping you separate extension classes.
  2. Neat & Clean development as no need to compile whole code librarary.

D365 FO/AX7: Merge Branches Or Moving Changes from One Branch To Another in VSTS/Azure DevOps

Requirement: In last post i demonstrated how can we create A New Production Branch In VSTS (Visual Studio Team Services)/Azure DevOps & Microsoft Dynamics 365 finance and operations. To See my last post please click here. In this post i will show how can we Merge Branches in VSTS/Azure DevOps and Microsoft Dynamics D365 finance and operations or how can we move change or CHANGESets from one dev branch to another prod branch. Before starting this tutorial i will recommend you to please go through my last post.To See my last post please click here

  • Right Click on SOURCE Branch & choose option MERGE
  • Browse TARGET Branch
  • You can choose 2 option for branch changes you would like to merge.First one is “ALL CHANGES UPTO SPECIFIC VERSION” & second one is “SELCTED CHANGESETS
  • Click NEXT and FINISH

D365 Fins & Ops/AX7: Extend & Customize Retail Statement Posting|Part 1|D365 Commerce|D365 Retail

Retail Statement Posting– Retail Statement Posting or Day End Posting in Microsoft Dynamics 365 finance and operations/D365 Commerce/D365 Retail is very important process. In Dynamics 365 Commerce, Retail statement posting process is a batch task which updates financial Transaction, customer transactions & inventory transactions. Retail statement posting process consists automation of activities like creation of sales order from D365 MPOS/CPOS retail sales transactions, invoice posting of sales order , retail tender payments & customer settlements.

Scenarios– Extension & Customization of Retail posting routine is a common requirement and classes architecture & posting routines is way more different than Microsoft Ax 2012 retail statement posting and totally new.

Example 1 :

During the time of retail statement posting, developer wants to carry custom fields in SalesLine or wants to update value of fields in SalesLine.During Retail statement posting , RetailTransactionServiceOrder Class is resposible for creation of SalesTable or Customer Order. Fortunately, Microsoft provides a class RetailCreateCustomerOrderExtensions for extending Retail Statement posting – Customer Order Creation Process. You can extend the class RetailCreateCustomerOrderExtensions and by using Chain of command (COC) of method RetailCreateCustomerOrderExtensions.preSalesLineCreate() you can achieve mentioned scenario.

Example 2:

In example 1 we are modifying the value of SalesLine. In this example , developer wants to update or carry new fields in SalesTable or customer Order Header during Retail Statement Posting.You can extend the class RetailCreateCustomerOrderExtensions and by using Chain of command (COC) of method RetailCreateCustomerOrderExtensions.orderHeaderBeforeInsert() you can achieve mentioned scenario.