How Performance Point Objective KPIs Rollup

The KPIs Rolls based on Weight

The mathematical calculation is done using the following formula

(Actual1/Target1) + (Actual2/Target2) ……. (Actual(n)/Target(n)) / n

Where n is the number of KPIs

The default banding is the Average of the KPIs Thresholds

In case we have decreasing is better

The value will be

(1-(Actual1/Target1)) + (Actual2/Target2) ……. (Actual(n)/Target(n)) / n

Where KPI1 is Decreasing is better

And for the banding its

KPIs Thresholds is calculated based on (1-thersold)

Create scorecards Programatically in PPS


After working with PPS I came across a Project which requires Building of Scorecards Programatically and assign KPIs to it

the below Sample can show you how to create scorecards inside PPS

protected void CreateScoreCard()
Guid AGuid;
// create a new scorecard instance
AScoreCard_wows = Scorecard.CreateNew();
// Setting the name property;
BpmPropertyText NameProperty = new BpmPropertyText();
NameProperty.Text = "The ScoreCard";
AScoreCard_wows.Name = NameProperty;
AScoreCard_wows.Description.Text = "This Scorecard was created by code";
// Setting the owner property
AScoreCard_wows.Owner.Login = @"Server\Administrator";
// Configuring the scorecard view
ConfiguredView ACofiguredView = new ConfiguredView();
GridViewDefinition ParentChildDefinition = new GridViewDefinition();
GridHeaderItem ParentX = new GridHeaderItem();
AGuid = Guid.NewGuid();
ParentX.Guid = AGuid;
ParentX.DefinitionGuid = AGuid;
ParentX.DisplayText = "ParentX";
ParentX.DimensionName = "Scorecard__";
ParentX.DimensionValue = "cd30315e-bd40-4977-b21b-cbb47cc83494"; // Guid of KPI
ParentX.HeaderType = ScorecardNodeTypes.Kpi;
ParentX.Depth = 1;
GridHeaderItem ChildX = new GridHeaderItem();
AGuid = Guid.NewGuid();
ChildX.Guid = AGuid;
ChildX.DefinitionGuid = AGuid;
ChildX.DisplayText = "ChildX";
ChildX.DimensionName = "Scorecard__";
ChildX.DimensionValue = "e9ec1e6b-8c7e-4f7d-b87d-28cad4b29d7f"; // Guid of KPI
ChildX.LinkedKpiId = new Guid("e9ec1e6b-8c7e-4f7d-b87d-28cad4b29d7f");
ChildX.HeaderType = ScorecardNodeTypes.Kpi;
ChildX.Depth = 2;
GridHeaderItem ChildY = new GridHeaderItem();
AGuid = Guid.NewGuid();
ChildY.Guid = AGuid;
ChildY.DefinitionGuid = AGuid;
ChildY.DisplayText = "ChildY";
ChildY.DimensionName = "Scorecard__";
ChildY.DimensionValue = "8878d533-b7b7-40f7-8772-4da81c54c85b"; // Guid of KPI
ChildY.LinkedKpiId = new Guid("8878d533-b7b7-40f7-8772-4da81c54c85b");
ChildY.HeaderType = ScorecardNodeTypes.Kpi;
ChildY.Depth = 2;
GridHeaderItem ActualColumn = new GridHeaderItem();
AGuid = Guid.NewGuid();
ActualColumn.Guid = AGuid;
ActualColumn.DefinitionGuid = AGuid;
ActualColumn.DisplayText = "Actual";
ActualColumn.DimensionName = "Scorecard_Measures__";
ActualColumn.DimensionValue = "Actual"; // Guid of KPI
ActualColumn.HeaderType = ScorecardNodeTypes.KpiActual;
ActualColumn.Depth = 1;
GridTargetSettings ActualColumnTargetSettings = new GridTargetSettings();
ActualColumnTargetSettings.ShowImage = true;
ActualColumnTargetSettings.ShowScore = true;
ActualColumnTargetSettings.RollupType = RollupTypes.AverageWeighted;
ActualColumnTargetSettings.ScoreType = ScoreTypes.Normalized;
ActualColumn.TargetSettings = ActualColumnTargetSettings;
GridHeaderItem TargetColumn = new GridHeaderItem();
AGuid = Guid.NewGuid();
TargetColumn.Guid = AGuid;
TargetColumn.DefinitionGuid = AGuid;
TargetColumn.DisplayText = "Target";
TargetColumn.DimensionName = "Scorecard_Measures__";
TargetColumn.DimensionValue = "Target"; // Guid of KPI
TargetColumn.HeaderType = ScorecardNodeTypes.KpiTarget;

TargetColumn.Depth = 1;
GridTargetSettings TargetColumnTargetSettings = new GridTargetSettings();
TargetColumnTargetSettings.ShowImage = true;
TargetColumnTargetSettings.ShowScore = true;
TargetColumnTargetSettings.RollupType = RollupTypes.AverageWeighted;
TargetColumnTargetSettings.ScoreType = ScoreTypes.Raw;
TargetColumn.TargetSettings = TargetColumnTargetSettings;
ACofiguredView.GridViewDefinition = ParentChildDefinition;
// Publishing the ScoreCard

How Performance Point Scorecard Objective value is rolling up

