Passing filter values on the URL to PerformancePoint Services web parts


A design pattern that may help you link to dashboards from existing systems is passing filter values in the URL. For example:

    1

 

Although this pattern’s as old as the web, you asked us to make PerformancePoint dashboards work with it. In SharePoint 2010 it works!

The steps are the same whether you deploy a page that uses only PerformancePoint web parts using Dashboard Designer, or build a more complex page using SharePoint web or SharePoint Designer.

  1. Understand how Query String (URL) Filter works
  2. Build the content & page
  3. Add Query String (URL) Filter web parts for each attribute you want to control on the URL
  4. Connect each filter web part to the web parts you want it to affect

To illustrate we’ll add URL filtering to a simple dashboard that has one PerformancePoint Report web part.

We will specify Geography on the URL:

2

1. Understand how Query String (URL) Filter works

The Query String (URL) Filter accepts the name and value parts, separated by an equals sign, and multiple filters separated by a semi-colon (this is quite common and not unique to SharePoint.)

3

You’ll have full control over the name part. We’ll explain how to specify it in the next step.

The value depends on the web part the value’s passed to. In the case of PerformancePoint Services web parts you’ll need a member unique name for the data source(s) referenced by the content.

Unfortunately a Query String (URL) filter and another filter can’t be synchronized with the same consumer field of a web part. Although you can connect more than one filter web parts to the same consumer field, this won’t result in the multiple filters being synchronized with the field. You will have to choose one mode or the other.

2. Build the content & page

We laid out the analytic chart “Local Sales Report” in Dashboard Designer. The only detail of interest is we put the Geography hierarchy in the Background well so we can connect filters to it in SharePoint.

If you’re going to do URL filtering we recommend you do your page editing outside Dashboard Designer. Dashboard Designer’s web part page deployment is very simplistic and removes all changes not possible within Dashboard Designer, including URL filtering.

For this example we didn’t use Dashboard Designer at all except to create “Local Sales Report.” We started with a blank web part page, added the PerformancePoint Report web part, then configured it to show “Local Sales Report.”

3. Add Query String (URL) Filter web parts for each attribute you want to control on the URL

For each query string parameter you want the page to have:

  1. In SharePoint web put the page in edit mode (Select the Page tab in the ribbon, and click Edit Page.)
  2. Click Add a Web Part in any zone.
  3. In the Categories column, select Filters
  4. Select Query String (URL) Filter and click Add
    4
  5. In the new web part’s web part menu, click Edit Web Part:

     5

  6. In the tool pane fill out Query String Parameter Name. You may also want to fill out Default Value, so that when the parameter’s not specified a reasonable default’s used.

     6

  7. Click “OK at the bottom of the tool pane.

4. Connect each filter web part to the web parts you want it to affect

For each web part you want the filter to affect:

  1. From the web part menu on the filter web part select: Connections -> Send Filter Values To –> then the destination web part:
    7
  2. The Choose Connection dialog appears. You’ll have 2 choices for Connection Type; either will work in this case.
  3. Under Configure Connection select the field you’d like to filter. The options vary based on the web part, and in the case of PerformancePoint web parts, on the content. Here we select the Geography hierarchy we added to “Background” in Local Sales Report:
    8
  4. Click Finish.
  5. You can now click “Stop Editing”, and try it out:

9

 

John Hall & Wade Dorrell
SharePoint BI

(Please note that to simplify all URL examples, we’ve left the value parts un-encoded. RFC 3986 requires that most characters in this part of a URL, notably space, [ and ], be encoded in a specific way that’s not particularly human-readable. If you don’t encode values in real applications, as the URLs are passed along they often get truncated at the space or garbled.)


Comments (11)

  1. mortenbpost says:

    This works great.

    But how can I send multiple parameters. If I want to send something like:

    {[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chardonnay],

      [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chardonnay]}

    I get an error that the parameter is not set when i try to do that. So How can I archieve that?

    Thanks 🙂

  2. FUTURESULTS says:

    This functionality was created with a custom filter for PerformancePoint 2007.  You can find out more at:

    http://futuresults.spaces.live.com/blog/cns!C744D1F0A0609818!156.entry

    You can also see the full text search capability, url parameterization, and configuration capabilites at:

    http://futuresults.com/PPS_Custom_Text_Filter.aspx

  3. Andrew Sadler says:

    How do i pass parameters in a similar way to the decomp tree aspx page?

    from reading the aspx page the url could look a bit like this:

    http://servername/_layouts/PPSWebParts/DecompII.aspx?locale=en-us&serviceUrl=&reportType=olap&reportId={1234}&tuple=&clientViewState=

    But i need more guidance on what this could / should look like.  I am trying to run a parameterised decomposition tree.

    Many thanks

    Andrew

  4. CapitanOU says:

    I get the following errror after configuring it:

    You do not have permissions to see this data. Additional details have been logged for your administrator.

    EventLog shows:

    An exception occurred while rendering a Web control. The following diagnostic information might help to determine the cause of this problem:

    Microsoft.PerformancePoint.Scorecards.BpmException: You do not have permissions to see this data.  Additional details have been logged for your administrator.

    PerformancePoint Services error code 20700.

    Odd thing is that I am an Administrator on the Analysis Server as well as a farm administrator in sharepoint.  Also before configuring the queryfilter the dashboard worked fine with my permissions.

  5. Dhandapani K says:

    Hi,

          I have created a PPS Dashboard with 10 measures. I used filter(drop down) to display measures.

          How to pass measure-name as parameter in PPS URL to display the specified measure details in dashboard?

          Is it possible to do like this?

         Thanks in Advance…………..

  6. @CapitanOU

    I know this is a little late, but I got the same error.  When I tried filtering, I tried to send the member unique name with "&".  That seems to kill it because I think it is seeing that as a parameter separator.

  7. Sachin Dekate says:

    Replace "&" with "%26"

  8. arun says:

    Any solution is there query string filter web part  supporting multiple  values filter option

  9. Naresh Podishetty says:

    Hi

    How can i send only part of query string param value  to another webpart?

    ex: ?Geography=[Geography].[Location].[India]

    but my other webpart is expecting only India as input.

    How can i send that?

  10. Akshath says:

    Hi ,is there any limitation for displaying the characters in the dashboard filters?

    For Eg : in DB for Geography filter  Africa and Americas if i select i can see completly whereas for Asia and the Pacific  i can see only Asia an..

    the width of that particular filter is 100

    Can any one suggest me how to over come this issue?

    Thanks in advance !!!

  11. Hind says:

    Hey ;
    I would like to know if it’s possible to filter a scorecard using a sting query !