Even More Hot Air

Just thought I’d drop a quick note to mention a couple of upcoming speaking engagements.  Come on out if I’ll be in your neck of the woods…

  • 5/1 – Raleigh, NC  – MPUG – Real World Reporting
  • 6/6(ish) – Houston, TX – PMI Houston Expo – Organizational Fractals
  • 6/14 – Orlando, FL – TechEd NA – Real World Reporting (again)

…and looking forward to seeing the Houston folks at the upcoming SharePoint Saturday.

Even More Hot Air

Baseline Save Permissions Blocked in Newly Created Projects

Today’s post explores a bug that I’ve now run into in a couple different implementations, and finally got around to examining.  Thanks to Rocky, the SysAdmin I’ve been working with for isolating the behavior.

First off, this bug only should impact you if you have project managers creating schedules from templates within Microsoft Project Professional.  Essentially, the bug represents in two forms:

  1. The project manager opens Microsoft Project while connected to Project Server.
  2. The PM creates a new project from a template.
  3. The PM configures the schedule.
  4. The PM saves the baseline for the project.
  5. The PM performs the initial save of the project file.
  6. The baseline data is wiped out.

The second form goes as follows:

  1. The project manager opens Microsoft Project while connected to Project Server.
  2. The PM creates a new project from a template.
  3. The PM configures the schedule.
  4. The PM performs the initial save of the project file AND does not close the file.
  5. The PM saves the baseline.
  6. An error message appears with “You do not have adequate permission to clear or save baselines 0-5.”


My best guess is that this has something to do with the security categories.  Typically, a PM will only have permissions to save baselines on projects within the My Projects category – which is usually defined as those projects on which the user is the owner or a status manager.

When creating the project from a template, for some reason, the project still belongs to the My Organization security category – until the file has been closed, checked in, and reopened.  Once the file has been reopened, none of these issues manifest.

Hence, you’ll only see these issues if your project managers baseline the file immediately upon opening – for instance in a case where you have many, smaller projects that follow a very simple format.

Luckily, there’s an easy workaround to implement should this issue impact you.  In a typical security setting, go to the My Organization security category.  Select the project manager security group, and assign it permissions to Save Protected Baselines.


As the PM won’t have Save Project permissions in the My Organization category, in theory, this permission shouldn’t cause any issues in most Project Server deployments.  Setting the Save Protected Baselines permission to “allow” will eliminate any potential issues with baselining templates.

Baseline Save Permissions Blocked in Newly Created Projects

Resource Plans and Portfolio Analysis

First off, thanks to everyone who came to the recent Project Conference in Phoenix.  One thing that I was surprised at with this conference was how many people had actually downloaded the white paper I wrote last year on the Portfolio Analysis module within Project Server 2010.  I literally had folks come up to me in the hotel elevator and mention that they had the document as required reading within their organizations.

So I figured, I’d write this post as a supplement to that paper.  At some point, it’s probably a worthwhile exercise to simple re-release the paper with additional content from the last 12 months or so.  I’m sure that I’ll do that at some point.  In the meantime, please consider the information below to constitute the current draft of Portfolio Analysis v2.

Links to Existing Content

  1. The white paper itself – a business user guide to using the Project Server portfolio analysis module.
  2. A half-hearted attempt at listing errata and issues with that paper – check the comments section.  Feel free to add your own.  I don’t mind.
  3. Modeling Portfolio Resource Capacity with Generic Resources
  4. Manually Prioritizing Projects with Custom Fields

….and read further for the next addition to that content, defining the interaction of resource plans and the Portfolio Analysis module.

Resource Plans and Portfolio Analysis

Let’s kick this off with a quick review of Resource Plans.  Here’s the semi-official link to the Microsoft blog on the topic.

From my perspective, the Resource Plan is like making a reservation for a specific resource.  It’s like setting a reservation on a table at a restaurant, like saying that I’ll need 50% of a developer for the next 6 months to support this project.  Many organizations use these Resource Plans to do demand planning, i.e. to assign resource types before the specific resource has been identified – or more commonly, to book a specific resource before the actual project plan has been decomposed into a schedule.

So with that being said, how do Resource Plans interact with the Portfolio Analysis module?  The main setting to review in this case is the toggle that determines where resource availability is calculated from:


If you select Calculate From Resource Plan, then you will observe that the resource plan calculates pretty much the way you would expect it to, i.e.:

  1. If the resource is assigned to a project task AND the project is not included in the Portfolio Analysis, then the assignment is decremented from resource availability – but will not show up in the demand calculations.  (See the section in the white paper on phantom projects on page 40 or so.)
  2. If the resource is assigned to a project task AND the project is included in the Portfolio Analysis, then the assignment is not decremented from resource availability – but does show up in the demand calculations.