Did you ever wonder how to PPS Actually Calculating the Objective KPI value inside a scorecard.

Okay Actually it’s……. (Count)

for example if we have 10 KPIs that are rolled to a specific Objective

These KPIs colors was

4 = Green
3 = Yellow
3 = Red

The Result Color for this Initiative is (Green)

if the KPIs has different weights that calculations may change

if you have a single KPI and it weights 90% of this Objective the color of this KPI will control the color of the Objective

How to install Windows SharePoint Services 3.0 SP1 on Vista x64/x86

f you are a developer for SharePoint your best friend has been Virtual PC or VMWare. It’s time to introduce a new friend, Bamboo Nation’s SharePointOnVista J

We have put together an installer that allows you to install WSS3.0 SP1 on Vista, both x86 and x64.  This will allow you to develop on your workstation with all the power of a non virtualized environment. You still need VPC and VMWare so don’t feel sorry.

There’s been much discussion about SharePoint being a "bad" development platform. This will remove the objection that you NEED to develop on a Server OS.  I think we all as SharePoint developers have built our “virtualization skills” to a comfortable level now so it’s time to give us a break 😉

So please download the setup helper and try it out. I really want to hear from you about problems you encountered so we can fix them.  Please leave your comments here or we can discuss in this forum. It would be nice to hear about successful installations too J

UPDATE: If you run Windows Vista Home Premium IIS only supports Basic Authentication. Therefore you MUST manually enable Basic Authentication in the IIS management console. 

UPDATE: John McBride has posted a solution for all of us that runs Vista 64 bit so we can install the new VSeWSS 1.2 with support for VS 2008. Just go here to see how to solve it. Thanks John!

You no longer need this workaround since the latest version of VSeWSS 1.3 CTP supports 64bit operating systems and we have successfully installed it on both Vista and Windows7. Look at this post for more information.

UPDATE: Jim Parshall has created a detailed video tutorial that walks you through everything you need to do to get WSS running on Vista. It’s pretty big so it takes a while to download but it’s well worth it. Click here to get the video. Thanks Jim!

UPDATE: If you are installing on Windows 7 RC (build 7100) you need to read this post before continuing.

Current limitations:

  • You must select the Advanced option during install.

  • If you want to run on SQLExpress, manually install it first.  Get it here.

  • You have to manually enable IIS7 with the proper options (explained).

  • Your workstation has to be part of a domain. UPDATE: This is not required.

Here’s how you install it.

First download the installation helper and the correct version of WSS with SP1.

Windows SharePoint Services 3.0 with Service Pack 1

Windows SharePoint Services 3.0 x64 with Service Pack 1

Go here to download our Setup Helper file

Now run the setup helper (WssVista.msi).


You will see an UAC prompt select Continue to proceed with the installation.

Once the install has completed you will find the SetupLauncher.exe in the install location you selected. If you didn’t change the default option you will see it under the directory ..\Program Files\WssOnVista\Setup

Configuring IIS7

Before we go any further we need to make sure IIS7 is installed with all required options .

Go to Control Panel and click Programs.

Under Program and Features click Turn Windows features on or off.

Under Windows Features select Web Management Tools and World Wide Web Services. Enable at least the following options and choose OK.

Wait until Windows has configured all options.

Installing Windows SharePoint Services 3.0 SP1 on Vista.

After completing the above steps it’s time for the interesting part. Locate SetupLauncher.exe and start it. You will once again see an UAC prompt, select Continue.


After the SetupLauncher run, select the WSS installation file Sharepoint.exe, or the MOSS installation file, and click OK.  First, the package will be extracted.

After the files have been extracted the WSS setup program will be started.

The current version only supports the advanced installation option so select that one.

Select Web Front End when asked about Server Type. The database will be created later.

(If you are installing MOSS select the option which installs all services on the Web Front End)

Sit back and relax while SharePoint is being installed, you are running Vista remember 😉

Hopefully you will see the following screen at the end of the installation. If you would get an error during the installation step try to run a Repair.

Leave the checkbox checked and click Close to run the Configuration Wizard.


At the second screen select the option to create a new server farm.


Specify your database server (e.g. MYLAPTOP\SQLEXPRESS) and account information.



Let the Configuration Wizard do it’s work.


And you should end up with this screen, congratulations!



The final result is WSS running on Vista, Enjoy!


Note: Remember that this is a "beta" product tool from Bamboo.  Do not use it for any production work, as well as the usual "backup your system before install this program".  Obviously, running WSS v3 or MOSS on Vista is not a supported environment by MS. 

UPDATE: Additional discussions and solutions on instalation issues can be found in this forum.

UPDATE:  If you run Vista Home Premium you have to enable Basic Authentication in IIS, if you don’t you will only see a blank page.

Here’s how to do it:

Open up IIS management console and Enable Basic Authentication. You have to do this for ALL Web Applications you are creating.


Windows 7 RC2 Build 7201 ( 6.1.7201.0.090601-1516) Out

Build String is 6.1.7201.0.090601-1516, indicates that the build was compiled just a few days back, exactly on June 1, 2009, at 3:16 PM. Since the build 7200 is very close to RTM, we can expect better performance and stability from this.

However, note that downloading or installing leaked builds are not recommended as they might be infected with malicious code. In our opinion, if at all there is a RC2, we should hear an official announce soon.