Sunday, 21 January 2018

AX2012 : Merge table fields using AX compare tool

AX code compare utility is one of the most useful tool in morphX for transferring code packages from one environment to another but due to its limitation regarding merging of table objects, it sometimes become headache for the developers to merge table fields.

SysCompare class is the core class behind this utility. By adding this single line of code (i.e. highlighted in snapshot below) in selectionChanged method of SysCompare class we can also use this utility for merging of table fields.



Now after adding this line, we can see the arrow against the table fields too which is used for adding code into the server. And it will work like a charm.


It is still not useful for some other table objects like index, groups and relations. However, you can still use it in this regard to some extent by creating objects (i.e. index, groups etc) with the same name and save the table. Then when you try to merge those objects it will transfer the properties to that same name object.


Please note that changing in SysCompare class may cause difficulties in future upgrade of the software as it is a framework class.

Wednesday, 17 January 2018

SSRS : Column header not repeating on each page

In SSRS, we use this property of the tablix to repeat column heading in each page of the report.

But some times heading are not repeatable even after this check box is selected because of row grouping being used in the report. To handle this situation we make some changes in advance properties of the tablix like this:

Select the table for which the heading have to be repeated and check the Advance mode option as seen below:


Select the static from row group which is normally used for heading and set the two properties as highlighted in the image below:


Please note that there are two static tab before row grouping tab in our example due to the extra line below table heading. So we need to change the properties of both of the static tab in a scenario like this.

Now deploy the report and the header will repeat on each page even with the row grouping existed in the report.









SSRS : Report is printing an extra blank page

Some time we have a problem that report is printing an extra blank page in the last even when the data is completely being shown or sometime the blank page is showing between two pages of showing data.
This happens when the width of Body is greater than the width of Report. Normally we use to check for both width but we forgot to incorporate the left and right margin of the report with the width. To resolve this issue we need to make sure the the sizes as per following formula :

Report width >= Body width + Report left margin + Report right margin


To check for report properties just click the blank area outside the body and check for these properties:





And similarly to check for the body properties click on the body and check for its properties:



This will solve the blank page printing issue in report. 

Also note that sometimes blank page just simple occur because of using the Page break after property in the last tablix. So please make sure to set this property as false like the image below:




Dynamics AX SSRS Error: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

Sometime this error occurs while running SSRS reports. It is due to long running queries which take too much time eventually reaches to report time out limit before the generation of report. The best solution to handle this issue is to run the report in pre-process so that SSRS fetch and process all the data even before reporting window is started.

To do this you need to do the following changes in reporting objects:


  • Change the extended class of the RDP class from SrsReportDataProviderBase to SrsReportDataProviderPreProcess.
  • Add the following line in the processReport method of RDP class just after contract class object initialization:
    • .setConnection(this.parmUserConnection());
  • Locate the table being used as data set in the report and change the properties highlighted in the image below:

  • Refresh report Dataset from visual studio only to get the new field createdTransactionId.
  • Generate the incremental CIL after deployment of the report.
  • Restart SSRS for the changes to take effect and now the report can be run with out the timeout error..

  •