You are on page 1of 32

Microsoft Dynamics AX

Tracing Dynamics AX 2009


Role Center KPIs
Summary: This document explains how to trace the data
displayed in a Role Center page KPI to its source in the Microsoft
Dynamics AX online transaction processing (OLTP) database.
Author:
Catherine McDade, Support Escalation Engineer
Date Published: January, 2010

Table of Contents
Introduction ................................................................................................ 3
Terminology ................................................................................................ 4
KPI walkthrough ......................................................................................... 9
Description of KPI example .................................................................................................... 9
Step-by-step ........................................................................................................................ 9

Appendix A: Useful links ........................................................................... 31

2
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

Introduction
The prominent place of key performance indicators (KPIs) in Microsoft Dynamics AX 2009 Role Center
pages has prompted questions about where the KPI data is drawn from. This document explains how
to trace the data displayed in a KPI to its source in the Microsoft Dynamics AX online transaction
processing (OLTP) database.
Microsoft Dynamics AX relies on SQL Server Analysis Services (SSAS) for its business intelligence
processing. In the following sections, we define terms of importance for SSAS, and then provide an
example of how to trace the data for a KPI on a Role Center page.

3
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

Terminology
Key Performance Indicator (KPI)
A Key Performance Indicator is a measurement for gauging business success, or, in other words, a
measure of business metrics against targets. For example, a Sales Amount KPI could show sales
from the last quarter and display a green icon if you are at budget, yellow if you are within 5% of
budget, and red if you are under 5% of budget.
Online Analytical Processing (OLAP)
OLAP systems (such as that supported by SSAS) aggregate and store data at various levels across
various categories.
Facts
Facts are predominantly numeric measurements, such as price or quantity, and represent the key
business metrics that you want to aggregate and analyze. Facts form the basis of calculations, and
you often aggregate them for members of a dimension.
Dimensions
Dimensions form the contexts for the facts, and define the aspects of a business by which the
facts are aggregated. For example, Items could be a dimension, while Price and Quantity could be
facts of that dimension.
Data source
A data source stores the connection information for an SSAS project and/or database. With
Microsoft Dynamics AX, the project or OLAP database that you create has a data source that
points to your Microsoft Dynamics AX OLTP database.
Data source view
A data source view contains the logical model of the schema used by an SSAS database object.
Data source views can filter, apply calculations, and create joins on objects in the data source. In
the OLAP database that Microsoft Dynamics AX creates, most of the data source views are simply
views of a specific table, though some views may include a SQL statement that contains filters,
calculations, or joins.
Measures
A measure represents a column that contains quantifiable data, usually numeric, that can be
aggregated. A measure is generally mapped to a column in a fact table. An example of a measure
would be Sales Amount or Cost of Goods Sold (COGS).
Cube
Cubes store summarized fact and dimension data in structures that are multidimensional (that is,
containing more than the two dimensions found in spreadsheets and normal database tables).
Dimensions define the structure of the cube, and measures provide the numeric values of interest
to an end user.
Microsoft Dynamics AX 2009 ships with the following 10 default cubes:

Accounts Receivable

Human Resources Management

General Ledger

Production

Project Accounting

Purchase
4

TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

Sales

Customer Relationship Management

Expense Management

Accounts payable

Multidimensional Expressions (MDX)


MDX is a query language, analogous to Structured Query Language (SQL), that is used to retrieve
multidimensional data from a cube.
Business Intelligence Development Studio (BIDS)
An integrated development environment (IDE) based on Microsoft Visual Studio 2005 or 2008 and
used to create and modify business intelligence solutions. This is the tool that you use to view
and/or modify your Dynamics AX OLAP project or database.
Project
In BIDS, a project is a collection of objects that make up your OLAP database. BIDS stores the
objects (cubes, dimensions, etc) as files in the file system. It is recommended that you create a
project for your OLAP database so that when you are making changes you are not affecting the
database until you deploy.
Below is a screen shot of BIDS opened to a project, followed by two screen shots that label the
various sections of the BIDS environment.

