none
Setting Interim Plans in Projects with Linked Subprojects RRS feed

  • Question

  • I'm trying to set an interim plan on a master project that contains a linked subproject.  I created an interim plan in the master project, which saved the scheduled start/finish dates into the designated start1/finish1 fields for all of the master project tasks, but NOT for any of the subproject tasks (which appear as subproject tasks in the master project).  The start1/finish1 dates for the subproject tasks simply appear as "NA".  Am I doing something wrong?  

    Thanks,

    Bill

    Wednesday, August 8, 2018 7:45 PM

Answers

  • Bill,

    Not wrong necessarily, but your process is incomplete. In a dynamic master the subprojects are not actually part of the master, rather the master contains pointers to each of the subprojects. So when you copied your interim plan dates they only copied at master level. You will need to individually set the interim dates in each subproject file.

    Hope this helps.

    John

    Wednesday, August 8, 2018 8:09 PM

All replies

  • Bill,

    Not wrong necessarily, but your process is incomplete. In a dynamic master the subprojects are not actually part of the master, rather the master contains pointers to each of the subprojects. So when you copied your interim plan dates they only copied at master level. You will need to individually set the interim dates in each subproject file.

    Hope this helps.

    John

    Wednesday, August 8, 2018 8:09 PM
  • Thanks John, it helps to know what I can't do but I'm still puzzling about what I can do. 

    What I'm trying to do is figure out how to show (at a glance) what has happened between Last Update's schedule and This Update's schedule.  Thinking that I could use the interim plan feature as a tool for this, I saved Last Update's Scheduled Start/Finish dates into Start1/Finish1 dates as via an interim plan (as described in my opening question, above). Then I wrote a formula ( = [Scheduled Start]-[Start1] ) into a custom number field so I could compare Last Update's interim plan's Start1/Finish1 dates with any of This Update's revised Scheduled Start/Finish dates in that custom field as a positive or negative number.  Not being able to set an interim plan in the master project which also stores that interim plan info for a subcontractor's subproject to seems to thwartthis effort.  I could ask the contractor to include this custom field/ formula in his updates to me, but I'd prefer to be able to calculate/track the movements myself, if possible.

    Any thoughts?

    Thanks,

    Bill

    Thursday, August 9, 2018 12:11 PM
  • Bill,

    Yes you could require that each contractor insert your custom field formula and save an interim plan after each update. Or, you could have each contractor save a new baseline after each update, (assuming you're not tracking overall plan metrics which is what the baseline data is for), and then look at the Start and Finish Variance fields which are built-in fields that do exactly what your custom field formula does except with the baseline data.

    But, here's another approach that might work as long as contractors are not adding, deleting or moving tasks around in the subproject. As I mentioned in my response on your other post, linked structures in Project are fragile and prone to corruption. Unless you have a compelling reason to use a dynamic master, a safer approach is to create a static master. A static master is created by un-checking the "link to project" option in the lower right corner of the Insert Project window. That will create a separate unlinked file that is a snapshot in time of all the projects inserted into it. Since it is a snapshot in time, you will have to create a new static master each reporting period. Given the caveat in the first sentence, you can then use Project's Compare Projects utility to see changes between two successive static masters. Why the caveat? Because the Compare Projects utility uses the Unique ID field as an index to compare changes in two genetically related Project files. When a static master is created a whole new set of unique IDs is created and if any tasks were added, deleted or moved in any subproject, that unique ID sequence in the new static master will be off.

    Too much effort? Then yes, I have yet another approach. Although you cannot directly set an interim plan for a subproject at master level, you can do it with VBA. It's a very simple macro but it would require you to save changes to actually get the change into the subproject so it will be there when you next look at an update.

    Those are my thoughts.

    John
    Thursday, August 9, 2018 4:32 PM
  • Thanks John,

    The first idea (using Baselines) would be difficult because I will want the contractor to have an "official" baseline for commercial reasons.  He can set another 10 baselines before MS Project hits its limit.  Since the updates will come each week, he could reuse baselines 1-10 over and over, but I can see that getting administratively out of control, especially if there are change orders that would result in a second or third "official" baseline.

    As far as your second suggestion, I fully expect the contractor to add and possibly delete activities as the job progresses, which would remove this suggestion's efficiency because of your caveat.

    As for your third idea, how can I learn more about VBA and how to use it?

    Thanks again,

    Bill

    Thursday, August 9, 2018 5:59 PM
  • Bill,

    Okay, smart choice. if you want to get started with VBA, I highly recommend Rod Gill's book on the subject. You can get more information at:

    http://www.project-systems.co.nz/project-vba-book

    Meanwhile, the macro below will do a few things. It will first copy dates from the Scheduled Start and Scheduled Finish fields to the Start1 and Finish1 fields of all tasks in the master and then it will do the same for all tasks in each of the subprojects. It will also create your formula in the Number1 field such that it will apply at both master and subproject level. When you close the master, just say "yes" to all questions about saving changes.

    John

    Sub CaptureInterim()
    'written by John - Project 8/9/18
    Dim t As Task
    Dim sp As Subproject
    OutlineShowTasks expandinsertedprojects:=True
    CustomFieldSetFormula FieldID:=pjCustomTaskNumber1, _
        Formula:="[scheduled start]-[start1]"
    CustomFieldPropertiesEx FieldID:=pjCustomTaskNumber1, _
        Attribute:=pjFieldAttributeFormula, SummaryCalc:=pjCalcFormula
    For Each t In ActiveProject.Tasks
        If Not t Is Nothing Then
            t.Start1 = t.ScheduledStart
            t.Finish1 = t.ScheduledFinish
        End If
    Next t
    For Each sp In ActiveProject.Subprojects
    CustomFieldSetFormula FieldID:=pjCustomTaskNumber1, _
        Formula:="[scheduled start]-[start1]"
    CustomFieldPropertiesEx FieldID:=pjCustomTaskNumber1, _
        Attribute:=pjFieldAttributeFormula, SummaryCalc:=pjCalcFormula
        For Each t In sp.SourceProject.Tasks
            If Not t Is Nothing Then
                t.Start1 = t.ScheduledStart
                t.Finish1 = t.ScheduledFinish
            End If
        Next t
    Next sp

    End Sub

    Thursday, August 9, 2018 8:56 PM