The Microsoft Dynamics AX 2012 extension framework – Part 3

Arthur Greef and Michael Gall. In part 1 of this blog entry series, we explained how classes can be extended by using the Microsoft Dynamics AX 2012 extension framework and statically declared class attributes. In part 2, we described the application model elements and application model attributes that are used to extend any application object tree…


The Microsoft Dynamics AX 2012 extension framework – Part 2

Arthur Greef and Michael Gall. In this blog entry we examine the new extension framework that was shipped with Microsoft Dynamics AX 2012. In part 1 of this series, we explained how the extension framework can be used to instantiate objects from derived classes that are decorated with static class attributes. This design pattern should be…


The Microsoft Dynamics AX 2012 extension framework – Part 1

Arthur Greef and Michael Gall. Microsoft Dynamics AX 2012 includes a new extension framework that can be used to reduce coupling between application foundation frameworks and their extensions. This is the first part in a series of blogs that describes the design of the extension framework and gives examples of where this framework is used in…


Batch processing for dimension set balance rebuilds

When performing dimension set balance rebuilds in a batch, be sure to schedule the batches far enough apart that they do not run concurrently. Doing this will eliminate any chance for contention since a rebuild has to process the entire general journal. Dimension set balance updates are optimized to run efficiently even if they run…


Integrating a Source Document with Budget Control

When adding a document extending the source document framework, the document can also be enabled for ledger budget checking.  This provides the ability for the financial activity of the document to be checked to ensure funds are available to pay for those activities.  Budget control is already integrated with the source document framework.  This integration…

0

Step 6: Implement confirmation/posting of your document

Posting of your document usually consist of creating accounting entries in ledger and updating your document to posted state. Source Document Framework will help you create accounting. a)      Add code necessary to perform state update of your document during posting (for instance, you can add a field IsPosted to your document header and set it…


Step 5: Add code to distribute and journalize source document amounts

There might be a need to create new monetary amounts but that is optional and you may find existing monetary amounts sufficient. It depends if existing monetary amounts are a good fit for your document and have appropriate names to display on accounting distributions form. Either new or existing MonetaryAmount enum values will be used…


Step 4: Add Source Document Framework forms to your document UI

This initial wiring will just display empty windows as you didn’t create code which would calculate distributions. But it is good to do it now to be able to have a quick visual test when you later add code related to distributions. a)      Make sure you supplied both Label and SingularLabel for your document header…


Step 3: Perform initial wiring to Source Document Framework – document classes

Now you need to implement few classes representing your source document. a)      Create a class which extends SourceDocumentType. Using framework naming standards name this class MyDocumentSourceDocumentType. Implement all abstract methods (see examples in the following existing classes: CustInvoiceSourceDocType, VendorInvoiceSourceDocType, PurchaseOrderSourceDocumentType) – parmModule(): used to determine whether it is valid to add entries to subledger for given…


Step 2: Perform initial wiring to Source Document Framework – tables and maps

The Source Document Framework (Accounting Framework) will provide functionality necessary to record business events and create accounting for the newly created document – accounting distributions and subledger journal entries. But you will need to inform the framework how to deal with your document. a)      Reference source document header Modify the table definition of your document…