More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  The Project Server GuruPhotosProfileFriendsMore Tools Explore the Spaces community

The Project Server Guru

Paul Conroy

View spaceSend a message
Occupation:
Age:
Location:
I previously worked for Microsoft Consulting Services in New Zealand as an EPM Consultant, where I helped deploy Project Server and Portfolio Server to customers throughout the Asia Pacific Area.

I've been lucky enough to speak at the Project Server Conference in Seattle in 2007 and have co-delivered the EPM session at Microsoft Tech-Ed NZ in 2006 & 2007.

My current Microsoft Certification Status is

MCITP EPM
MCITP SQL 2005 DBA
MCITP Server Admin
MCT
MCTS Project Server 2007 Config
MCTS Office SharePoint Config
MCTS WSS Config
MCTS Server 2003 Hosting
MCTS Performance Point
MCP Project Server 2003
MCP Windows XP
July 16

SharePoint/Project Infrastructure Updates Ships

The following pre-SP2 hotfixes where released today:-
 
Infrastructure Update for Office Servers  http://support.microsoft.com/kb/951297
Infrastructure Update for Project (Client)  http://support.microsoft.com/kb/951547
Infrastructure Update for SharePoint Services  http://support.microsoft.com/kb/951695
 
It's not a pre-req, but I'd strongly suggest applying SP1 before installing these hotfixes.
 
Be sure to read the installation guides thoroughly before attempting the install.  The general process is:-
 
  • Install Client Updates (there are some dependencies between server/client hotfixes, also new ActiveX controls)
  • Install WSS Hotfix.
  • Install MOSS Hotfix.
 For a full list of new features download this paper http://go.microsoft.com/fwlink/?LinkId=121912.
July 14

VBA - Before Save Event - Cont'd

A customer asked me to create a macro which prompts the user to save a baseline each time the plan is saved.  Pretty straight forward, or so I thought!
 
It turns out that the "Before-Save" fires not only when a plan is being saved, but also when the application is exited.  This had the effect of prompting the user to save a baseline twice (on save and on exit).
 
Thanks to some help from Rod Gill, we came up with the code below to get around this behaviour:
 

'check that a project is loaded

If Not pj Is Nothing Then

    'check whether the plan has been previsouly saved

    If ActiveProject.LastSaveDate <> "" Then

        'was any previous save less than 15 mins ago

        If DateDiff("n", ActiveProject.LastSaveDate, Now) < 15 Then

            'prompt user to save baseline

            Dim msg As Integer

            msg = MsgBox("Do you wish to save an interim baseline?", vbYesNo, "Save Baseline")

            'if response is yes then save baseline 10

            If msg = vbYes Then

                BaselineSave All:=True, Copy:=0, Into:=20

            End If

        End If

    End If

End If

 

It turns out that the "Before Save" event fires when exiting the application (assuming it's connected to an instance of Project Server) as a result of saving a cached copy of the Ent.Global.
July 05

Reporting on Custom Fields - Updated

Updated:
 
A question from the Project Server Newsgroup asking about how to report on custom fields got me thinking this morning.  How easy would this be to do in Reporting Services ?  As it turns out, it's pretty straight forward.
 
I've knocked together a very simple report which lists some rudimentary CF data.  Clicking on the Look Table value opens a sub report containing a list of the lookup table values.  
CFList 
 
lut
The benefit of these reports over the custom field grid in PWA is that these can easily be exported to another format, which is useful for config documentation.
 
You can download the report here
 
This report comes "as is" with no warranties or guarentees.
July 02

Medium Farm - Two Tiers or Three ?

For implementations servicing between 500-1000 users, you will probably need to configure a medium size farm.  If you follow the guide on Technet you may be considering a 3 tier farm.

3tier

There are some limitations with this topology, such as

  • No consideration for application availability.
  • Added performance hit as transactions traverse the network layer between WFE and App Servers.
  • The number of Queue threads are constrained by a single apps servers ability to service the threads

An alternative topology is a 2 tier farm where both servers operate as WFE and Application.

2tier

With this topology there are 2 servers providing WFE and application services therefore increasing the number of available Queue threads and providing added application availability.  As transactions do not need to traverse the network layer between WFE and app server, a small performance gain can be achieved.

Assuming the SQL server and associated storage is capable of handling the extra Queue threads, you could expect to see an increase of Queue transactions by 10-20% over that given by a 3 tier topology.

Resource Overallocation

There are a number of ways in which a PM can check for resource over allocation, and I have one more to add to the mix.  I come across a lot of PMs who build plans blindly without confirming a resources availability before making the assignment.  We all know that they should be taught how to manage resources effectively, and this is by no means a replacement for doing so.  Having said that, I see the benefit of this method being that those PMs who do not use the in built features to manage resources can have visibility of over allocation with little thought or effort.
 
I've added a column to the Gantt View which displays whether a task is using over allocated resources.  This is not intended to depict whether the task assignment is causing the over allocation.
 
Gantt
 
To achieve this, I renamed the task text1 field to "OverAlloc".
 
I set the nonsummary rows graphical indicators for this field to
 
equals                      Overalloc              "Red Ball"
does not equal          Overalloc               "Green Ball"
 
I then added the following macro to the Calculate Event
 
Dim Res As Resource
Dim Tsk As Task
For Each Tsk In ActiveProject.Tasks
   
    If Not Tsk Is Nothing Then
    Tsk.Text1 = ""
        For Each Res In Tsk.Resources
            If Res.Overallocated = True Then
                Tsk.Text1 = "Overalloc"
            End If
        Next
    End If
Next
 
Yes, it's a little crude and will have an impact on the calculation of large projects, but for customers with a low maturity model, it's a starting point.

 
View more entries
 
Thanks for visiting!  All comments and feedback will be warmly received Smile