Vous êtes sur la page 1sur 36

Chapter 10: Reporting

CHAPTER 10: REPORTING


Objectives
The objectives are:

Explain the SQL Server Reporting Services report capabilities in


Microsoft Dynamics AX 2012.

Explain the features added for Visual Studio Reporting Tools for
Microsoft Dynamics AX 2012.

Introduction
SQL Server Reporting Services is the primary reporting platform for Microsoft
Dynamics AX 2012. The default, out-of-the-box reports that are provided with
Microsoft Dynamics AX run on the Reporting Services platform. They provide
users with better looking reports, more export formats, and a more capable report
designer. The goals for this transition include:

Utilize the Microsoft technology stack.

Keep business logic in Microsoft Dynamics AX.

Easy transition for X++ and C# developers to the new reporting


architecture.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-1

What's New - Technical in Microsoft Dynamics AX 2012 for Development

Overview
New Reporting Architecture
The SQL Server Reporting Services architecture in Microsoft Dynamics AX
2012 has been modified to follow a Model-View-Controller (MVC) design
pattern variation. This architecture allows many different client types to call
Microsoft Dynamics AX 2012 Reporting Services reports including: Microsoft
Dynamics AX clients, Enterprise Portal, and Batch Job. This also means that
Reporting Services can be replaced by a different application for rendering
reports.

FIGURE 10.1 REPORTING SERVICES ARCHITECTURE

NOTE: Microsoft Dynamics AX 2012 reports require SQL Server 2008.

Installation and Deployment


To install the reporting components in Microsoft Dynamics AX 2009, you had to
install the reporting extensions when running the Setup wizard. For Microsoft
Dynamics AX 2012, the Setup wizard is changed. It no longer includes an option
for installing the reporting extensions.

10-2

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting


When you run the Setup wizard for Microsoft Dynamics AX 2012, you can
install the business intelligence components. While installing the business
intelligence components, the Setup wizard will:

Verify that prerequisite software has been installed on your server.

Prompt you to select a SQL Server Reporting Services instance.

Prompt you to select a SQL Server Analysis Services instance.

For report deployment, the Microsoft Dynamics AX 2009 Reporting Project


Deployment form is replaced with PowerShell scripts.

Upgrade Consideration
Reports and cubes are not upgraded to Microsoft Dynamics AX 2012.
The X++ reporting framework is being deprecated in Microsoft Dynamics AX
2012. Reports based on the X++ reporting framework and existing SQL Server
Reporting Services reports will be copied to the Microsoft Dynamics AX 2012
system, but they will not be upgraded. It is recommended to use a SQL Server
Reporting Services report that is provided with Microsoft Dynamics AX 2012 as
a template and customize it to meet your needs.

Configuration
Previously, you could use the X++ framework to modify the queries used to
retrieve data for reports. In Microsoft Dynamics AX 2012, the Reporting
Services framework is updated and uses the same functionality. This means you
can now filter and sort the data on Reporting Services reports.

Auto-reports
In Microsoft Dynamics AX 2009, you could use the Auto-report wizard to create
customized, ad hoc reports. These reports were based on the X++ reporting
framework. With Microsoft Dynamics AX 2012, you can use the Auto-report
wizard to create customized, ad hoc reports that are based on the SQL Server
Reporting Services framework. To start the Auto-report wizard, click the Print
icon on a form.

Batch Support
SQL Server Reporting Services reports in Microsoft Dynamics AX 2012 can
now be integrated with the Microsoft Dynamics AX batch framework. This
allows you to:

Schedule a long-running report to be printed during off-peak hours.

Schedule a report to be printed on a recurring-basis.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-3

What's New - Technical in Microsoft Dynamics AX 2012 for Development


Report Web Parts
The Web Part used to display reports in Role Centers and other Enterprise Portal
pages is updated. This Web Part is renamed from Microsoft Dynamics Report
Server Report to Microsoft Dynamics AX Report. The Web Part has also been
updated to improve usability. It is now easier to:

Add the Web Part to a page.

Select a report to display in the Web Part.

Select parameters to filter the data displayed on the report.

Improved Support for Multiple Languages


To support multiple languages in Microsoft Dynamics AX 2009, you have to
deploy a report in each specific language. In Microsoft Dynamics AX 2012, you
can deploy the report, and that version will automatically reflect all supported
languages.

Development Information
The following features are added to Visual Studio Reporting Tools for Microsoft
Dynamics AX 2012.

Data Binding
Visual Studio Reporting Tools for Microsoft Dynamics AX is now improved to
make binding of data easier and you can build more involved reports.
The IEnumerable<DataRow> interface is now supported as a data method return
type. With the addition of the AxQuery.ExecuteQueryStream method you can
run a query and return a data table with the given results.
The report preview will now limit the return of data to 1000 records by default.
This makes the processing of large amounts of data for the preview more
efficient. To view all the data in the preview of your report, in the Preview
window, click the Load data sets fully link.
The SQL Reporting Services solution for Microsoft Dynamics AX 2012 includes
a new data source type called Report Data Provider (RDP) which you can use to
build reports that have data from an X++ class as the source. You can build
custom business logic to be rendered in reports using predefined X++ classes.
You can also bind parameter elements to Report Definition Language (RDL)
expressions using the expression editor.

10-4

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting


Improvements to Parameters
Additional parameter improvements include the following:

Reference a report parameter from a dataset. You can bind multiple


dataset parameters to a single report parameter.

Use the Expression Editor to specify expressions in a report


parameter.

Use label expression evaluation during the preview of your Visual


Studio reports.

Exception handling of parameters is supported in report preview.

Additional logic is added to parameters to detect parameter


dependencies in complex parameter expressions.

Group and order report parameters to activate a multilevel parameter


hierarchy.

Support for multi-value parameter selection for strings and


enumerations.

Improvements to Auto-designed Reports