On the converse side, if Calculate from Project Plan is selected, the project will behave pretty much like any other project in the Portfolio Analysis module.

So the moral of the story…when using Portfolio Analysis and Resource Plans, make sure the Calculate From settings are configured appropriately.

Resource Plans and Portfolio Analysis

Depicting Detailed Timeline Views with Visio Reports

This is a question that’s come up before, i.e. how to depict a detailed (but not too detailed) summary timeline of project data in SharePoint.  In fact, I’ve even blogged it before (here for standalone projects, and here for portfolio timelines).


Seeing as I had to develop an example for the recent Project Conference, I figured it was worth revisiting.  This is pretty much the same story, but has been streamlined a bit to make it easier to use.

Below is another screenshot.  The format is different than the timeline view above, but the technique to develop should essentially be the same.


Preparing the Visio File

After a couple tries, I figured the easiest thing was to take an offline copy of the project schedule, then import it into one of the Visio schedule views. 


That yields something like this.


Preparing the ODC File

From here, it’s a simple step to prepare the ODC file.  In previous incarnations of this exercise, I simply imported the data and then manipulated it within Visio.  This time around, I realized it’s easier to just modify the ODC to bring the data in the right format into the Visio file.  The main thing we do with this ODC file is convert the field names to map to the out of the box fields built into the Gantt Chart.

Here’s the SQL query…

SELECT     dbo.MSP_EpmProject_UserView.ProjectName AS Project, dbo.MSP_EpmTask_UserView.TaskName AS Name, 
                      dbo.MSP_EpmTask_UserView.TaskStartDate AS [Start Date], dbo.MSP_EpmTask_UserView.TaskFinishDate AS [End Date], 
                      dbo.MSP_EpmTask_UserView.TaskDuration AS Duration, dbo.MSP_EpmTask_UserView.TaskPercentCompleted AS [Percent Complete], 
                      dbo.MSP_EpmTask_UserView.TaskActualDuration AS [Actual Duration], dbo.MSP_EpmTask_UserView.TaskActualStartDate AS [Actual Start], 
                      dbo.MSP_EpmTask_UserView.TaskActualFinishDate AS [Actual End], CAST(dbo.MSP_EpmTask_UserView.TaskUID AS nvarchar(100)) AS UID
FROM         dbo.MSP_EpmProject_UserView INNER JOIN
                      dbo.MSP_EpmTask_UserView ON dbo.MSP_EpmProject_UserView.ProjectUID = dbo.MSP_EpmTask_UserView.ProjectUID
WHERE     (dbo.MSP_EpmProject_UserView.ProjectName = N'Acquisition Target Analysis')

The only hiccup here is that you have to add the filter for the project name into the ODC file.  There’s probably a workaround here to just create a universal ODC, but that seems the simplest route to get to where we’re going.

If that’s an issue for you, then some alternative approaches to try might include creating a custom SQL view with the appropriate field aliases.  I seem to recall Visio prompting the user to filter rows when I pointed it directly at a SQL database.  That might allow the user to control the project to be used.  There may also be a Visio VBA angle here, but I wouldn’t know where to begin.

Mapping the Data to Visio

Back in the Visio file, select the option to Link Data to Shapes.  Note that this option only appears in Visio Professional.  If you’re using Visio Standard, you’ll need to upgrade to get the option to connect to external data.


Select the option to connect to the ODC file.


Follow the default options until you get to the option to set the ID that Visio will use to map the data to the shapes whenever a refresh is triggered.  Set this to use the UID field in the ODC.


The data now appears in the External Data window at the bottom of the screen.  Go back up to the Ribbon and select the option to automatically link the data.  Map the data by the name.  This is only for the first time we map the data.  Any data refreshes will be controlled by the UID field.


The data is now linked to the shapes…..and will refresh based on the UID data field.  Save the file to Visio to leverage Visio Services to display.


Note as a caveat that the file has to be opened in Visio to refresh the position of the shapes.  The data will refresh automatically in Visio Services (if configured properly)….but the X or Y position of the shapes will not change until the file is opened in Visio and the data refreshed.

Extra Credit

If you really want to amaze your friends, note that you can connect the Visio WebPart to a list.  So for instance, as you click around on the Visio Webpart, you can send the name or UID of the item selected to another Webpart – then have the list display specific information about the selected item.

Depicting Detailed Timeline Views with Visio Reports