5
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

6
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

Detail view of BIDS, left side:

7
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

Detail view of BIDS, right side:

8
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

KPI walkthrough
Description of KPI example
This section walks you through an example of how to determine the origin of KPI values. We will use
screen shots as needed to illustrate procedures.
Scenario: Your CEO views her Role Center and wants to know where the numbers for the Production
Cost KPI are coming from.

Step-by-step
1. In the Microsoft Dynamics AX client, go to the User profiles form (Administration >
Setup > User profiles). On the form find and select CEO in the Profile ID column and
then click the View Role Center button.
2. For the Production KPIs click the Manage KPIs link.

3.

Click the edit button on Production cost (the pencil icon). It will tell you that this is
pulling from the Production Cube and the Production Cost KPI.

9
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

4.

5.

6.

To look at the KPI open SQL Server Business Intelligence Development Studio (BIDS). If
you are running SQL Server 2005, BIDS can be found at Start > All Programs >
Microsoft SQL Server 2005 > SQL Server Business Intelligence Development
Studio. If you are running SQL Server 2008, BIDS can be found at Start > All Programs
> Microsoft SQL Server 2008 > SQL Server Business Intelligence Development
Studio.
Open your OLAP database (File > Open > Analysis Services Database).

On the Connect To Database form, select Connect to existing database. Enter the
name of the SQL Server Analysis Services Server in the Server field. In the Database
field, enter Dynamics AX.

Note: By default your OLAP database is named Dynamics AX. If you have applied a
different name, use that name for Dynamics AX in the step above.

10
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

7.

Open the Production cube in the Solution Explorer section of BIDS. Find Production
Cube, right-click, and select Open.

8.

Click the KPIs tab.

9. In the KPI Organizer, click the Production Cost KPI to open its setup form.
10. The Value Expression section tells you what data the KPI is displaying.

11
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

For this KPI we see that it displays the following:


[Measures].[Actual vs. Planned Consumption]
Measures could be a calculated measure or a measure on the cube structure. It is
typically a calculated measure, so click the Calculations tab for the Production cube.
11. On the Calculations tab, find the Script Organizer and click the Actual vs. Planned
Consumption calculation.

12. You will see in the Expression section it is doing the following:
IF(
ISEMPTY([Measures].[Cost of Planned Consumption]) OR [Measures].[Cost of
Planned Consumption] = 0,
NULL,
([Measures].[Cost of Actual Consumption] / [Measures].[Cost of Planned
Consumption]) * 100
)
13. If we break the above statement down we see that the first part is:
[Measures].[Cost of Planned Consumption] OR [Measures].[Cost of Planned
Consumption] = 0, NULL
What this tells us is that if these values return zero we will report null, otherwise we will
do the calculation on the next line. First we need to find out if the above statement would
return a zero, as shown in the following steps.

12
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

14. Begin with the first part of the MDX query, [Measures].[Cost of Planned
Consumption]. On the Calculations tab you should see that Cost of Planned
Consumption breaks down to the following:
[Measures].[Planned Cost Amount] + [Measures].[Planned Cost Markup]
15. The Planned Cost Amount is another calculated measure that does the following:
([Measures].[Cost amount], [Production Level].[Level].&[1])
16. Cost amount is not a calculated measure, so we go back to the Cube Structure tab and
in the Measures pane find CostCalcuation > Cost amount.

17. Right-click Cost amount and select Properties.

13
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

18. Expand Source, then expand Source again. The TableID is PRODCALCTRANS and the
ColumnID is COSTAMOUNT.

19. To verify where the data is pulled from, go to the Solution Explorer and right-click
Dynamics AX under Data Source Views. Select Open.

14
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

20. On the Dynamics AX data source view tab, find PRODCALCTRANS under Tables.

21. Right-click PRODCALCTRANS and select Edit Named Query.

22. If you didnt have an Edit Named Query option, it would mean the data was being pulled
the PRODCALCTRANS table using the following select statement:
select costamount from prodcalctrans