The blue style for drill-through links are predefined in the default design style
templates for tables, lists, and matrix data regions in auto-designed reports.
Changes to labels will be reflected on the reports that use them without having to
change the reports. The changes are reflected as soon as the reports are
redeployed.
You can now set the chart axis value. The following two options are supported:

In a column chart report, the chart's x and y-axis can be set to 0,


regardless of what the data contains. For example, even if the data is
between 30 and 100, the chart y-axis could still be set to 0.

Ability to have the starting and ending values for a column chart
report automatically match the data.

The values that you enter across Visual Studio sessions will be stored and the
auto-complete functionality is activated. Visual Studio Reporting Tools for
Microsoft Dynamics AX will recall the different values entered in a given text
box. A property named Render Grand Total is now added to auto design tables. If
the property is set to True, then the report will calculate and display grand totals
based on the selected aggregation type. You can also customize or turn off the
report summary caption in auto design reports without a single line of code. The
whole solution is manageable by using report design properties.
An end-user can use interactive sorting at run time to sort columns on the
automatically designed report. This differs from static sorting where you build a
specific sort order into the report when you are building it. In interactive sorting,
the end-user can sort by column A and then change the sort to column B.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-5

What's New - Technical in Microsoft Dynamics AX 2012 for Development


You can now use Microsoft Dynamics AX field groups in automatically designed
reports. Lists and tables will support bound and also unbound field groups, in list
and table data regions. Field groups can also be added to reports automatically
designed grouping the header and footer. To reflect a change in field groups, the
report must be redeployed. You can use field groups to customize the columns to
show in your report. For example, you can add the Address field group to a
report instead of adding the individual Address, City, State, and ZIP/postal
code fields. You can add or remove fields from the field group in the table and
have the changes show in all the forms and reports that use the field group.

Print Management
Microsoft Dynamics is integrated with Windows Print Management to print
Visual Studio reports, and now you can do the following:

Change the print destination programmatically

Pack and unpack print destinations

Use email and file functionality

Pass parameters

The run user interface and parameters for MorphX reporting are added for Visual
Studio Reporting Tools for Microsoft Dynamics AX.
Print Management API Support
The Application Programming Interfaces (APIs) required by Microsoft Dynamics
AX Print Management are now supported. These APIs, together with added
forms, help end-users to run reports in various formats, and also help developers
manage and run reports.

Cross-reference Tool
You can use the Microsoft Dynamics AX cross-reference system to view the
relationships between objects. The Cross-reference tool is now updated to work
for reports. Like any other object in the AOT, you can right-click Report > Addins > Cross-reference tool > Using, and the data source will be displayed. You
can also select a data source, such as a query in the AOT, and select Used By,
and it will list the report or the reports that use it.

Security
Reports are fully integrated into the Microsoft Dynamics AX security system.
When you secure data that uses tasks and roles, reports automatically respect that
security.

10-6

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting


Data Access
Reports now use services instead of the .NET Business Connector to retrieve
Microsoft Dynamics AX online transaction processing (OLTP) data. The report
data provider makes it easy to reuse existing X++ code to access data for
Microsoft Dynamics AX reports. Performance and scalability have also been
improved.

Other Improvements
Additional improvements include the following:

Microsoft Dynamics AX Visual Studio reports can be run and


managed programmatically from X++.

SQL Server Reporting Services based reports in Microsoft Dynamics


AX 2012 make use of metadata defined on Extended Data Types
(EDTs). Report columns bound to an EDT will reflect formatting and
layout information defined in Microsoft Dynamics AX.

Microsoft Dynamics AX financial dimensions can be included in


Microsoft SQL Server Reporting Services reports with the use of the
enhanced query picker.

Microsoft Dynamics AX labels can be used on reports.

A report can be created that will automatically change its formatting


at run time from left to right, to right to left, based on the language
and new properties that are set for the report.

AXRDCE is a Microsoft Dynamics AX specific reporting extension.


It relies on the SQL Server Reporting Services RDCE reporting
extension to offer report runtime transformation. AXRDCE provides
many features, such as EDT formatting, alignment, display length,
security, and label translation.

End-users can dynamically filter data within their reports on any


field that is part of their data source at run time without having to
create a static parameter at design time.

Scenario: Create a Simple Report


Isaac, the Developer, wants to create a Reporting Services report to expose
vendor transaction data.

Procedure: Create a Simple Report


To define a query that is used in a query bound report, follow these steps:
1. Open the Microsoft Dynamics AX developer workspace.
2. In the AOT, right-click the Queries node, and then click New
Query.
3. Select the node for the query and then type a name.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-7

What's New - Technical in Microsoft Dynamics AX 2012 for Development


4. Expand the new query node.
5. Right-click the Data Sources node and then select New Data
Source.
6. Enter VendTrans into the Table property field.
7. Save the query.
8. Expand the dataset node.
9. Right-click the fields node of the query, click Properties.
10. Change the Dynamic property and set the Dynamic property to No
so fields can be removed from the view.
11. Remove the fields that you do not want to include from the query
data source.
12. Save the query.

Procedure: Create a New Report in Visual Studio


To create a new report in Visual Studio, follow these steps:
1. On the File menu in Visual Studio, point to New, and then click
Project. The New Project dialog box is displayed.
2. Click the Microsoft Dynamics AX node, and in the Templates
pane, click Report Model.
3. In the Name box type a name, and in the Location box, type a file
path and then click OK.
4. In the Solution Explorer, right-click the report node and select Add >
Report.
5. An empty report model named Report1 is created.
6. In the Model Editor, right-click the Report1 node, and then click
Rename and enter a name.
7. Expand the report node if it is not already expanded.
8. Right-click the Datasets node and then click Add Dataset.
9. In the Properties window, specify the following values.
10. Set the Data Source property to Dynamics AX.
11. Set the Data Source Type property to Query.
12. Set the Name property.
13. Set the Query property.
14. In the Model Editor, select the data source node and drag it onto the
Designs node. An auto design named AutoDesign1 is created.
15. Right-click the AutoDesign1 node, and then click Preview and
select the Report tab.
16. Notice that the report appears unformatted, as you have not yet
applied any layout or style templates to it.
17. Close the Preview window.

