Reporting Framework in AX 2012

Dear readers, starting today, I will be writing a series of posts on reporting framework in AX 2012.

We will start with understanding basic concepts in Reporting Framework to examples. These are all the topics that I will be covering one by one:

Many topics to cover. So lets get started.

Reporting Framework Terminologies

As you all know, the reports in AX 2012 have moved to SSRS reporting, so MS has introduced a robust reporting framework wrapping over the basic SSRS reporting functionality. There are many terms used in reporting framework in AX that I will try and explain here:

  • Report Definition Language: RDL is an XML application primarily used with Microsoft SQL Server Reporting Services. RDL is usually written using Visual Studio. AX has Report Definition Language Contract classes that can generate and build the RDL for an AX SSRS report. This contract provides a weakly typed representation of parameters. It contains methods that can be used to get or set values. It also contains a map of parameter names and the SrsReportParameter class. The base class is SrsReportRdlDataContract.


  • Report Data Provider (RDP): A framework that helps in building, processing and rendering data to reports. Most of the reports require RDP classes that help in implementing business logic required to process data and provide data in readable, presentable and required formats design. The base class is SrsReportDataProvider. This class has two main sub classes, SrsReportDataProvderBase and SrsReportDataProviderPreProcess. We will discuss about these classes in future posts.


  • Report Data Contracts: The Report Data Contracts framework is used to provide and manage the parameters to an SSRS report. The report data contract contains all the other relevant instances like Report Data Provider contracts, print contracts, RDL contracts and query contracts that will be used by a report.


  • Printing Contracts: The framework that manages report printing (to different mediums). The base class is SrsPrintDestinationSettings. There are other supporting contracts that are used for printing, we will discuss about them in future posts.


  • Query Contracts: This framework manages the queries used to process report data. This framework is also responsible for providing dynamic filters (similar to our ‘Select” buttons on report dialogs that open the Query specification form to filter data on report queries).


  • Report Controllers: Report controllers control the report execution and dialog forms. Report controllers can be used to modify report dialogs, validate report parameters and other validations necessary before report execution. The base class is SrsReportRunController. Reports utilizing report controllers can only be used for printing data on client side. Reports controlled by controllers cannot be used in Enterprise Portals.


  • Report UI Builders: UI Builders are used to modify the report dialogs at run-time or to add additional parameters and write custom business logic to report dialogs. Ex: You want to perform some task based on data modified for one parameter, that affects other parameters or build a custom lookup etc (something that was provided by RunBaseReport framework class in previous versions. The base class is SrsReportDataContractUIBuilder.

These are some of the basic reporting terminologies that you will be using extensively for reporting in AX.

This concludes the post. Next will be reporting project overview.

13 thoughts on “Reporting Framework in AX 2012

  1. Hi
    Your help me to generate SSRS Report.In that I have one doubt about Dialog Field.

    “How to display Dialog Field with Multi select Option(One field – Enum Field , Another one – EDT Field)”.

    1. Please check the CustAging Report (Contract class and the SSRS report). Specifically method parmBillingClassification. That will help you in enabling multi select.

      1. Hi,
        I can able to create MultiSelect Lookup options for String Field but i can’t for Enum Values.
        Please help me…………………
        I am waiting for your reply

      2. Hi Sumit

        I have desinged a report in Ax2012 using controller and DP class. This report needs to be accessed from Enterprise portal. But i have seen that reports using controller class cannot be accessed from Enterprise portal. Is there any solution for this ? so that the report can be shown in Enterprise portal.

        Thanks in advance

  2. Thank you sumit. But could you please let me know what is the way to render the report in PDF in EP. Is there any blog/link where i can check this ?

  3. Hi sumit; I have a sceneraion for which need your help :
    AR->Reports->Transactions>Customer-> InternalAccountStatement report
    As a matter of confidentiality, we want separate reporting output file for a range of customer selected in report parameters. Like user selects 2002, 2001, 2040 customers in report parameters and now report should generate 3 files each for 2002, 2001 and 2040 in different file.

    I am not sure how to achieve this? what is better technical solution ? Many thanks

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s