Skip to main content

Deriving Milestone RAG Indicators from tasks to the Project Center

updated on 10 Dec 2010 - MS1-Var-P field names were wrong.  Hope Ive got it right this time!!! - Carl
updated on 13 Dec 2010 - data types and task level rollups added to field definition (shame)


Problem

In the Project Centre you wish to show the status of your "Gateway" events that are held as Milestones in the project plans to provide a Milestone Summary view.  However there is no out of the box solution to doing this.

The Approach
Firstly you need a Task Level Custom Field that links to a lookup table that defines your milestones.  For Example:

Field Name = C3_Milestone Type
Lookup Table = Gateways
LUT List = MS1, MS2, MS3, MS4, MS5

For each milestone you want to report on in the Project Centre (MS1...5), create the following field structure:
Note:   -T represents task fields, -P represents project fields

- MS1 Switch-T
this is the control field that identifies the relevant task that is tagged with the Gateway = MS1 value (1), Baselined (2), Complete (4), not set (0)

IIf([C3_Milestone Type]="Phase.IT Specification and Design Complete",IIf([% Complete]=100,4,IIf([Baseline Finish]>56000,1,2)),0) 


Type = Number
Rollup = Max

Note:  you will notice 3 result isn't included.  I did this in case we needed a 4th State to be defined later

- MS1 Finish-T  
This field received the finish date of the task where the above flag has been enabled.  Note:  Rollup set to MAX

IIf([MS1-Switch-T]>=1,[Finish],"NA")



type = date
Rollup = max

- MS1 BaseFinish-T
As above but captures the baseline finish date. Note:  Rollup set to MAX

IIf([MS1-Switch-T]=2,[Baseline Finish],"NA")

type = date
Rollup = max

- MS1 Finish-P

this project field receives the finish date captured by the previous task level custom field

SWITCH([MS1 Switch-T]=0,"",[MS1 Switch-T]>=1,[MS1-Finish-T])

Type = date

- MS1 BaseFinish-P

this project field receives the baseline finish date captured by the previous task level custom field

IIf([MS1-Switch-T]=2,[MS1 BaseFinish-T],"NA")


Type = Date

** UPDATED **
 
- MS1-VAR-P
This field does a Date Diff between the Finish-P and BaseFinish-P fields

IIf([MS1-Switch-T]=2,([MS1 Finish-P]-[MS1 BaseFinish-P]),0)


Type = Text

- MS1 RAG
Here you can apply a formula to derive your RAG indicator based on the VAR field above.

IIf([MS1 Switch-T]=0,"Not Set",IIf([MS1 Switch-T]=4,"Complete",IIf([MS1 Switch-T]=1,"No Baseline",Switch([MS1-VAR-P] >20,"4 weeks late",[MS1-VAR-p] > 10 And [MS1-VAR-p] <=20,"2-4 weeks late",[MS1-VAR-p] >0 And [MS1-VAR-p]>=10,"<2 weeks late",[MS1-VAR-p] <=0,"On Track"))))


Type = Text

** deliberate mistake = the above formula should say >0 and <=10 (rather than >=10).  Sorry about that :/

The Result


** UPDATED **

CAVEAT:   it appears that the issue with incorrectly calculating tiered/dependant formulas when publishing via the PSI  has never been fixed.  Therefore any PWA based Publish MAY cause Gateway milestones to fail or show incorrect values (or no indicators).  Mileage may vary...

Comments

  1. Great Post Carl - really useful illustration of how to provide high level key milestone status. Did I miss something in that the screengrab at the end shows M1, M2 etc with Graphical Indicators, are these determined in your formula or in the traditional manner within the Custom Field Definition in Server Settings> Enterprise Data section?

    ReplyDelete
  2. The MS1-5 columns in the grab are actually the MS1-5 RAG fields defined above (I renamed them to make them more view-friendly!

    The indicators are defined in the Custom Field Definition section for each field. The graphical indicators are displayed for the results:

    If result of MS1 =
    "complete" show tick
    "not set" show dash
    "No baseline" show white circle
    2-4 Weeks late show Red circle

    etc.....

    ReplyDelete
  3. oooooops....
    Dominic just pointed out my error.... am editing the latter stages of the instructions now

    ReplyDelete

Post a Comment

Popular posts from this blog

TPG Apps Highlights - Risk Matrix #projectonline #projectserver #risk

This post is the first of a series to highlight the apps available for Project Server and Project Online from the SharePoint store  ( https://store.office.com/search.aspx?productgroup=SharePoint&qu=tpg ) and direct via your local TPG office. The first of this series will look at the s imple plug-and-play apps that all users of Project Online can make use of quickly and easily.   T hese are: Risk Matrix  Milestone Trend Analysis (MTA) WBS Chart viewer Next we will focus on the challenge of  Resource Request Supply and Demand by demonstrating our more recent TeamLink and TeamManager apps. Team Manager App is a Resource Manager/Owner app for allocating resource supply to Projects and BAU activities and monitoring demands against commitments Team Link App is a PM tool for monitoring Project demands vs the supply provided by the Resource Managers  Finally I will highlight some of the benefits of our integration tools when used in the context of Project Online

Restoring PWA Site to another Web App in the same Farm

The scenario is this: SharePoint 2016 Farm with Project Server Two Web Apps Development UAT One PWA on Development Web App. I want to copy the PWA Site on Development web app to UAT to support a testing cycle. As far as I knew there were two options: 1) Content Database Restore and Attach Process would be backup your Dev Content Database, Restore to a new Content Database for QA, then mount the database on the appropriate web app and your off.... Problem:  Although you can do this with the -AssignNewDatabaseID switch in Powershell (to avoid two content db's having the same database id) the Site Collection (PWA) in the db still retains its SiteID which means there is a duplicate SiteID in the Configuration Database.  This stops the PWA site being created and alllocated correctly and becomes essentially orphaned. This method is only any good for MOVING not COPYING Back to the drawing board... 2) Backup-SPSite / Restore-SPSite I didn't believe this w

Issues update on #projectserver2013 - Timesheets and Publishing

Reporting Publish ** updated with links to other related discussions, and a VBA macro ** the following issue has been noted on publish since June 13 CU was applied: ReportingProjectChangeMessageFailed (24006) - Object reference not set to an instance of an object.. Details: id='24006' name='ReportingProjectChangeMessageFailed' uid='4d869e56-f625-e311-bb41-005056b90052' QueueMessageBody='Project UID='e3f49977-b2bc-e211-8559-005056b90052'. PublishType='ProjectPublish'' Error='Object reference not set to an instance of an object.'. I have seen this noted previously on a similar issue: http://nearbaseline.com/blog/2013/06/ms-reporting-project-publish-jobs-failed-after-aprilcu/comment-page-1/#comment-14741 This is  caused by Baselined Milestones having NULL Baseline Cost values Original bug note with potential workaround is here: http://blogs.msdn.com/b/brismith/archive/2012/05/23/project-server-2007-reporting-project-pu