« May 2004 | Main | August 2004 »
Posted at 11:18 AM in Project Management | Permalink | Comments (0)
Both Project Server\Project Pro 2002 and Project Server\Project Pro 2003 now have Service Packs.
It is vital to remember that these service packs come in two parts: A server side install and then a client side install.
If you install only the server side part of the fix and do not install the client side you will NOT be getting all of the fixes. The same goes for the other direction. If you install only the client side and not the server side you will not be doing any good.
You MUST install both sides of the fix to really have SP1.
Posted at 03:00 PM in Microsoft Project, Project Server | Permalink | Comments (0)
Passed 10K today.
Of course showing up in the InfoWorld top deferrers list because of my Niku post sure helped. :-)
Posted at 05:25 PM | Permalink | Comments (0)
OK this is what happens when you write macros in the middle of the night. I found a few things wrong with the previous versions of the macro. It seems that it would count any complete task whose Baseline Finish date was before the Status date as a delivered promise. OOPS! :-)
I fixed this last night. But there are two versions. One that counts a task as a delivered promise if it's Baseline Finish is prior to the Status date AND it finished exactly on time (Actual Finish = Baseline Finish) and another version that counts a task as a delivered promise if the Baseline Finish is prior to theStatus Date AND it also finished prior to the Status Date even if that means it slipped past it's Baseline Finish.
Please give me some feedback on which one makes sense for you.
Thanks
Sub PPC_Basline_Dependant()
Dim P As Project
Dim T As Task
Dim Promised As Integer
Dim Delivered As Integer
Dim PPC As Long
Set P = Application.ActiveProject
'Check to see if there is a status date
If P.StatusDate = "NA" Then
MsgBox Prompt:="There is no status date for the project" & Chr(13) _
& "You must save a Status Date to calculate PPC"
End If
'Loop through all tasks
For Each T In P.Tasks
If Not (T Is Nothing) Then
'Check to see if the task has a baseline saved. If it does not then
'stop the macro.
If T.BaselineFinish = "NA" Then
MsgBox Prompt:="Task ID " & T.ID & " does not have a baseline saved" _
& Chr(13) & "You must save a baseline for all tasks to calculate PPC"
End
End If
'Check to see if the baseline finish is less than or equal to the status date
'If it is then increment Promised
If T.BaselineFinish = P.StatusDate Or T.BaselineFinish < P.StatusDate Then
Promised = Promised + 1
'Check to see if the promised task is complete.
'If it is then increment Delivered
If T.PercentComplete = 100 And (T.ActualFinish = T.BaselineFinish Or _
T.ActualFinish < T.BaselineFinish) Then
Delivered = Delivered + 1
End If
End If
End If
Next T
If Promised = 0 Then
MsgBox Prompt:="You have no tasks in the project that have been promised prior to the current Status Date"
End
End If
'Calculate PPC
PPC = (Delivered / Promised) * 100
'Loop back through and set Text 20 to be equal to PPC
For Each T In ActiveProject.Tasks
If Not (T Is Nothing) Then
T.Text20 = PPC & "%"
End If
Next T
End Sub
Sub PPC_Status_Dependant()
Dim P As Project
Dim T As Task
Dim Promised As Integer
Dim Delivered As Integer
Dim PPC As Long
Set P = Application.ActiveProject
'Check to see if there is a status date
If P.StatusDate = "NA" Then
MsgBox Prompt:="There is no status date for the project" & Chr(13) _
& "You must save a Status Date to calculate PPC"
End If
'Loop through all tasks
For Each T In P.Tasks
If Not (T Is Nothing) Then
'Check to see if the task has a baseline saved. If it does not then
'stop the macro.
If T.BaselineFinish = "NA" Then
MsgBox Prompt:="Task ID " & T.ID & " does not have a baseline saved" _
& Chr(13) & "You must save a baseline for all tasks to calculate PPC"
End
End If
'Check to see if the baseline finish is less than or equal to the status date
'If it is then increment Promised
If T.BaselineFinish = P.StatusDate Or T.BaselineFinish < P.StatusDate Then
Promised = Promised + 1
'Check to see if the promised task is complete.
'If it is then increment Delivered
If T.PercentComplete = 100 And (T.ActualFinish = P.StatusDate Or _
T.ActualFinish < P.StatusDate) Then
Delivered = Delivered + 1
End If
End If
End If
Next T
If Promised = 0 Then
MsgBox Prompt:="You have no tasks in the project that have been promised prior to the current Status Date"
End
End If
'Calculate PPC
PPC = (Delivered / Promised) * 100
'Loop back through and set Text 20 to be equal to PPC
For Each T In ActiveProject.Tasks
If Not (T Is Nothing) Then
T.Text20 = PPC & "%"
End If
Next T
End Sub
Posted at 05:22 PM in Microsoft Project | Permalink | Comments (0)
OK Bonehead move on my part. The macro I had posted for PPC had a flaw in it where if you ran it against a project with no tasks in it you got an OVERFLOW error. Sure, it will not be common for you to run this against an empty project but I should have trapped that and allowed for it.
It would also give you this OVERFLOW error if the Status Date was set to fall after ALL of the Baseline Finish dates in the project (so that there were NO promised tasks).
The new version below will check for empty projects before it runs and warn you about this. It also checks to see if the number of promised tasks is 0 and then notifies you if this is the case and stops the calculation.
(Again, the macro will look odd below because of formatting but it should paste into your VBA window nicely. Let me know if you have trouble and I will send it to you in an email.)
Sub PPC()
Dim P As Project
Dim T As Task
Dim Promised As Integer
Dim Delivered As Integer
Dim PPC As Long
Set P = Application.ActiveProject
'Check to see if there is a status date
If P.StatusDate = "NA" Then
MsgBox Prompt:="There is no status date for the project" & Chr(13) _
& "You must save a Status Date to calculate PPC"
End If
'Loop through all tasks
For Each T In P.Tasks
If Not (T Is Nothing) Then
'Check to see if the task has a baseline saved. If it does not then
'stop the macro.
If T.BaselineFinish = "NA" Then
MsgBox Prompt:="Task ID " & T.ID & " does not have a baseline saved" _
& Chr(13) & "You must save a baseline for all tasks to calculate PPC"
End
End If
'Check to see if the baseline finish is less than or equal to the status date
'If it is then increment Promised
If T.BaselineFinish = P.StatusDate Or T.BaselineFinish < P.StatusDate Then
Promised = Promised + 1
'Check to see if the promised task is complete.
'If it is then increment Delivered
If T.PercentComplete = 100 Then
Delivered = Delivered + 1
End If
End If
End If
Next T
If Promised = 0 Then
MsgBox Prompt:="You have no tasks in the project that have been promised prior to the current Status Date"
End
End If
'Calculate PPC
PPC = (Delivered / Promised) * 100
'Loop back through and set Text 20 to be equal to PPC
For Each T In ActiveProject.Tasks
If Not (T Is Nothing) Then
T.Text20 = PPC & "%"
End If
Next T
End Sub
Posted at 08:30 AM in Microsoft Project | Permalink | Comments (0)
It is common to have formulas in custom fields in Project 2002 or 2003 (Pro or Standard) that tests the value of a date field. Often this is testing the value of a Baseline date field for the display of a graphical indicator for a task being behind or ahead of schedule. The annoying part is that unless you properly test for the absence of a date you get a bothersome "#Error#" displayed in the field.
You can however test for the NA in a date field like this:
[Baseline Finish]=ProjDateValue("NA")
In context this would be used in the following formula used to drive a stop-light chart type graphical indicator:
IIf([Baseline Finish]=ProjDateValue("NA"),"No baseline",IIf(ProjDateDiff([Baseline Finish],[Finish])/480>=5,"Late by more than 5 days",IIf(ProjDateDiff([Baseline Finish],[Finish])/480>0,"Late","On schedule")))
Without the test for the NA date a task with no baseline saved would display the #Error# message.
Posted at 09:39 PM in Microsoft Project | Permalink | Comments (0)
Here is a first pass at the Percent of Promises Complete macro I talked about. It looks a little funny because of the way my blog is formatted but it pastes into the VBA window directly from the browser. If you have problems let me know via email ([email protected]) and I will send it to you in a text file.
Sub PPC()
Dim P As Project
Dim T As Task
Dim Promised As Integer
Dim Delivered As Integer
Dim PPC As Long
Set P = Application.ActiveProject
'Check to see if there is a status date
If P.StatusDate = "NA" Then
MsgBox Prompt:="There is no status date for the project" & Chr(13) _
& "You must save a Status Date to calculate PPC"
End If
'Loop through all tasks
For Each T In P.Tasks
If Not (T Is Nothing) Then
'Check to see if the task has a baseline saved. If it does not then
'stop the macro.
If T.BaselineFinish = "NA" Then
MsgBox Prompt:="Task ID " & T.ID & " does not have a baseline saved" _
& Chr(13) & "You must save a baseline for all tasks to calculate PPC"
End
End If
'Check to see if the baseline finish is less than or equal to the status date
'If it is then increment Promised
If T.BaselineFinish = P.StatusDate Or T.BaselineFinish < P.StatusDate Then
Promised = Promised + 1
'Check to see if the promised task is complete.
'If it is then increment Delivered
If T.PercentComplete = 100 Then
Delivered = Delivered + 1
End If
End If
End If
Next T
'Calculate PPC
PPC = (Delivered / Promised) * 100
'Loop back through and set Text 20 to be equal to PPC
For Each T In ActiveProject.Tasks
If Not (T Is Nothing) Then
T.Text20 = PPC & "%"
End If
Next T
End Sub
Posted at 10:15 PM in Microsoft Project | Permalink | Comments (0)
Hal Macomber has a great point in the comments on this Project 101 tip from earlier this week.
He mentions a measure called PPC or Percent of Plan (or Promises) Complete. It's formula would be (would be because it is not really a field in Project) is Promised Tasks Complete/Tasks Promised.
This would be a measure of reliability. A schedule promises 20 tasks would be complete by a specific date and th8is measure would tell how many actually were completed.
I'm going to work on building a VBA macro that will calculate this measure for Project. I will keep you up to date on the status.
Posted at 06:26 PM in Microsoft Project | Permalink | Comments (4)
One of the most common things that cause new users of Project Server issues when connecting has to do with IE security settings.
Project Server requires the Project Server url to be in the IE Trusted Sites Zone and that the Security level for the Trusted Sites zone be set to LOW.
Remember that users of PWA and users of Project Pro must add the url for the Project Server to their Trusted Sites Zone AND that zone must be set to LOW for security.
Posted at 06:13 PM in Project Server | Permalink | Comments (1)
One of the more common questions among those new to Project is "Why are there two percent complete fields and what are the differences between them?"
Well there are two because they measure two different things. One measures the completeness of a project or task duration (Percent Complete) and the other measures the completeness of a project's or tasks work.
Work is the "person hours" of effort required to complete a task or project while duration is the number of calendar days within which the work will be done.
Percent Complete = (Actual Duration / Duration) * 100
Percent Work Complete = (Actual Work/ Work) * 100
If a tasks work is being completed as scheduled then these numbers will be the same. However, if the Actual Work is being recorded at a slower rate than scheduled then the Percent Work Complete will lag behind the Percent Complete. For example: A 1 day duration, 8 hour Work task has 4 hours of Actual Work recorded against it on the first day the Percent Complete will be 67% while the Percent Work Compete will be 50%. This is because the duration will become 1.5 days when Project pushes the remaining 4 hours of work out into the next day.
It is a good idea if you are new to Project and are unsure of the differences to open Project and work with these values so you understand the way they work.
Posted at 07:50 PM in Microsoft Project | Permalink | Comments (2)