This blog will describe how the release of Microsoft Dynamics AX 2012 R3 affected the InventDim extensibility functionality and provide references that can guide customers and partners on how to choose the best configuration for their setup.
This information can be useful for customers/partners that are migrating existing Microsoft Dynamics AX solutions to Microsoft Dynamics AX R3 (hereafter R3) and want to utilize the new Warehouse management functionality.
Dynamics AX 2012 R2 included new extension functionality that made it possible to use more than 14 inventory dimensions.
Out of the box the limit on inventory dimensions was almost reached due to SQL Servers limitation on how many fields that can be included in an index.
The solution was to include a new field on the InventDim table that contains a hashed value of the content of other dimensions fields. This way no new fields would have to be added to the DimIdx index on InventDim.
The solutions is well described here: Walkthrough: More than 14 InventDim Dimensions Despite Index Limit [AX 2012]
Impact of the Microsoft Dynamics AX 2012 R3
With the R2 release, it was possible to have all existing inventory dimensions enabled and still add one more inventory dimension without having to use the new hash functionality. If more than one extra dimension was needed, the InventDimExtensibilty configuration key should be enabled and the inventDim.hashKey() method should be overwritten.
Since the R3 release has added two new inventory dimensions, Inventory status and License plate, the limit of additional supported dimensions out of the box is reached and therefore the InventDimExtensibilty configuration key is on by default.
Because the LicensePlateId and InventStatusId were the last dimensions added, they are being hashed.
Impact on customers that use less than 14 inventory dimensions
The hashing functionality was provided to support customers that want to use more than 14 inventory dimensions but is enabled by default in R3.
Customers that use less than 14 dimensions but use the new warehouse management solution or have added their own dimensions will pay a performance overhead, due to the hashing, of up to 10% when finding or creating records in the InventDim table.
Therefore, customers that does not need more than 14 inventory dimensions should consider disabling dimensions that are not needed and following the approach described in Walkthrough: More than 14 InventDim Dimensions Despite Index Limit [AX 2012] to disable the InventDimExtensibilty which can reduce the overhead of using the hashing functionality.
Customers that are migrating to R3 and want to use the new warehouse management functionality for their existing items will most likely have to update existing InventDim records to account for missing Inventory status and license plate values.
If these fields are updated it is important to re-member that a rehashing of the InventDim records could be needed. This is done using the InventDimUniquenessEnabling class and is covered in details in the section Step 3 – Re-hash inventory dimensions on this blog posting: http://blogs.technet.com/b/dynamicsaxse/archive/2015/01/22/kb3030212-duplicate-inventdim-records-are-created-which-cause-errors-in-the-whs-if-license-plate-ids-include-trailing-blanks.aspx