Skip to main content

Quick and dirty "Portfolio Gantt" report

We all like Project Centre, with its lists of projects and useful fields, but sometimes you just want it to do a little more.  For example:
- what if you could display some key milestones on the gantt
- what if you could easily display colour-coded gantt bar by phases.

The second point above (or variant of)  has been requested so many times and as of yet I have not seen anyone deliver such a report or view, so I decided to give it a go.

Now, before we go ahead, the following is done with no coding and no complex Reporting Services reports.  I am sure (and have seen) some amazing report views in SRS similar to this requirement, but this is a Proof of Concept solution.  Go work out your own way :P

So, a Portfolio Report:

- Excel
- SP2010 Farm with Excel Services configured
- an ODC
- Some formulas
- Some conditional formatting

Step 1:  Define
This PoC is done working on the following:
- There are 5 Phases for each project
- The Gantt should include coloured bars by each of the 6 phases for the project
- This should update automagically based on current planned dates
- The date periods should be weeks across the columns

Note:  In this scenario I haven't added any other Project Categories into the Table view, or report filters.  I may get onto this later when defining the ODC connection

Step 2:  mockup in excel
- Create a new file
- Create a table to include the following columns.  This will be the basis for the data connection data later:
  1. Project Name (COL B)
  2. Phase 1 Start (COL C)
  3. Phase 1 finish
  4. Phase 2 Start
  5. Phase 2 Finish
  6. ......
  7. Phase 6 Finish (COL N)

Now in adjoining colums to the above table, create the same number of columns (two for each phase), using data formatting of Number, and reference the first set of colums, so:
  1. IF([COL C] = "","",[COL C]
  2. IF([COL D] = "","",[COL D]
  3. etc
  4. IF([COL N] = "","",[COL N]
So now we have

Now we want to set up our timephased column headers.  Initially we will do this manually so:

- on your first available column, enter the date you wish to start from:
- then on the next column, same row, create a formula to add 7d to the previous date
- copy this formula field to the right as far as you wish the report to go.
- once done, create a formula in the cell row above the dates entered (ive done this in Row 2), and convert each date to a number field (as we did before)

Now then.  How do we colour scheme our table by phase?  we are going to write a nested IF Statement that compares the Date Value fields for each phase (created in the second image above) to the column date value created in the step previous to identify whether the formula will result in:
"1" = Phase 1
"5" = Phase 5

Note: In this example, one phase can only happen in one week.

The formula:

$P7 = Project Phase 1 Start
$Q7 = Project Phase 1 End
$AA7 = Phase 6 End
AB$2 = the timephased period in column AB2 (the first date period)

Now copy this formula down the column to the bottom of the table, and across to the end of the timephased period defined 

Now we will do the conditional formatting on the timephased periods:

Now once this report is published to a SP2010 report library it looks like this:

Next Steps:

- Add a Current Date marker
- Make this a live report by connecting the Excel file to a SP2010 Data Connection and Project Server 2010 Reporting Database
- Improve on formatting


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