10-8

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting


Procedure: Apply Layout Templates
To apply a layout template, follow these steps:
1. In the Model Editor, select the AutoDesign1 node.
2. In the Properties window, set the Layout Template property to
ReportLayoutStyleTemplate. Enter a name into the Title property.
3. In the Model Editor, expand the AutoDesign1 node, and then select
the node for the table data region.
4. In the Properties window, set the Style Template property to
TableStyleTemplate.
5. Optional: In the Model Editor, right-click the AutoDesign1 node,
and then click Preview and select the Report tab to view the new
style settings for the report.
6. Optional: Close the Preview window.

Procedure: Add Column Sorting


To add column sorting to an AutoDesign report, follow these steps:
1. In the Model Editor, expand the AutoDesign1 node and table data
region, and then select the Sorting node under the table data region.
2. Right-click the Sorting node and then click Add Sort.
3. Type a name for the Sorting node.
4. In the Properties window, set the Sort By property.
5. Optional: In the Model Editor, right-click the AutoDesign1 node,
and then click Preview to view the new style settings for the report.
6. Optional: Close the Preview window.
7. Save the report.
8. In the Model Editor, expand the AutoDesign1 node, and then select
the sort field under the Data region.
9. In the Properties window, set the Interactive sorting property to
True.
10. Repeat this step for the other sorting columns.
11. Optional: In the Model Editor, right-click the AutoDesign1 node,
and then click Preview to view the new style settings for the report.
12. Optional: Close the Preview window.
13. Save the report.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-9

What's New - Technical in Microsoft Dynamics AX 2012 for Development


Procedure: Grouping Report Data
To group report data, follow these steps:
1. In the Model Editor, expand the AutoDesign1 node.
2. Right-click the Groupings node under the table data region and then
click Add Grouping.
3. Type "Group1" as the Name.
4. In the Properties window, set the Label property.
5. Right-click the Group on node, and then click Add Group on.
6. Type a name for the Group on node.
7. In the Properties window, set the Expression property.
8. Select the Group1 node.
9. In the Properties window, expand the Instance Aggregates, and set
Render Location to GroupFooter.
10. Select the field to aggregate under the Data node.
11. In the Properties window, expand the Aggregation item, and set
Aggregate Function to Sum.
12. Optional: In the Model Editor, select the AutoDesign1 node, and
then click Preview to view the new style settings for the report.
13. Close the Preview window.

Procedure: Filtering Report Data


To filter report data, follow these steps:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

10-10

In the AOT, right-click the Queries node, and then locate the query.
Right-click the Ranges node and then click New Range.
A default range is created for you by Microsoft Dynamics AX.
Save the query.
In the Model Editor, select the table node.
Right-click the node and select Refresh to reflect changes that are
made to the Microsoft Dynamics AX Query.
Expand the Parameters node to display the list of report parameters.
Right-click the node and select Add > Parameter.
Type a name for the Parameter.
In the Properties window, set the Prompt String property to the
filter field.
In the Model Editor, expand the AutoDesign1 node.
Right-click the Filters node and select Add Filter.
Type a name for the Filter.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting


14. In the Properties window:
a. Set the Expression property.
b. Set the Operator property to Like.
c. Set the Value property.
15. Optional: In the Model Editor, select the AutoDesign1 node, and
then click Preview to view the new style settings for the report.
16. Close the Preview window.
17. Save the report.

Procedure: Add a Dynamic Parameter


To add a dynamics parameter, follow these steps:
1.
2.
3.
4.

Create a new Query.


Locate the table and drag it onto the Data Sources node.
Include the field for your parameter in your dataset view.
In the Model Editor, right-click the Datasets node, and then click
Add Dataset.
5. Type a name for the Datasets node.
6. Select the node for the dataset.
7. In the Properties window, specify the following values:
a. Set the Data Source property to Dynamics AX.
b. Set the Data Source Type property to Query.
c. Set the Default Layout property to Table.
d. Set the Name property.
e. Set the Query property.
8.
9.
10.
11.

In the Model Editor, select the AutoDesign1 node.


Expand the Parameters node to display the list of report parameters.
In the Properties window, click the button in the Values property.
Select the From Dataset button and set the following:
a. Set the Dataset property.
b. Set the Value Field property.
c. Set the Label Field property.

12. Optional: In the Model Editor, right-click the AutoDesign1 node,


and then click Preview to view the new style settings for the report.
13. Optional: Close the Preview window.
14. Save the report.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-11

What's New - Technical in Microsoft Dynamics AX 2012 for Development


Procedure: Save and Deploy the Report
To save and deploy the report, follow these steps:
1. Right-click the project in Solution Explorer, and select Add to AOT.
2. Right-click the project in Solution Explorer, and select Deploy.
3. Move to the Report Manager to view the report.

Procedure: View the Report in Microsoft Dynamics AX


To view the report in AX, follow these steps:
1. In the AOT, expand the Menu Items node and select the Output
node.
2. Right-click the Output node and then click New Menu Item.
3. Type a name for the New Menu Item.
4. Right-click the menu item and select Properties to set the following:
a. Set the ObjectType property to SSRSReport.
b. Set the Object property.
c. Set the Label Field property to AutoDesign1.
5. Save the Menu item.
6. Right-click the menu item and select Open.
7. Select a filter criteria and click OK.

Scenario: Create an Advanced Report


Isaac, the Developer, wants to create a Reporting Services report that shows him
AOT object information. Isaac must be able to search for properties and the
report will return the AOT objects matching the search criteria.

Procedure: Create an Advanced Report


To create an advanced report, follow these steps:
1.
2.
3.
4.
5.
6.
7.

Open Microsoft Dynamics AX.


