How to fix empty lines on Transfer overview (InventTransferOrderOverview.Report) report when printing to Docentric print destination

Starting with D365FO version 10.0.37 the InventTransferOrderOverview.Report has been changed to be a pre-processed report and thus no longer gives data when printing to Docentric print destinations using Docentric AX SSRS Replicas version 3.4.7.1 or earlier.

This will be fixed in the next Docentric AX SSRS Replicas hotfix, but if the fix is needed earlier, a manual fix is also available below.

How to check if a report is pre-processed

You can check whether a report is pre-processed by checking it’s DP (data provider) class and seeing which class it is inheriting.

Usually pre-processed SSRS report classes inherit one of the SrsReportDataProviderPreProcess, SrsReportDataProviderPreProcessTempDB, SrsReportDataProviderPreProcessInterface etc. classes.

For example, here we can see that in D365FO version 10.0.33 the InventTransferOrderDPBase class is inheriting the standard SRSReportDataProviderBase class, thus it means it’s NOT pre-processed:


On the other hand we can see that in D365FO version 10.0.37 the InventTransferOrderDPBase class is inheriting the SrsReportDataProviderPreProcessTempDB class, which means it IS pre-processed:

Fixing the DocInventTransferOrderOverviewDSP class

To make the DocInventTransferOrderOverviewDSP class work with the now pre-processed InventTransferOrderOverview.Report, we just need to change the way we’re fetching the temporary data provider table.

In Docentric AX SSRS Replicas version 3.4.7.1 and earlier the code for the generateXmlDataSource() method of the DocInventTransferOrderOverviewDSP class for getting the relevant data provider table looks like this and is suitable for standard non-pre-processed reports:

InventTransferOrderOverviewDP   rdp = this.getSrsRdpClassRunningInstance();
InventTransferOrderOverviewTmp  inventTransferOrderOverviewTmp = rdp.getInventTransferOrderOverviewtmp();

The fix is to replace the above code with the following:

InventTransferOrderOverviewTmp inventTransferOrderOverviewTmp = this.getReportDataTableContext(tableStr(InventTransferOrderOverviewTmp));

You can also download the already fixed DocInventTransferOrderOverviewDSP from here.

At upgrade you won’t have to do anything special to keep these changes, as they will be implemented with the next Docentric AX SSRS Replicas hotfix.