15
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

However, since this is a named query, we need to find where the COSTAMOUNT column is
coming from. To do this, look through the column labeled Column, find COSTAMOUNT,
and then look at the Table column to see the source table.

23. We see that the COSTAMOUNT column is pulling data from the PRODCALCTRANS table.
The SQL statement would be:
select costamount from prodcalctrans

16
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

24. Now we need to trace the second part of the calculated measure, which is [Production
Level].[Level].&[1]. Find Production level in the Hierarchies tab under
Dimensions. Expand Production level and then click Edit Production Level.

25. The Production Level hierarchy should appear under Production Level. Right click Level
and select Properties.

17
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

26. In the Properties window, expand NameColumn and then expand Source. The source
TableID is PRODCALCTRANS_LEVEL and the ColumnID is COLLECTREFLEVEL.

27. We now know the data source that OLAP is using, but we want to find out where data is
being pulled from in the Microsoft Dynamics AX OLTP database. To do this we can open
the Dynamics AX option under Data Source Views in Solution Explorer.

18
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

28. Scroll to PRODCALCTRANS_LEVEL, right-click, and select Edit Named Query

19
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

29. The SQL statement for this data source is:


SELECT DISTINCT COLLECTREFLEVEL FROM PRODCALCTRANS

20
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

30. We now have enough information to build a SQL statement that would reflect the OLAP
query we saw in step 24 ([Production Level].[Level].&[1]). Adding the level of 1
from the end of the statement yields the SQL statement:
select * from prodcalctrans where collectreflevel=1

31. Combining SQL statements yields:


select sum (costamount) from prodcalctrans where collectreflevel=1

21
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

32. Now return to the second part of the MDX query [Measures].[Planned Cost Markup]
from step 14.
On the Calculations tab, find Planned Cost Markup. We see that this calculated
measure is defined by
([Measures].[Cost Markup], [Production Level].[Level].&[1])

33. On the Cube Structure tab, navigate to CostCalcuation and then to Cost Markup.

34. Right-click and select Properties for Cost Markup.

22
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

35. In the Properties window, expand Source and then Source again. The displayed
TableID is PRODCALCTRANS and the ColumnID is COSTMARKUP.

36. Return to the Data Source View and look at PRODCALCTRANS and the Cost Markup
column (as in steps 20 through 23). The SQL statement turns out to be:
select costmarkup from prodcalctrans
37. We already found the SQL for production level.level &1 in steps 24-30. Combining
that with COSTMARKUP yields:
select sum (costmarkup) from prodcalctrans where collectreflevel=1

38. Now you can take the sum of COSTAMOUNT and COSTMARKUP (using the results from
steps 31 and 37) where collectionreflevel=1. If that value is zero, then the KPI is null.
39. If the value is not zero, then we continue tracing the KPI using the second part of the
statement from step 12:
[Measures].[Cost of Actual Consumption] / [Measures].[Cost of Planned
Consumption]) * 100

23
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

40. The Cost of Actual Consumption is a calculated measure that has the following
expression:
[Measures].[Realized Cost Amount] + [Measures].[Realized Cost Adjustment]

41. In the first part of the statement, the Realized Cost Amount measure is:
([Measures].[Actual cost amount], [Production Level].[Level].&[1])

24
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

42. Now look up the Actual cost amount measure. To find this measure, go back to the
Cube Structure tab and find Actual cost amount under CostCalculation.

43. If we look at the properties of Actual cost amount we find that the source TableID is
PRODCALCTRANS and the ColumnID is REALCOSTAMOUNT.

44. This gives us a SQL statement of:


select realcostamount from prodcalctrans

25
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

If we add the production level of 1 (which we already found in steps 24 to 30) the SQL
statement for all of step 41 is:
select sum (realcostamount) from prodcalctrans where collectreflevel=1

45. Go back to step 40 and look at the second part of the statement
[Measures].[Realized Cost Adjustment]
Realized Cost Adjustment is a calculated measure equivalent to:
([Measures].[RealCostAdjustment], [Production Level].[Level].&[1])