In the AOT, right-click the Tables node, and then click New Table.
Right-click the table node, click Properties.
Locate the Name property and then enter a name.
Locate the TableType property and then type InMemory.
Expand the Fields node.
Right-click the Fields node of the table, and then click New >
String.
8. Create a new field and name it Node and set the ExtendedDataType
property to Description.
9. Add a label for the field node.

10-12

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting


10. Repeat these steps for two additional fields.
11. Save the table.
12. In the AOT, right-click the Classes node, and then click New Class
to create a new Contract Class.
13. Right-click the class node, click Properties.
14. Locate the Name property and then enter a name.
15. In the AOT, right-click the Classes node, and then click New Class
to create a new Data Provider class.
16. Right-click the table node, click Properties.
17. Locate the Name property and then enter a name.
To create a new report in Visual Studio, follow these steps:
1. On the File menu in Visual Studio, point to New, and then click
Project. The New Project dialog box is displayed.
2. Click the Microsoft Dynamics AX node, and in the Templates
pane, click Report Model.
3. In the Name box type a name, and in the Location box, type a file
path and then click OK.
4. In the Solution Explorer, click the Add button and select Report.
5. An empty report model named Report1 is created.
6. Right-click the newly created report and rename the report model.
7. Expand the model node if it is not already expanded.
8. Right-click the Datasets node, and then click Add Dataset.
9. In the Properties window, specify the following values:
a. Set the Data Source property to Dynamics AX.
b. Set the Data Source Type property to Report Data. Provider.
c. Set the Default Layout property to Table.
d. Set the Name and Query property.
10. In the Model Editor, select the Datasource node and drag it onto the
Designs node. An auto design named AutoDesign1 is created.
11. Right-click the AutoDesign1 node, and then click Preview.
12. Set the LayoutTemplate and TableStyleTemplate properties to
view the report visual settings.
13. Group the report dataset.
14. Right-click AutoDesign1 and then click Create Precision Design.
15. Right-click the PrecisionDesign node, then click Rename, and set
the name to Report.
To save and deploy the report, follow these steps:
1. Right-click the project in Solution Explorer, and select Rebuild.
2. Verify that you have no build errors.
3. Right-click the project in Solution Explorer, and select Add to AOT.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-13

What's New - Technical in Microsoft Dynamics AX 2012 for Development


4.
5.
6.
7.

Verify that you can add to the AOT.


Right-click the project in Solution Explorer, and select Deploy.
Verify that you can add to the AOT.
Move to the Report Manager to view the report.

To view the report in AX, follow these steps:


1. In the AOT, expand the Menu Items node and select the Output
node.
2. Right-click the Output node and then click New Menu Item.
3. Type a name for the New Menu Item.
4. Right-click the menu item and select Properties set the following:
a. Set the ObjectType property to SSRSReport.
b. Set the Object property.
c. Set the Label Field property to AutoDesign1.
5. Save the AX Menu item.
6. Right-click the menu item and select Open.

10-14

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting

Lab 10.1 - Create a Simple Report


This lab will focus on how to use the basics for developing simple reports.
Topics that you will review include using free text and query bound report
parameters, sorting and filtering report data, and applying report templates to
produce uniform views of Microsoft Dynamics AX data.
Scenario
Isaac, the Developer, wants to create a Reporting Services report to expose
customer transaction data.

Challenge Yourself: Create an AX Query


Use the information that is provided to create a query bound report that exposes
customer transaction data.

Challenge Yourself: Create a New Report in Visual Studio


Use the information that is provided to create a new report in Visual Studio.

Challenge Yourself: Add Sorting and Grouping


Use the information that is provided to add sorting and grouping to the report.

Challenge Yourself: Filtering Report Data


Use the information that is provided to add filter criteria to the report.

Challenge Yourself: Add a Dynamic Parameter


Use the information that is provided to add a dynamic parameter.

Challenge Yourself: Save and Deploy


Use the information that is provided to save and deploy the report.

Need a Little Help?


1.
2.
3.
4.
5.
6.
7.
8.

Create a Microsoft Dynamics AX Query.


Add field data to the Query.
Create a new report model in Visual Studio.
Create a report dataset.
Create a report design.
Apply Style Templates.
Add sorting and grouping.
Filter report data.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-15

What's New - Technical in Microsoft Dynamics AX 2012 for Development


9. Save and deploy the report.
10. View the report in Microsoft Dynamics AX 2012.

Step by Step: Create an AX Query


1. Open Microsoft Dynamics AX.
2. In the AOT, right-click the Queries node, and then click New
Query.
3. Right-click the node for the query, click Rename, and then type
CustTrans_W1.
4. Expand the CustTrans_W1 node.
5. Right-click the Data Sources node and then select New Data
Source.
6. Enter CustTrans into the Table property field.
7. Save the query.
8. Expand the CustTrans_1 Dataset node.
9. Right-click the Fields node of the query, click Properties.
10. Change the Dynamic property and set the Dynamic property to No
so fields can be removed from the view.
11. Only include the following fields in your dataset view AccountNum,
AmountCur, TransDate, TransType, and Txt.
12. Save the query.

Step by Step: Create a New Report in Visual Studio


1. Open Microsoft Visual Studio.
2. On the File menu, point to New, and then click Project. The New
Project dialog box appears.
3. In the Project Types pane, click the Microsoft Dynamics AX node,
and in the Templates pane, click Report Model.
4. In the Name box type SSRSDemo, and in the Location box, type a
file path.
5. Click OK.
6. In the Solution Explorer, click the Add button and select Report.
7. An empty report model named Report1 is created.
8. In the Model Editor, right-click the Report1 node, and then click
Rename.
9. Type CustTransList_WS1 as the name.
10. Expand the CustTransList_WS1 node if it is not already expanded.
11. Right-click the Datasets node and then click Add Dataset.
12. Select the node for the dataset.

10-16

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting


