Troubleshooting and FAQs for PerformancePoint Services Development

SharePoint 2010

Read FAQs and troubleshooting tips for developing with PerformancePoint Services.

Last modified: June 07, 2011

This topic contains frequently asked questions (FAQs) and information to help you design and troubleshoot your custom applications for PerformancePoint Services in Microsoft SharePoint Server 2010.

FAQs for Developing with PerformancePoint Services

Troubleshooting Tips for PerformancePoint Services Custom Extensions

Applies to: SharePoint Server 2010

The following table contains FAQs that apply to PerformancePoint Services development.

Table 1. FAQs for PerformancePoint Services development



Where can I download the PerformancePoint Services sample?

The sample is a Microsoft Visual Studio project that you can download from MSDN Code Gallery: PerformancePoint Services SDK Reference Sample.

Where are the PerformancePoint Services assemblies installed?

PerformancePoint Services assemblies are installed to the global assembly cache only. For instructions on copying them to another location on your computer, see PerformancePoint Services DLLs Used in Development Scenarios.

What permissions are required for PerformancePoint Services development?

To develop PerformancePoint Services extensions, your user account must have read and write permissions to the PerformancePoint Services repository. In addition, it must be able to publish dashboards for testing purposes. These permissions are defined on the Central Administration site.

When working with PerformancePoint Services assemblies, you must have administrative permissions on the application server to copy installed assemblies and to add your assemblies to the global assembly cache. In addition, you must have write permissions to edit the PerformancePoint Services web.config file on the application server and to copy files to folders on the application server or the front-end web server, depending on your extension’s deployment.

PerformancePoint Services uses the unattended service account for communication with the back-end database. The unattended service account is also the default account for data source impersonation, although this setting can be changed from the Central Administration site. You can also specify to connect to a data source with per-user credentials.

For more information, see Configure the Unattended Service Account for PerformancePoint Services and Authorization and Permissions in PerformancePoint Services (SharePoint Server 2010) on Microsoft TechNet.

Where is the repository for PerformancePoint Services FCOs?

First class objects (FCOs) are stored as content types in the PerformancePoint Services repository, which is made up of SharePoint document libraries and lists. Data sources are stored in document libraries and all other FCOs (dashboards, scorecards, reports, filters, KPIs, and indicators) are stored in lists. The default repository consists of the PerformancePoint Data Connections Library and the PerformancePoint Content List. Although you can use SharePoint APIs to access FCO definitions, you should use only the PerformancePoint Services API to modify them.

Note Note

Dashboard FCOs that are stored in the repository represent dashboard page definitions. Published dashboards are stored in a separate Dashboards document library.

Where does PerformancePoint Services log events?

PerformancePoint Services logs entries for most errors on the application server where PerformancePoint Services is running. In a single farm configuration, this is also the front-end web server.

What kinds of custom data sources can I create for PerformancePoint Services?

Only custom tabular data sources are supported.

Note Note

The size-limit recommendations for native tabular data sources also apply to custom tabular data sources. For best performance results, tabular data sources should not contain more than 20,000 rows and ten columns of data.

Can I use a custom web server control for a custom PerformancePoint Services filter?

You can use a custom or third-party control for a custom filter. However, you cannot use a custom control for native PerformancePoint Services filters. Custom filter controls can use either the ParameterizableControl or ParameterSelectionControl base class. We recommend that you use ParameterSelectionControl because it derives from ParameterizableControl and also provides a framework for implementing a selection control. Instructions for creating a custom control are beyond the scope of this documentation. However, the process resembles creating a report renderer.

The default control for a filter type is specified by the RendererClass attribute in the PerformancePoint Services web.config file. However, this value can be overridden by the Filter.RendererClassName property. For more information about how to specify the renderer class in the web.config file, see How to: Manually Register PerformancePoint Services Extensions.

How do I define a default selection for a custom PerformancePoint Services filter?

The data that is available to a filter control is retrieved from a data table. The table contains an IsDefault column that you can use to indicate a default selection.

Can a PerformancePoint Services extension be packaged and deployed as a solution?

You can package and deploy the components of a PerformancePoint Services extension as a solution to the whole farm. However, you must register your extension in the PerformancePoint Services web.config file for every instance of PerformancePoint Services in the farm, either manually or by using a script or custom timer job. For information about manually registering a PerformancePoint Services extension, see How to: Manually Register PerformancePoint Services Extensions.

Can I migrate a custom extension that was created for PerformancePoint Monitoring Server?

As a result of significant architectural changes in PerformancePoint Services in Microsoft SharePoint Server 2010, migrating custom PerformancePoint Monitoring Server extensions to PerformancePoint Services is not supported. The degree to which you can reuse code depends on the extension. For example, the wizard component of a data source extension cannot be reused because Dashboard Designer cannot be extended in PerformancePoint Services. However, you may be able to reuse some code from the data source provider. Post your questions about migrating extensions to the SharePoint 2010 Forums or the Microsoft PerformancePoint Services Official Product Team Blog.

Can I use PerformancePoint web services to create or render dashboard content remotely?

