This post was written by David Cao
Importing data using the Data Import/Export Framework by default bundles records into equal groups for processing by each thread. This leads to issues like update conflicts for similar grouped records like journals, sales orders etc. The change is required to allow bundling to be based on a specified field (e.g. journal number or sales id) so that all the records pertaining to the group by reference are bundled in a single processing bundle. Moreover, this bundle should be grouped together as a single transaction based on user input. So, if there is error in one journal line, the entire journal should be aborted.
KB 3190293 (AX 2012 R3) https://fix.lcs.dynamics.com/Issue/Resolved?kb=3190293&bugId=3774856&qc=87210ec947017fd8650972952aae6dcc9b34b5dbd7ff05ad1bf8e6ebb7b6c966
KB 3188135 (AX2012 R2) https://fix.lcs.dynamics.com/Issue/Resolved?kb=3188135&bugId=3771655&qc=9a9e31a89dc8c30d87e4d36095a37810ff43742981743e1e6691c1127e565c5c
These hotfixes allow user option to select group by fields for a bundling operation. The user is also allowed to specify if the bundle is to be committed as one transaction or not. Please find the screenshots below:
/Data import export framework/Setup/ (Data import/export Framework parameters)
From X++, the group by fields can be defaulted by extending the method from DMFEntityBase.getDefaultGrouByFields e.g. for journal lines the return would be [JournalId, LineNum]. User can override the methods for new or old entities.