13. In the Properties window, specify the following values:
a. Set the Data Source property to Dynamics AX.
b. Set the Data Source Type property to Query.
c. Set the Name property to CustTransListDS.
d. Set the Query property to Select * from CustTrans_W1.
14. In the Model Editor, select the CustTransListDS node and drag it
onto the Designs node. An auto design named AutoDesign1 is
created for the report.
15. Optional: Right-click the AutoDesign1 node, and then click Preview
and select the Report tab.
16. Optional: Notice that the report appears unformatted, as you have not
yet applied any layout or style templates to it.
17. Optional: Close the Preview window.

Step by Step: Apply Layout Templates


1. In the Model Editor, select the AutoDesign1 node.
2. In the Properties window, set the Layout Template property to
ReportLayoutStyleTemplate. Also, type Customer Transaction List
for the Title property.
3. In the Model Editor, expand the AutoDesign1 node, and then select
the node for the CustTransListTable data region.
4. In the Properties window, set the Style Template property to
TableStyleTemplate.
5. Optional: In the Model Editor, right-click the AutoDesign1 node,
and then click Preview and select the Report tab to view the new
style settings for the report.
6. Optional: Close the Preview window.

Step by Step: Add Column Sorting


1. In the Model Editor, expand the AutoDesign1 node, and then select
the Sorting node under the CustTransListTable data region.
2. Right-click the Sorting node and then click Add Sort.
3. Type AccountNum as the name.
4. In the Properties window, set the Sort By property to
=Fields!AccountNum.Value.
5. In the Model Editor, right-click the AutoDesign1 node, and then
click Preview to view the new style settings for the report.
6. Close the Preview window.
7. Save the report.
8. In Model Editor, expand the AutoDesign1 node, and then select the
AccountNum field under the Data region.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-17

What's New - Technical in Microsoft Dynamics AX 2012 for Development


9. In the Properties window, set the Interactive sorting property to
True.
10. Repeat this step for the AmountCur, TransDate, and TransType1
columns.
11. Optional: In the Model Editor, right-click the AutoDesign1 node,
and then click Preview to view the new style settings for the report.
12. Optional: Close the Preview window.
13. Save the report.

Step by Step: Grouping Report Data


1. In the Model Editor, expand the AutoDesign1 node.
2. Right-click the Groupings node under the CustTransListTable data
region, and then click Add Grouping.
3. Type Group1 as the name.
4. In the Properties window, set the Label property to
=Fields!AccountNum.Value.
5. Right-click the Group on node, and then click Add Group on
6. Type AccountNum as the name.
7. In the Properties window, set the Expression property to
=Fields!AccountNum.Value.
8. Right-click the Group1 node and then click Properties.
9. In the Properties window, expand the Instance Aggregates, and set
Render Location to GroupFooter.
10. Select the AmountCur field under the Data node.
11. In the Properties window, expand the Aggregation item, and set
Aggregate Function to Sum.
12. Optional: In the Model Editor, right-click the AutoDesign1 node,
and then click Preview to view the new style settings for the report.
13. Optional: Close the Preview window.

Step by Step: Filtering Report Data


1. Open Microsoft Dynamics AX.
2. In the AOT, right-click the Queries node, and then locate the
CustTrans_WS1 query.
3. Expand the CustTrans_W1 nodes.
4. Right-click the Ranges node and then click New Range.
5. A default range using the AccountNum field is created for you by
Microsoft Dynamics AX.
6. Save the query.
7. In the Model Editor, select the CustTransListDS node.
8. Right-click the node and select Refresh to reflect changes made to
the Microsoft Dynamics AX Query.

10-18

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting


9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.

Expand the Parameters node to display the list of report parameters.


Right-click the node and select Add > Parameter.
Type AccountParam as the name.
In the Properties window, set the Prompt String property to
Account.
Optional: In the Model Editor, right-click the AutoDesign1 node,
and then click Preview to view the new style settings for the report.
Optional: Close the Preview window.
Save the report.
In Model Editor, expand the AutoDesign1 node.
Right-click the Filters node and select Add Filter.
Type AccountFilter as the name.
In the Properties window.
a. Set the Expression property to FieldsAccountNum.Value.
b. Set the Operator property to Like.
c. Set the Value property to =Parameters!AccountParam.Value.

20. Optional: In the Model Editor, right-click the AutoDesign1 node,


and then click. Preview to view the new style settings for the report.
21. Optional: Close the Preview window.
22. Save the report.

Step by Step: Add a Dynamic Parameter


1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

Open Microsoft Dynamics AX.


Create a new Query.
Rename the query to CustTable_W1.
Expand the CustTable_W1 node.
Locate the CustTable table and drag it onto the Data Sources node
for the CustTable_W1 query.
Include the AccountNum field in your dataset view
Save the query.
In the Model Editor, right-click the Datasets node, and then click
Add Dataset.
Type CustomersDS as the name.
Select the node for the dataset.
In the Properties window, specify the following values:
a. Set the Data Source property to Dynamics AX.
b. Set the Data Source Type property to Query.
c. Set the Default Layout property to Table.
d. Set the Name property to CustomersDS.
e. Set the Query property to Select * from CustTable_W1.

12. In the Model Editor, select the AutoDesign1 node.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-19

What's New - Technical in Microsoft Dynamics AX 2012 for Development


13.
14.
15.
16.

Expand the Parameters node to display the list of report parameters.


Select the AccountParam node.
In the Properties window, click the button in the Values property.
Select From Dataset radio button and set the following:
a. Set the Dataset property to CustomersDS.
b. Set the Value Field property to AccountNum.
c. Set the Label Field property to AccountNum.

17. Optional: In the Model Editor, right-click the AutoDesign1 node,


and then click Preview to view the new style settings for the report.
18. Optional: Close the Preview window.
19. Save the report.

Step by Step: Save and Deploy the Report