26
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

46. The source of RealCostAdjustment can be found by going back to the Cube Structure
tab and finding RealCostAdjustment under CostCalculation.

47. If we look at the properties of RealCostAdjustment, we find that the source TableID is
PRODCALCTRANS and the ColumnID is REALCOSTADJUSTMENT. Adding the production
level of 1, we would see a SQL statement such as:
select sum(realcostadjustment) from prodcalctrans where collectreflevel=1

48. To derive Cost of Actual Consumption, we would add the results of steps 44 and 47.
49. Next we trace the second part of the statement from step 39:
[Measures].[Cost of Planned Consumption]

27
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

This results in the expression:


[Measures].[Planned Cost Amount] + [Measures].[Planned Cost Markup]

50. [Measures].[Planned Cost Amount] is a calculated measure equivalent to:


([Measures].[Cost amount], [Production Level].[Level].&[1])

28
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

51. To find [Measures].[Cost amount], go back to the Cube Structure tab and find Cost
amount under CostCalculation.

52. If we look at the properties of Cost amount, we find that the source TableID is
PRODCALCTRANS and the ColumnID is COSTAMOUNT. Adding the production level of 1, we
would see the SQL statement:
select sum (costamount) from prodcalctrans where collectreflevel=1

53. Return to step 49 for the next part of the statement:


[Measures].[Planned Cost Markup]

29
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

This is a calculated measure equivalent to the expression:


([Measures].[Cost Markup], [Production Level].[Level].&[1])

54. To trace this measure, go back to the Cube Structure tab and find Cost Markup under
CostCalculation.

30
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

55. If we look at the properties of Cost Markup, we find that the source TableID is
PRODCALCTRANS and the ColumnID is COSTMARKUP. Adding the production level of 1,
we see the SQL statement:
select sum (costmarkup) from prodcalctrans where collectreflevel=1

56. The results for [Measures].[Cost of Planned Consumption] would be the sum of steps 52
and 55.
57. Therefore, the results for [Measures].[Cost of Actual Consumption] / [Measures].[Cost of
Planned Consumption]) * 100 This means we have to divide the results from step 48 by
the results of step 56. Then we take that number and multiply it by 100 to get our actual
vs. planned consumption which is what gives us the Production Cost KPI.
After following these steps you should now know where the data that makes up the Production Cost
figure on the KPI is coming from. You should also have learned how to trace a KPI so that you can
determine where any KPI is pulling data from.

Appendix A: Useful links

Microsoft Dynamics AX 2009 Business Intelligence Cube Reference Guide:


http://www.microsoft.com/downloads/details.aspx?FamilyId=6A685DF3-912D-4545-B990CD2283C159FB&displaylang=en

Role Center reference for Microsoft Dynamics AX:


https://www.microsoft.com/dynamics/ax/using/ax_rolecenterreference.mspx

References:

The information above was taken from SQL Server books online. For more information on
SSAS please go to http://msdn.microsoft.com/en-us/library/ms130214.aspx

31
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

Microsoft Dynamics is a line of integrated, adaptable business management solutions that enables you and your
people to make business decisions with greater confidence. Microsoft Dynamics works like and with familiar
Microsoft software, automating and streamlining financial, customer relationship and supply chain processes in a
way that helps you drive business success.
U.S. and Canada Toll Free 1-888-477-7989
Worldwide +1-701-281-6500
www.microsoft.com/dynamics

This document is provided as-is. Information and views expressed in this document, including URL and other Internet Web site
references, may change without notice. You bear the risk of using it.
Some examples depicted herein are provided for illustration only and are fictitious. No real association or connection is intended or
should be inferred.
This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and
use this document for your internal, reference purposes. You may modify this document for your internal, reference purposes.
2009 Microsoft Corporation. All rights reserved.

32
TRACING DYNAMICS AX 2009 ROLE CENTER KPIS

You might also like