Using PerformancePoint web services is not an officially supported scenario and is beyond the scope of this documentation. Supported extensions run on the server within a PerformancePoint Services application instance and use the PerformancePoint Services API to perform authoring and rendering tasks. This API, which consists of the BIMonitoringServiceApplicationProxy and SPDataStore objects, uses SharePoint list security and provides functionality such as built-in caching. For more information, see the "Interacting with Repository Objects" section in Editors for Custom PerformancePoint Services Objects.

Note Note

To enable a client application to access PerformancePoint Services, you can create a custom web service that runs on the server. The web service can receive calls from the client application and make calls to the PerformancePoint Services API.

How can I customize the appearance of PerformancePoint Services dashboards?

Besides using the customization features in the Dashboard Designer user interface, you can customize the appearance of dashboards by using one of the following methods:

  • Create custom Microsoft SharePoint Foundation site templates or master pages.

  • Modify cascading style sheet (CSS) files. The default path of PerformancePoint Services CSS files on the application server is %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\PPSWebParts.

  • Create custom scorecard transforms.

Why can't I see the changes that I make to a custom object in PerformancePoint Dashboard Designer?

You must refresh your Dashboard Designer session to see your recent changes. To refresh your session, click Refresh on the Home tab or press the F5 key.

Can third-party Web Parts be connected to PerformancePoint Web Parts?

PerformancePoint Web Parts (scorecards, reports, and filters) can send data to or receive data from third-party Web Parts that implement compatible interfaces. To enable this interaction, provider Web Parts must implement the ITransformableBIDataProvider interface, and consumer Web Parts must implement the IClientConnectable interface, the IBIDataProvider interface, the IFilterValues interface, or the IWebPartParameters interface.

Note Note

IClientConnectable is in Microsoft.PerformancePoint.Scorecards.ServerCommon.dll, and ITransformableBIDataProvider and IBIDataProvider are in Microsoft.PerformancePoint.Scorecards.WebControls dll. PerformancePoint Services connection interfaces and the Microsoft.PerformancePoint.Scorecards.WebControls assembly are not included in this documentation.

Can I customize the size of a PerformancePoint Services filter Web Part?

Although you can control the size of a report or scorecard Web Part (programmatically or through the UI), filter Web Parts are sized automatically and cannot be changed.

Can I query the back-end database to perform Create, Read, Update, and Delete (CRUD) tasks directly on PerformancePoint Services items?

Like all content from SharePoint document libraries and lists, PerformancePoint Services content is stored in a Microsoft SQL Server database. However, we do not recommend or support querying the database directly. Instead, use the PerformancePoint Services API. For more information, see the "Interacting with Repository Objects" section in Editors for Custom PerformancePoint Services Objects.

Can I use the Lists web service from SharePoint Foundation to perform CRUD tasks?

Perform Create, Read, Update, and Delete (CRUD) operations against the PerformancePoint Services repository only through the PerformancePoint Services API. For more information, see the "Interacting with Repository Objects" section in Editors for Custom PerformancePoint Services Objects.

Use the following information to help troubleshoot problems with your custom extensions.

Defining the SubTypeId Property for a PerformancePoint Services Custom Object

When you create a custom report, filter, or data source object, you must define a unique value for the SubTypeId property. Custom reports cannot use any of the names that are defined in the ReportViewNames class, and custom data sources cannot use any of the names that are defined in the DataSourceNames class. Moreover, the value must be one to 60 characters long, and it must not contain an apostrophe ('), quotation marks ("), or a backslash (\).

PerformancePoint Services Custom Editor Returns Server Error

The redirect functionality that opens a custom editor requires that your SharePoint Server 2010 configuration contains a top-level (root) site collection. If your configuration does not contain a root site collection, you receive the following server error when you attempt to edit your custom object: "Server Error in '/' Application. The SharePoint Service context is not known." To resolve this issue, create a root site and re-deploy the extension.

Published PerformancePoint Services Custom Filter Returns Error

When Dashboard Designer creates an instance of a custom filter, it does not define the filter's BeginPoints property. Therefore, your custom filter editor must define the filter's BeginPoints and initialize the filter. Otherwise, you receive the following error after publishing a dashboard that contains a custom filter: "Index was out of range. Must be non-negative and less than the size of the collection." Parameter name: index. For more information about how to define beginpoints and initializing the filter, see How to: Create Editors for PerformancePoint Services Filters.

Changes from a Custom Scorecard Transform Do Not Render

If you are using a PreRender transform and the expected changes do not render in a scorecard view, the view may be rendering from the HTML cache. To test whether this is the case, perform a sort or filter on the view. If the changes from the transform appear, the issue is from caching. For more information, see the "Determining Which Transform Type to Use" section in Overview of PerformancePoint Services Scorecard Transforms. If the issue is not from caching and your transform is trying to override format settings, verify that the transform is setting the applicable properties on the appropriate object, as described in Scorecard Formatting in PerformancePoint Services.

Debugging Tips for PerformancePoint Services Custom Solutions

Use the following tips when you are debugging your custom solutions:

  • PerformancePoint Services logs entries for most errors in the Application event log on the application server where PerformancePoint Services is running. The source of the event is PerformancePoint Service.

  • When trying to debug the server, make sure that you are connecting to the w3wp process that is running PerformancePoint Services. You can use the iisapp command from a Command Prompt window to see which application is running on active processes. When a client starts, it in turn starts a service application instance that runs in a w3wp.exe process that is separate from the one for the front-end web server.