Part 4 : AX SSRS Reporting: Fundamentals of AX SSRS Reports development framework

Hi,

In this post we will walk through some basic concepts/terms for Dynamics AX SSRS reporting.

Report types definition

Broadly speaking reporting in AX 2012 can be classified into two types of reporting:

  1. AX SSRS: Typically reports that are transactional in nature and consume data from Dynamics AX (through AX Query, RDP etc.) for data are referred to as AX SSRS reports.
  2. AX OLAP: Typically reports that are analytical in nature and consume data from AX cubes (by MDX queries) are referred to as AX OLAP

Let’s go through them in detail:

In AX 2012 SSRS reporting there is a new framework available that developers have to use to create and run reports. Let’s go through some of the terms that we will be frequently using:

  1. Query: Typically refers to AX query in case of AX transitional reports.
  2. Report Data Provider (RDP): X++ data class used in AX SSRS reporting which can be used to retrieve data, process business logic.

Base class is “SrsReportDataProviderBase”. Any class that is defined as a Data Provider class for a report should inherit from this base class.

  1. Query Contract: This is the query lookup in report dialog that shows the query ranges. This is handled internally by framework.
  2. Report Data Contract (RDP contract): X++ class containing parameters definitions to be used by RDP for parameter value processing to be used in RDP business logic.

Any class defined as a contract should have the “[DataContractAttribute]” on top of class definition and “[DataMemberAttribute (<ParameterName>)]” on top of parameter properties.

  1. RDL Data Contract: X++ class that can be used to access and modify design level parameters used in the report that are not part of RDP contract.

Base class is “SrsReportRdlDataContract”. Any class defined as controller class should inherit from the base class.

  1. Report Controller: A class that can be used to control the report execution and validation. These classes can also be used to control the dialog and validations before & after the dialog is shown.

Base class is “SrsReportRunController”. Any class defined as controller class should inherit from the base class.

  1. UI Builder: X++ class that can be used to design a report parameter dialog for custom look and feel. The same can be sued for any event handling that is required on the report dialog. Also can be used for adding custom lookups to the parameters too.

Base class is “SrsReportDataContractUIBuilder”. Any class defined as controller class should inherit from the base class.

  1. Data Methods: A C# method that can be used in report data sets. This can contain retrieval mechanism logic as well as processing of business logic.
  2. Enum Provider: An extension provided by framework which can retrieve the name/label data for an AX Enum.

 

In AX OLAP reports the only way of retrieving data is using MDX query. The MDX query is the same as used in SQL Server Analysis Services cubes. Detailed language reference for MDX can be found in MSDN.

– Girija

 

 

 

Disclaimer

Advertisements

Published by

Girija Shankar Beuria

A software developer by profession with 10+ years of experience in the following technologies : Data Warehousing, Business Intelligence applications using SQL Server BI Stack, Product Frameworks and Test automation framework, MOSS , C# .Net, .NET, POWERSHELL, AMO, HTML 5, JavaScript, Reporting Service Web service, Dynamics AX, Dynamics AX 2012 BI Cubes, Dynamics AX 2012 SSRS Reports, SQL Azure, Windows Azure Web Services, ASP .NET MVC 4 Web API, WCF, Entity Framework, WPF, Excel Object Model, Windows 8 Apps, Windows Phone Apps

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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