Tuesday, 6 January 2015

Tracing with Menu Tool

Tracing and logging are useful ways to monitor the system. They can help diagnose both errors and performance problems.
To set the tracing options, click the Tools menu, click Options, and then click the SQL link. You can configure the following SQL tracing areas:
·         Multiple SQL statements
·         Long queries
·         Warnings
·         Deadlocks
Microsoft Dynamics AX tracing tools monitor or diagnose the state of the system.
Tracing tools are provided for development and testing, and to monitor client/server traffic in production environments.
To enable tracing for development:
·         Click Tools > Options, and then click the SQL tab. A check box on the top of the tab makes it easy to enable or disable a complete set of trace settings. After this box is selected, all other options on the form are made available.


Four different kinds of traces can be set up: Multiple SQL statements, Long queries, Warnings, and Deadlocks.
The Long queries trace is not enabled until a positive value is entered in the Threshold field. The unit of measure is milliseconds.
Traces can be directed to four output media:
·         Message window: Used for quick and instant display. This is typically used for simple tracing during development.
·         Infolog: Enables information to be accumulated and provides an interface to the SQL Diagnostics tools.
·         Table (database): Used to store large amounts of trace information. If you select this option, trace data is written to the SysTraceTableSQL table, and can be viewed in the SQL statement trace log form.
·         Write to file: Used to store large amounts of trace information.


The tracing system in Microsoft Dynamics AX is based on the kernel supplying information to application elements, which in turn handle dispatching and storing the information. Business partners can extend or change the behavior of the trace-engine. To investigate how to extend the default trace mechanism, check the method SysTrace on the Application class, which is called once for each trace event.

Monday, 5 January 2015

Reporting Framework In Ax

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 andSrsReportDataProviderPreProcess. 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 isSrsReportDataContractUIBuilder.
These are some of the basic reporting terminologies that you will be using extensively for reporting in AX.