Apply Now
|
Knowledge Base |
About Us |
Locations |
Contact Us
|
|||||||||||||||||||||
|
|||||||||||||||||||||
| Knowledge Base | |||||||||||||||||||||
|
Charting with PerformancePoint Server 2007I-Data Weekly - March 21, 2008
Welcome to I-Data Weekly, a technical blog
dedicated to Business Intelligence with the Microsoft SQL Server
family of products. I-Data stands for Intelligent Data, reflecting the
goal of presenting the type of content you'll find in SetFocus'
Master's Program - Business Intelligence Track .
1 - Defining the end result: a dual-axis chartThe
SetFocus BI training methodology involves starting at the
end, to visualize the final result, and then working backwards (step by step)
to build the results. Our goal here is to produce a chart that
shows product monthly sales from the AdventureWorks OLAP sample
database. The user can select a date range and any product in the
hierarchy, and the chart will plot sales by month. The chart will also
show the sales as a % of the parent product definition. This way, we can easily
spot trends in sales and product sales distribution. So in the example
below, the line chart represents the monthly sales for Mountain-200 Silver 38,
as a % of sales for the parent Mountain Bikes group. This demonstrates the
ability of PerformancePoint Server to display a dual-axis chart (with the sales
amount sale on the left vertical axis and the product sales % on the right
vertical axis).
2 - Laying some groundwork: constructing some reusable MDX CodeAnytime you build a chart or report against an OLAP database, you'll want to
perform a mental checklist of what items and measures you have immediate access
to, and which ones you don't. In this instance, there are two items that you'll
need to construct:
Note the use of the MDX DESCENDANTS function, which allows you to build a complex set of members from the category level down to the product level. Eventually, you'll use this named set to populate the product filter pull-down. (And because it's stored in the cube, you can use the named set any other place where you need to display products in a hierarchical format). Second, you'll need to create an MDX calculated member to determine the product sales as a % of the parent sales:
The MDX calculated member above (Product Pct of Parent) first checks to make sure that the current selected level is something other than the top level ([ALL] Product). While our MDX Named Set ProductHieararchy limits the result set to specific levels, you may want to use this calculated member on another report, and want to make sure that the calculation will return 100% if the user ever selects the [ALL] Product Total. If the current level is anything other than the top level, the calculation takes the current internet sales, divided by the sales for the Parent of the implied current product member that the user selects. Note that the calculated member doesn't reference any particular level in the product hierarchy. That's the great thing about this calculated member: it will produce the correct result for any single product in any level of the product hierarchy. Therefore, you can use it for a single product brand, or category, or subcategory. Additionally, the calculated member will "honor" any dimension slicing - in this
instance, the calculation will run for each month in the month range that the
user selects. 3 - Building the chart and constructing the MDX for the chartPerformancePoint Server provides many options for building reports and charts. In this example, you'll create a new Analytic Chart in PerformancePoint, and select Bar Chart as the report type.
In some instances, you can define the chart by dragging and dropping dimensions and calculated members into the chart design area (much in the same way you'd design a chart in Microsoft Excel.) However, in this instance, you'll need to write a little bit of custom MDX code to deal with the date range that the user selects. In the example below, you navigate to the Query tab of the Chart designer, and enter the following MDX code below. Note that the MDX code utilizes three parameters, for the start date, end date, and product selected. The MDX code also retrieves the two measures for Internet Sales, as well as our calculated member for Product % of Parent. Two things to note in the MDX query - first, the query uses the MDX ':' symbol to retrieve all months in between the start and end date. Second, note that you reference MDX parameters in the code with << and >> token identifiers. 4 - Creating filter drop-down lists for user selectionsThe next step is to create a dashboard page, and add new filters for the Start Month/End Month range, along with the product dropdown.
With the first two filters (Starting month and Ending Month), you can simply enter an MDX Query of [Date].[Calendar].[Month] for the filter source. For the Product Filter, you can associate the filter with an MDX Named Set, and select the ProductHierarchy Named Set that we created earlier:
The "Create a Filter" wizard form (above) also contains a page called "Select a Display Method", which allows you to display the filter as a straight pull-down, or in a tree-like display. You'll want to use the tree display to show any hierarchical data. 5 - Creating a web dashboard page with the chart and the filtersPerformancePoint Server allows you to create a Dashboard Page with multiple zones for the filters and for the main chart area. You can drag the filters and chart from the list of available items (on the left side) into the design area:
The last step is to "link" the filters to the chart. You'll recall that we created three MDX parameters back in step 3 - we need to map the three filters to each of the three MDX parameters. To create filter links, click on the small down-arrow in the upper-right corner of each filter, and select Create Link:
The interface to create a filter link contains two tabs. In the first tab, you link the filter to the corresponding dashboard item (the chart itself).
In the second tab, you map the filter to the actual parameter from the chart. All three parameters (StartDate, EndDate, and ProductCat) will show up in the drop-down, and you can select the parameter (what PerformancePoint Server is calling an "item endpoint" here) that pertains to that particular filter link.
So you'll repeat this "Create Filter Link" process three times: for the two date range filters, and for the Product Filter. Finally, you can publish the entire workspace and either preview it, or deploy to a SharePoint site! Here is the output again - one other note: as with many charting tools, a tooltip is available to see the actual data for any plotted point:
Final thoughts: We've barely scratched the surface here of what PerformancePoint Server can do. In this article, we created a dual-axis chart to show dollar sales and percentages, and allowed the user to select a date range and any single product in the hierarchy. In future articles, we'll talk about other features in PerformancePoint, such as creating flexible business scorecards from KPIs (Key Performance Indicators). The SetFocus Business Intelligence Master's Program devotes an entire week to covering all of the functionality in the PerformancePoint Server Monitoring system. About the author:
| ||||||||||||||||||||
| Microsoft Certification | Visual Studio 2005 | SQL Server 2005 |.NET Framework | ||
| Home | Apply Now | Master's Program℠ | Corporate Services | .NET Courses | .NET Resources | Site Map | Trademarks |