The purpose of this post is to give an overview about the changes been made in the Dynamics AX 2012 data model related to inventory transactions.
For more details; how to implement code changes for inventTrans table the best resource is this white paper Implementing InventTrans refactoring for Microsoft Dynamics AX Applications AX2012
Before AX2012, the only table used for recording all the inventory transactions was InventTrans. In AX2009, a lot of data in InventTrans is either redundant or fields are used to represent a specific type of transaction like sales, purchase, transfer etc.
In AX2012, the base is still the same i.e. every inventory still gets recorded in the InventTrans but the only difference is that the table has been more normalized now. A new table has been added called InventTransOrigin which is actually now holding the relationship between the originating tables (transaction tables) and InventTrans. The InventTransId, TransType and TransRefId have now been removed from the InventTrans and moved to the InventTransOrigin table with names InventTransId, ReferenceCategory and ReferenceId respectively.
Every transaction has now its own InventTransOrigin table. For example, in case of PurchLine the table named is InventTransOriginPurchLine which is actually referring to InventTransOrigin through the InventTransId field. Transaction tables like PurchLine, SalesLine, ProdLine etc. still contains InventTransId field but it not recommended to use/refer them. It is expected to be depreciated in future.