Skip to main content

#projectserver Generic Resources with 0% capacity skew FTE calculations in resource plans

** Update **
Having looked at the data, the general rules are now 

  • Dont use TAP flag unless it is explicitly for the Team Assignments functionality (which no-one uses anyway)
  • And if you want to use Generic Resources on Resource Plans using FTE planning, make sure (for now) that they have some capacity, and design this out of your capacity planning reports.

Generic Resource Capacity

in times gone by I have picked up the habit of using the "Team Assignment Pool" flag on Generic Resources to avoid setting the Max Units to 0% and still have zero capacity for the resources in the RDB.  This was a throwback to the heady days of PS2007 and its complete lack of stability (0% resources used to cause havoc when using the Assign Resources dialogue in MS Project).

It looks as if this is a habit I am going to have to break.

Today I have found a new issue in Resource Plans on PS2013 where setting the Team Assignment Pool OR setting Max Units to 0% on a resource has a negative effect on the FTE calculation.


  • Create three generic resources (r1, r2, r3)
  • set R1 with Max Units = 0% and Team Assignment Pool is No
  • set R2 with Max Units = 100% and Team Assignment Pool is Yes
    These are the two trouble settings
  • Set R3 with Max Units = 100 and Team Assignment Pool is No
    this one should work fine
Now create a new project and assign these three resources to the Resource Plan
  • Set Timescale = Weeks
  • Set units = FTE
Now enter one FTE for each resource across the periods and save

Now, when switching Units to Hours you will see two of the resources (R1 and R2) will have more hours per week than R3.  In my environment, R3 had 40 hours per week and R1/2 had 54 (no idea where 54 came from)

So this takes us into some further thinking on this:
  • How on earth is the FTE calculation working this out?
  • Does PS now assume Generic Resources do not have capacity elsewhere in the tool (such as the little used and mostly redundant Resource Availability chart, MSP_EpmResourceByDay capacity data, OLAP, etc) as this will have a significant bearing on how we use Generic Resources going forward.

In my mind Generics are buckets of planned work.  They do not have capacity in most scenarios.  They may (or may not) be used as Team Assignment Pool resources (if the functionality was useful).  They should not be included in Capacity calculations but MUST contribute towards the total Team demand.  I have never found another useful "capacity" based solution for these guys, so why on earth do we continue with capacity numbers for them.

So, a word to the wiser.  If you want to use Resource Plan FTE scheduling, leave your generic resources with capacity or see strange results.

I am going to go find out whether i need to update my capacity planning reports now :(

I decided to do a quick check on what exactly 2013 is doing from a Generic Capacity perspective these days

  • The use of Team Assignment Pool removes the resource completely from the MSP_EPMResourcebyDay table so no capacity can be held.  This is probably a tad extreme and could break some reports where joins don't allow for this
  • Use of 0% Max Units zeros capacity in the ByDay table as you would want, and doesn't seem to cause any issues with assigning resources (I didn't expect it would any more, but it's always good to check).  
  • User of >0% Max Units adds capacity to the resource data as you would expect.


Popular posts from this blog

#projectserver2013 VIEW FAILURE: The view failed to load. Press OK to reload this view with the default settings. Press cancel to select another view.

** UPDATE ** includes notes relating to secondary bug where Timesheet is created without Administrative tasks.

Does this ring any bells?

This has been bugging me for months, but finally I have a repro for this:

Issue Summary:  When a task is deleted from a plan that is approved into a previous or current timesheet - even when there are no actuals on the task - you can no longer view the timesheet

The following repro has been proven:
- Setup system with Single Entry Mode, with enforced Status Approval before Timesheet Approval
- Create resource as own timesheet manager
- Create new project
- Create two tasks in the same week, starting monday with 5 days duration:  1) Task to assign actuals, 2) Task to delete post submission
- Assign Resource to tasks
- publish project
- as Timesheet User, go to the appropriate timesheet period for the tasks created
- Assign actual work to one task (task 1), leaving task 2 with no actual work
- Submit timesheet
- as Project Status Manager, approve the time on task 1 …

What to do when your application server goes bang

What happens when someone kills your Application Server?
So imagine the scenario:
Three Server Solution - SQL - SharePoint 2010 and Project Server 2010 Application Server (Central Admin Host) - Wfe/ReportServer
We wake one bleary Monday morning to find that some numpty has killed the application server and the users are baying for blood.
Well surprisingly SharePoint handles this disaster recovery scenario particularly well.  Well.  Better than I thought it would to be honest.
Rough steps:
- quick SQL backup to be safe - Rebuild your application server - reinstall pre-reqs - reinstall SP, PS, SPFSP1, SPS+PSSP1, Cumulative Update and other stuff you usually put on there. - Run your configuration wizard to reattach to the Farm, and select Host CA Site
The last step was what I was VERY wary of.  Would the server simply reattach to the Farm, even when there is no CA server available?  
Bingo your back.... almost.... you are going to get errors a-gogo in your event log as things just aren't quite back…

Reporting from Project Server 2016 - multiple sites and userviews

Just a quickie...
I've been interested in how MS have handled the "multiple PWA sites in a Content DB" thing since I read that this was their new approach.  Most of my reporting is via SSRS so i am reliant (still... in 2016) on DB queries rather than OData feeds (tsk) and this "querying a PWA DB with more than one PWA site in it is unsupported" quote was worrying me.

So it looks like what is happening is this.

When you create the first PWA site in a Content DB it hard-codes the SiteID into the _Userview view design elements.  This means that your first PWA Site is the default.  All the data for subsequent sites are still held in the tables against separate SiteID's but you cannot utilise the OOTB _Userview components (see below)

SELECT        ProjectFields....
FROM            pjrep.MSP_TVF_EpmProject('FF19B767-CA6D-4C4C-B123-C0B5AE5354D6') AS MSP_EpmProject