1. Right-click the SSRSDemo project in Solution Explorer, and select
Rebuild.
2. Verify that you have no build errors.
3. Right-click the SSRSDemo project in Solution Explorer, and select
Add SSRSDemo to AOT.
4. Verify that you can add to the AOT.
5. Right-click the SSRSDemo project in Solution Explorer, and select
Deploy.
6. Verify that you can add to the AOT.
7. Move to the Report Manager to view the report.

Step by Step: View the Report in Microsoft Dynamics AX


1.
2.
3.
4.
5.

Open Microsoft Dynamics AX.


In the AOT, expand Menu Items node and select the Output node.
Right-click the Output node and then click New Menu Item.
Type CustTransList_WS1 as the name.
Right-click the CustTransList_WS1 and select Properties to set
the following:
a. Set the ObjectType property to SSRSReport.
b. Set the Object property to CustTransList_WS1.
c. Set the Label Field property to AutoDesign1.

6. Save the Microsoft Dynamics AX Menu Item.


7. Right-click the CustTransList_WS1 menu item and select Open.

10-20

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting

Lab 10.2 - Create an Advanced Report


In this lab you will review how to take advantage of X++ code to construct the
report dataset.
Scenario
Isaac, the Developer, wants to create a Reporting Services report that shows him
AOT object information. Isaac must be able to search for properties and the
report will return the AOT objects matching the search criteria.

Challenge Yourself: Define the Report Dataset, Contract


and Data Provider
Use the information that is provided to create a Reporting Services report that
shows the AOT object information. The user must be able to search for properties
and the report will return the AOT objects matching the search criteria.

Challenge Yourself: Create a New Report in Visual Studio


Use the information that is provided to create a new report in Visual Studio.

Challenge Yourself: Deploy and View the Report


Use the information that is provided to save and deploy the report.

Need a Little Help?


1. Create a Temporary Table to store the report dataset.
2. Add table field data needed to generate the report.
3. Create a class in Microsoft Dynamics AX to use to manage the
report parameters.
4. Define access methods for the contract data elements.
5. Create a new class to manage custom business logic.
6. Add the two entry points:
a. ProcessReport this method is the entry point for processing
the report dataset.
b. getAOTObjectsTmp the method is used by the framework to
retrieve the report dataset from the temporary table cache.
7. Add all the custom business logic used to generate the report data
set.
8. Create a new report in Visual Studio.
9. Create a new Dataset for the report tied to the new RDP class.
10. Create a basic view of the report data grouped on the AOT Object
Property information.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-21

What's New - Technical in Microsoft Dynamics AX 2012 for Development


11. Convert the basic design into a Precision Design to achieve the
desired report layout.
12. Save and deploy the report.
13. View the report in Microsoft Dynamics AX 2012.

Step by Step: Define the Report Dataset


1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

Open Microsoft Dynamics AX.


In the AOT, right-click the Tables node, and then click New Table.
Right-click the table node, click Properties.
Locate the Name property and then type AOTObjectsTmp.
Locate the TableType property and then type InMemory.
Save the table.
Locate the AOTObjectsTmp table.
Expand the Fields node.
Right-click the Fields node of the table, and then click New >
String.
Create a new field that is named Node and set the
ExtendedDataType property to Description.
Add a label for the field node.
Repeat these steps for two additional fields: ParentNode, and
Property.
Save the table.

Create a Contract Class


1. Open Microsoft Dynamics AX.
2. In the AOT, right-click the Classes node, and then click New Class.
3. Right-click the class node, click Properties.

10-22

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting


4. Locate the Name property and then type AOTObjectsContract.

/// <summary>
/// Data Contract class for the AOT Objects Reporting
Services report
/// </summary>
/// <remarks>
/// This is the Data Contract class for the AOT Objects
Reporting Services report
/// </remarks>
[DataContractAttribute]
public class AOTObjectsContract
{
Name parentNode;
Name aotProperty;
Name propertyVal;
boolean incNoValue;
}

Define Access Methods - AOTProperty Method


1. Locate the AOTObjectsContract node in the AOT.
2. Open the class and add a method to manage the input parameters.
/// <summary>
/// Gets or sets the value of the datacontract parameter
AOTProperty.
/// </summary>
/// <param name="_aotProperty">
/// The new value of the datacontract parameter
AOTProperty; required.
/// </param>
/// <returns>
/// The current value of datacontract parameter AOTProperty
/// </returns>
[
DataMemberAttribute('AOTProperty'),
SysOperationLabelAttribute('AOT Property')
]
public Name parmAOTProperty(Name _aotProperty = aotProperty
)
{
aotProperty = _aotProperty;
return aotProperty;
}

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-23

What's New - Technical in Microsoft Dynamics AX 2012 for Development


Define Access Methods - IncludeNoValue Method
1. Locate the AOTObjectsContract node in the AOT.
2. Open the class and add a method to manage the input parameters.
/// <summary>
/// Gets or sets the value of the datacontract parameter
IncludeNoValue.
/// </summary>
/// <param name="_incNoValue">
/// The new value of the datacontract parameter
IncludeNoValue; required.
/// </param>
/// <returns>
/// The current value of datacontract parameter
IncludeNoValue
/// </returns>
[
DataMemberAttribute('IncludeNoValue'),
SysOperationLabelAttribute('Include empty')
]
public boolean parmIncNoValue(boolean _incNoValue =
incNoValue )
{
incNoValue = _incNoValue;
return incNoValue;
}

Define Access Methods - ParentNode Method


1. Locate the AOTObjectsContract node in the AOT.
2. Open the class and add a method to manage the input parameters.
/// <summary>
/// Gets or sets the value of the datacontract parameter
ParentNode.
/// </summary>
/// <param name="_parentNode">
/// The new value of the datacontract parameter ParentNode;
required.
/// </param>
/// <returns>
/// The current value of datacontract parameter ParentNode
/// </returns>
[
DataMemberAttribute('ParentNode'),
SysOperationLabelAttribute('Node')
]
public Name parmParentNode(Name _parentNode = parentNode )
{
parentNode = _parentNode;
return parentNode;
}

