Hi Friends J Hope All is well…J
These days I’ve been focusing on the BI and reporting aspects that come as part of Microsoft Dynamics AX 2012. So just thought of throwing some light on SSRS reporting in AX 2012.
Let me first start with the introduction on AX SSRS Reports, and later with different kind of designing and developing of the reports.
What is SSRS..???
SQL Server Reporting Services (SSRS): is a server-based report generation software system. It can be used to prepare and deliver a variety of interactive and printed reports. It is administered via a web interface.
Report Server: This is the primary database that stores all the information about reports that was originally provided from the RDL files used to create and publish the reports to the ReportServer database. In addition to report properties (such as data sources) and report parameters, ReportServer also stores folder hierarchy and report execution log information.
ReportServerTempDB: This database houses cached copies of reports that you can use to increase performance for many simultaneous users. By caching reports using a nonvolatile storage mechanism, you make sure they remain available to users even if the report server is restarted.
The SSRS Report Server
• The SSRS report server plays the most important role in the SSRS model. Working in the middle, it’s responsible for every client request to render a report or to perform a management request, such as creating a subscription. You can break down the report server into several subcomponents by their function:
• Programming interface
• Authentication Layer (new to SSRS 2008)
• Report processing
• Data processing
• Report rendering
• Report scheduling and delivery
Reporting Framework Jargons
One of the most noteworthy changes which we have seen in this release of Microsoft Dynamics AX 2012 is that we’ve migrated the reporting framework from the X++ reporting framework to Microsoft SQL Server Reporting Services.
MS has introduced a robust reporting framework wrapping over the basic SSRS reporting functionality. There are many terms used in reporting framework in AX as discussed 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.
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.
Just conversed some of the basic reporting terminologies that you will be using extensively for reporting in AX.
Will discuss more on SSRS report creation through Visual studio and integration and deploying various artifacts.
Happy daxing J and yeah as my friend Santosh says “Stay tuned for more J