10-24

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting


Define Access Methods - Propertyalue Method
1. Locate the AOTObjectsContract node in the AOT.
2. Open the class and add a method to manage the input parameters.
/// <summary>
/// Gets or sets the value of the datacontract parameter
PropertyValue.
/// </summary>
/// <param name="_propertyVal">
/// The new value of the datacontract parameter
PropertyValue; required.
/// </param>
/// <returns>
/// The current value of datacontract parameter
PropertyValue
/// </returns>
[ DataMemberAttribute('PropertyValue'),
SysOperationLabelAttribute('Property Value')]
public Name parmPropertyValue(Name _propertyVal =
propertyVal )
{
propertyVal = _propertyVal;
return propertyVal;
}

Step by Step: Create a Report Data Provider Class


1. Open Microsoft Dynamics AX.
2. In the AOT, right-click the Classes node, and then click New Class.
3. Right-click the class node, click Properties.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-25

What's New - Technical in Microsoft Dynamics AX 2012 for Development


4. Locate the Name property and then type AOTObjectsDP.
/// <summary>
///
The Report data provider class that supports the AOT
Objects report.
/// </summary>
/// <remarks>
///
This class provides the methods that are used by the
AOT Objects report
/// </remarks>
[
SRSReportParameterAttribute(classstr(AOTObjectsContract))
]
public class AOTObjectsDP extends SRSReportDataProviderBase
{
// temporary data store
AOTObjectsTmp
aotObjectsTmp;
// contract information
Name
aotProperty;
Name
propertyVal;
boolean
incNoValue;
}

Define Access Methods getAOTObjectsTmp Method


1. Locate the AOTObjectsDP node in the AOT.
2. Open the class and add a method to retrieve the report dataset.
/// <summary>
///
This method is used to query the
<c>AOTObjectsTmp</c> table and returns the data table.
/// </summary>
/// <returns>
///
The required report data table.
/// </returns>
[SRSReportDataSetAttribute('AOTObjectsTmp')]
public AOTObjectsTmp getAOTObjectsTmp()
{
select * from aotObjectsTmp;
return aotObjectsTmp;
}

10-26

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting


Define Access Methods insertAOTObjectsTmp Method
1. Locate the AOTObjectsDP node in the AOT.
2. Open the class and add a method to populate the report dataset.
/// <summary>
///
This method inserts data into the temporary table.
/// </summary>
public void insertAOTObjectsTmp(
Name
_node,
Name
_parentNode,
Name
_property )
{
// write the relevant field data to the temporary data
store
aotObjectsTmp.Node
= _node;
aotObjectsTmp.ParentNode
= _parentNode;
aotObjectsTmp.Property
= _property;
aotObjectsTmp.insert();
}

Define Process Methods processAOTNode Method


1. Locate the AOTObjectsDP node in the AOT.
2. Open the class and add a method to process a single node.
private void processAOTNode(TreeNode _node, TreeNode
_parentNode, int _depth)
{
TreeNode childNode;
// validate incoming parameters
if (!_node)
return;
// evaluate the node properties
this.processNodeProperty(_node, _parentNode);
// iterate through the report regions
childNode = _node.AOTfirstChild();
if (_depth > 0)
{
while (childNode)
{
// use recursion to process the child nodes
this.processAOTNode(childNode, _node, _depth 1);
// advance to the next sibling node
childNode = childNode.AOTnextSibling();
}
}
}

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-27

What's New - Technical in Microsoft Dynamics AX 2012 for Development


Define Process Methods processNodeProperty Method
1. Locate the AOTObjectsDP node in the AOT.
2. Open the class and add a method to process node properties.
private void processNodeProperty(TreeNode _node, TreeNode
_parentNode)
{
str nodePropertyVal;
// check to see if the node has AOT properties
available
if (strlen(_node.AOTgetProperties()) > 0)
{
// check to see if a property filter was provided
if (strlen(aotProperty) > 0)
{
// retrieve the Configuration Key associated
with this object
try
{
nodePropertyVal =
_node.AOTgetProperty(aotProperty);
}
catch
{
// assume no property exists
nodePropertyVal ="";
}
// ignore objects without the property if
instructed
if (!incNoValue && strlen(nodePropertyVal) ==
0)
return;
// check to see if a security filter was
provided
if ((strlen(propertyVal) > 0) &&
(strlen(nodePropertyVal) > 0))
{
// ignore objects that do not apply
if (strCmp(nodePropertyVal, propertyVal) !=
0)
return;
}
}
// insert this node into the report data set
this.insertAOTObjectsTmp(_node.AOTname(),
_parentNode ? _parentNode.AOTname() : "", nodePropertyVal);
}
}

10-28

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting


Define Process Methods processReport Method
1. Locate the AOTObjectsDP node in the AOT.
2. Open the class and add a method to process the report dataset.
/// <summary>
///
Processes the report business logic.
/// </summary>
/// <remarks>
///
This method is used to process the report business
logic which is used by AOT Object report.
/// </remarks>
[SysEntryPointAttribute(false)]
public void processReport()
{
#AOT
Name
parentNode;
int
depth;
TreeNode
treeNode;
// access the Report Data Contract information
AOTObjectsContract contract = this.parmDataContract()
as AOTObjectsContract;
if (contract)
{
// look-up the node referenced by the contract
selection
parentNode = contract.parmParentNode();
// cache the control flags
incNoValue = contract.parmIncNoValue();
// access the requested security key filter
aotProperty = contract.parmAOTProperty();
propertyVal = contract.parmPropertyValue();
}
else
{
// default to the Menu Items node of the AOT
parentNode = #MenuItemsOutputPath;
// set session defaults
incNoValue = true;
}

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-29

What's New - Technical in Microsoft Dynamics AX 2012 for Development


// look-up the node referenced by the contract
selection
treeNode = TreeNode::findNode(parentNode);
if(!treeNode)
{
// throw an error if parent node isn't found
error(strfmt("@SYS105682", parentNode));
}
else
{
// process the parent node
this.processAOTNode(treeNode, null, 1);
}
}

Step by Step: Create a New Report in Visual Studio


1. Open Microsoft Visual Studio.
2. On the File menu, point to New, and then click Project. The New
Project dialog box appears.
3. In the Project Types pane, click the Microsoft Dynamics AX node,
and in the Templates pane, click Report Model.
4. In the Name box type SSRSDemo2, and in the Location box, type a
file path.
5. Click OK.
6. In Solution Explorer, click the Add button and select Report.
7. An empty report model named Report1 is created.
8. Right-click the newly created report and rename it to
AOTObjects_WS2.
9. Expand the AOTObjects_WS2 node if it is not already expanded.
10. Right-click the Datasets node, and then click Add Dataset.
11. Select the node for the dataset.
12. In the Properties window, specify the following values:
a. Set the Data Source property to Dynamics AX.
b. Set the Data Source Type property to Report Data Provider.
c. Set the Default Layout property to Table.
d. Set the Name property to AOTObjectsDP.
e. Set the Query property to SELECT * FROM
AOTObjectsDP.AOTObjectsTmp.
13. In the Model Editor, select the AOTObjectsDS node and drag it
onto the Designs node. An auto design named AutoDesign1 is
created for the report.
14. Right-click the AutoDesign1 node, and then click Preview.
15. Set the LayoutTemplate and TableStyleTemplate properties.
16. Group the report dataset on the =Fields!Property.Value.

10-30

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting


17. Right-click the AutoDesign1 node, and then click Create Precision
Design.
18. Right-click the PrecisionDesign node, then click Rename, and set
the name to Report.

Step by Step: Save and Deploy the Report


1. Right-click the SSRSDemo2 project in Solution Explorer, and select
Rebuild.
2. Verify that you have no build errors.
3. Right-click the SSRSDemo2 project in Solution Explorer, and select
Add SSRSDemo2 to AOT.
4. Verify that you can add to the AOT.
5. Right-click the SSRSDemo project in Solution Explorer, and select
Deploy.
6. Verify that you can add to the AOT.
7. Move to the Report Manager to view the report.

Step by Step: View the Report in Microsoft Dynamics AX


1. Open Microsoft Dynamics AX.
2. In the AOT, expand the Menu Items node and select the Output
node.
3. Right-click the Output node, and then click New Menu Item.
4. Type AOTObjects_WS2 as the name.
5. Right-click the AOTObjects_WS1 and select Properties to set the
following:
a. Set the ObjectType property to SSRSReport.
b. Set the Object property to AOTObjects_WS2.
c. Set the ReportDesign property to PrecisionDesign.
6. Save the AX Menu Item.
7. Right-click the AOTObjects_WS2 menu item and select Open.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-31

What's New - Technical in Microsoft Dynamics AX 2012 for Development

Summary
In this chapter you learned that in Microsoft Dynamics AX 2012 all X++ reports
are now migrated to SQL Server Reporting Services. This platform provides
users better looking reports, more export formats, and a more capable report
designer.

10-32

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting

Test Your Knowledge


1. True or False: Reports are not fully-integrated into the Microsoft Dynamics
AX security system.
( ) FALSE
( ) TRUE
2. Which tool is used to deploy reports in Microsoft Dynamics AX 2012?
( ) PowerShell
( ) Microsoft Dynamics AX 2012 install files
( ) Microsoft Dynamics AX 2012 Reporting Project Deployment form
3. True or False: You can use the new data type Report data to build reports that
have data from an X++ class as the source.
( ) TRUE
( ) FALSE
4. What are some advantages of the new Reporting Services architecture over
X++ reports? (Select all that apply)
( ) Better looking reports
( ) More flexible architecture
( ) More supported export formats
( ) Better report designer
5. What are some of the options for upgrading existing Microsoft Dynamics AX
2009 SQL Server Reporting Services reports? (Select all that apply)
( ) Rewrite the Reporting Services reports using the X++ reporting
framework.
( ) Do not upgrade the reports, use a Reporting Services template and
customize it to meet your needs.
( ) Deploy the Reporting Services reports and follow the deployment
wizard.
( ) Use the Report Upgrade Tool to upgrade the reports so that they are
compatible with the Microsoft Dynamics AX 2012 schema.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-33

What's New - Technical in Microsoft Dynamics AX 2012 for Development

Quick Interaction: Lessons Learned


Take a moment and write down three key points you have learned from this
chapter
1.

2.

3.

10-34

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

Chapter 10: Reporting

Solutions
Test Your Knowledge
1. True or False: Reports are not fully-integrated into the Microsoft Dynamics
AX security system.
() FALSE
( ) TRUE
2. Which tool is used to deploy reports in Microsoft Dynamics AX 2012?
() PowerShell
( ) Microsoft Dynamics AX 2012 install files
( ) Microsoft Dynamics AX 2012 Reporting Project Deployment form
3. True or False: You can use the new data type Report data to build reports that
have data from an X++ class as the source.
() TRUE
( ) FALSE
4. What are some advantages of the new Reporting Services architecture over
X++ reports? (Select all that apply)
() Better looking reports
() More flexible architecture
() More supported export formats
() Better report designer
5. What are some of the options for upgrading existing Microsoft Dynamics AX
2009 SQL Server Reporting Services reports? (Select all that apply)
( ) Rewrite the Reporting Services reports using the X++ reporting
framework.
() Do not upgrade the reports, use a Reporting Services template and
customize it to meet your needs.
( ) Deploy the Reporting Services reports and follow the deployment
wizard.
() Use the Report Upgrade Tool to upgrade the reports so that they are
compatible with the Microsoft Dynamics AX 2012 schema.

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement

10-35

What's New - Technical in Microsoft Dynamics AX 2012 for Development

10-36

Microsoft Official Training Materials for Microsoft Dynamics


Your use of this content is subject to your current services agreement