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

Blog

August 21

EPM Tools, Utilities & Addons

I've started a list of useful tools that can extend your EPM environment and help integrate with other LOB applications.  If you know of any good tools that aren't on the list, please let me know.
 

Extend SharePoint Farm with the Community Kit for Sharepoint

Thanks to Paul Ballard, the Community Kit for SharePoint is freely available for download from codeplex.  This solution has a number of editions, each of which provides different features.  I personally found the Internet\Extranet edition particularly useful as it provides web parts for managing forms based users.  If managing forms based users is causing you unnecessary administrative overhead, then this solution is well worth investigating.
August 17

Create your own EPM Media Library

Training end users can be a costly investment both financially and timely, so it makes sense to protect this investment.  Most companies will document their processes and use of tools and upload them onto a sharepoint library for user to access.  If however you are like me and are more visual and kinaesthetic in your approach to learning, instead of relying on oral and written instructions; then you will benefit more from documents accompanied by videos.  There are a number of excellent webcasts available from numerous sources; however these are very generic and unlikely to exactly match your companies processes.
 
You can very easily create your own library of company specific webcasts for display or download from a Sharepoint library.
 
To create the video content, you will need an encoder.  There are a number of encoders available:
 

I'm sure there are others, but these are the ones I know of.  I've not used Captivate, but I have customers who have, and they find it very intuitive to use.  Personally I use WME, as I won't pay for something that I can get for free, and it does the job, albeit a little crude.

The basic concept is that the encoder captures the screen or application display as a video file.  You can then add a narrative or even overlay graphics.

Once you have created your video files, you can either upload them into a Sharepoint library for users to download and play on their desktops or make use of Windows Media Services and stream the content in the browser (like youtube).  Media Services requires Server 2003/2008 Enterprise Edition and a little bit of setup which is straight forward. For help on setting up Media Services checkout this site  http://www.microsoft.com/windows/windowsmedia/knowledgecenter/default.aspx

Having such a media library provides the end user with a comprehensive help and support portal, helps retain product IP and reduces demand on support staff.

Here are some useful links related to WME and Windows Media Services:

August 09

Project Server & SQL2008 Interop

Whilst there are some great benefits for using SQL2008 within your EPM solution, the interop with Project Server has not been finalised.  I've managed to successfully create a new PWA instance with SQL 2008, however the cube building service will not function. Performing an inplace upgrade of SQL on a stand alone PWA instance, also broke the application. Microsoft are working on providing some updates to enable the interop with SQL2008, so for the time being you should stick with SQL2005.  Having said that, you don't need to wait to upgrade the database in order to take advantage of the features in Reporting Services 2008 !
August 08

SQL 2008 Reporting Services - New Feature

There are many new features in SQL 2008 which will enhance your EPM environment.  One that stands out to me is the introduction of the gauge control in Reporting Services.

gauges

This control provides you with the ability to easily create dynamic, visual reports, something which was a challenge in earlier versions.  A welcome addition to any PMO reporting environment, I'm sure you'll agree.

August 07

SQL 2008 is Released

SQL Server 2008 has been released and is ready to deliver a rich set of integrated services that enable you to do more with your data, such as query, search, synchronize, report, and analyze. Many of you have been evaluating the SQL Server 2008 betas, and may be ready to try out the RTM version. TechNet Plus subscribers can find RTM versions now available for download. Speaking of TechNet Plus, read Keith Combs’ Blahg for his take on the UI improvements for the newly revamped TechNet Plus Subscriber Downloads page.

TechNet Magazine recently published
an overview of the key changes and what you can expect from SQL Server 2008. You can also get a rundown of the various editions and components of SQL Server 2008 and take part in SQL Server 2008 tutorials.

For more overview resources, check out:

If you are looking for assistance with SQL Server 2008 planning and installation, here are some helpful links:

Once you’ve installed SQL Server 2008, these resources can help you optimize your database environment:

You can also find guidance for upgrading to SQL Server 2008 or migrating to SQL Server 2008. If you are upgrading, be sure to check out Using Upgrade Advisor to Prepare For Upgrades.

From our partners, you can
find local partners offering SQL Server 2008 solutions or find training partners near you offering official Microsoft courses that will help you get certified on SQL Server 2008. In addition, you can search for local in-person events and online webcasts on SQL Server 2008.

And finally, from the August edition of TechNet Magazine, Paul Randal answers your SQL Server questions, showing you how to perform consistency checks, how to handle an accidental upgrade, and more in the
SQL Q&A column.
 
{Content from Technet News Letter}
August 05

Project 2007 Bugs?

Project Server 2007 SP1 including infrastructure update (Server & Client):-
 
1.   Hammock tasks cannot be saved in an Enterprise Template.  Whilst this is not a show stopper it is frustrating for my customer.
 
2.   Setting the "Publish" flag to "No" only hides the resource assignment from the "My Tasks" view.  Any associated resource costs and task information gets published.  This is contrary to what the help file describes as the function for this flag (see below).  I'll be raising a support call with Microsoft in the morning, but I'd be interested if anyone else has a different experience with these features.
 

Description  The Publish field indicates whether the current task should be published (publish assignments: If you use Project Server as your team collaboration solution, you publish assignments to notify your resources of new and changed assignments to tasks.) to Microsoft Office Project Server 2007 with the rest of the project. By default, this field is set to Yes.

Best Uses  Add the Publish field to a task view when you want to view or change whether a task is set to be published to Office Project Server 2007. This can be particularly useful if you are still developing the details of new or changed tasks, and are not ready to publish them for the rest of the team and other stakeholders to see.

Example  You and your team are busy working on an existing enterprise project (enterprise project: A project that is stored in Project Server to ensure information integrity. To make changes to an enterprise project, users with access permissions are required to check it in and out from Project Server.). You have just updated progress for current tasks. In addition, you have recently learned of increased scope changes to a work phase coming up in two months. You have added new tasks and changed resource assignments in the project plan to respond to these changes. However, you're still researching certain task durations. You want to publish the updates you've made for current tasks, but you do not want to publish information about the upcoming work phase until the changes are complete. You insert the Publish column into the Task Sheet and change the setting for the tasks in the upcoming work phase to No. A few days later, you finish the changes. You set the Publish field for these tasks to Yes, and then publish the project plan to Project Server.

Remarks  Although the Publish field is available for local projects, it is only useful when working with an enterprise project through Project Server.

If you have already published a task and then later set the Publish field to No, when you publish the project again, the task will be removed from any assigned resources.

August 04

Tech-Ed 2008 - Auckland, New Zealand

Once again EPM is afforded only a single session at this years Tech-Ed in New Zealand, for which we must be thankful given the limited number of slots and competing products.  I had been pushing Microsoft to let me do a session on IPM (Innovation Process Management) to showcase the entire EPM/IW stack, however the decision has been made to deliver a single session on Portfolio Server.  Whilst I'm sure this will be a useful and informative session, paying customers are simply getting a repeat of what was delivered last year.  If you are attending Tech-Ed this year and would like more EPM sessions in the future, please let Microsoft know by completing the feedback sheets, or by contacting your Microsoft account manager.   Roll on the next Project Conference in Seattle !
July 28

EPM Certifications

Have you ever wondered how many certified EPM professionals there are in the world?
 
The numbers below are correct as of 9 July 2008 from https://www.microsoft.com/learning/mcp/certified.mspx
 
563   - MCTS - Enterprise Project Management with Microsoft Office Project Server 2007
1189 - MCTS - Managing Projects with Microsoft Project 2007
53    -  MCTS - Microsoft Office Project Server 2007 - Configuration
211  -  MCITP - Enterprise Project Management with Microsoft Office Project Server 2007
 
It would be interesting, and useful to see the geo-diversity of people with these credentials.
 
The number of people certified in Project Server configuration is somewhat dissappointing, and is strongly reflected by the volume of config type questions seen in the newsgroups.  Courses on install/config are very cheap and offered online at www.msepmu.com
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.

 
June 24

Hotfix Update

There are two new rollup (contains all post SP1 hotfixes) hotfixes for Project Server 2007 (KB 953478) and Project 2007 (KB 953476).  These hotfixes are not currently available for public download and can only be obtained by contacting Microsoft directly.
 
Given some dependancies in earlier hotfixes of the client being updated in line with the server, I'd strongly recommend pushing the client hotfix before the server hotfix.  The server hotfix also contains updated ActiveX controls, so for those of you operating on secure client environments you'll have to deploy these prior to installing the server hotfix.
 
There's an "uber" hotfix in the pipeline, which is currently in beta testing.  Keep an eye out for this shipping over the next couple of months.
June 23

WSS or MOSS

What are the advantages and disadvantages of Project Server with MOSS ?
Christophe has blogged about some of the great advantages of using MOSS with Project Server 2007.
 
 
As with most things in life, anything worth having has a cost.  Additional licencing costs is the only disadvantage I can think of when installing Project Server with MOSS.
 
To leverage Project Server in a MOSS farm, Project Server must be installed and licenced on each of the servers in the farm, regardless of the server role.  For large farms this can add considerable costs.  I've previously addressed this by installing Project Server in a separate WSS\MOSS farm from the main MOSS farm.  Whilst this constrains some of the MOSS features available to you, such as not being able to use workflows across farms, other features like enterprise search can still be used.
 
There is also the added cost of a MOSS CAL to be taken into consideration, which again can add significant cost.
 
Given the additional licencing costs required for MOSS, it doesn't make sense to only use it as a platform to support the implementation of Project Server. This however may change in the next version which is rumoured to have a dependancy on MOSS and not WSS.  I personally hope this rumour is not true as I believe it will have a huge impact on the uptake of Project Server, especially for SME's (unless the licencing model is somehow restructured to make it more affordable).
June 19

Custom Fields in "My Task View" - Updated

The macro below adds the parent summary task to a task/text custom field called "Parent Summary" {I suggest you add it to the beforesave event in the Ent.Global}
When creating the custom field, ensure you check the option to allow the value to roll down to the assignment.
 
You can add the custom field to the My Assignment view to display the summary field for each task.
 
Apologies to all VBA experts for being such a hack,  please feel free to optimise this code.  
 
Dim t As Task
Dim t1 As Task
Dim pos As Integer
Dim myflag As Integer
Dim counter As Integer
Dim parentwbs As String
Dim parenttaskname As String
For Each t In ActiveProject.Tasks
    'check that task is not nothing
    If Not t Is Nothing Then
   
        'find the last period in the wbs code
        counter = 1
        Do While counter < Len(t.WBS)
        If InStr(counter, t.WBS, "1", 1) <> 0 Then
            myflag = InStr(counter, t.WBS, ".", 1)
        End If
        counter = counter + 1
        Loop
       
        If myflag > 1 Then myflag = myflag - 1
       
        'search for parent wbs value
        parentwbs = Left(t.WBS, myflag)
       
        For Each t1 In ActiveProject.Tasks
            If Not t1 Is Nothing Then
                If t1.WBS = parentwbs Then parenttaskname = t.Name
            End If
        Next
       
        'set custom field to parent summary task name
       
        If parenttaskname = "" Then parenttaskname = ActiveProject.Name
       
        Call t.SetField(FieldNameToFieldConstant("Parent Summary"), parenttaskname)
       
    End If
   
Next
 
Rod Gill has kindly re-written the macro above:-
Dim Tsk As Task
    For Each Tsk In ActiveProject.Tasks
        If Not Tsk Is Nothing Then
            If Tsk.OutlineLevel = 1 Then
                Call tsk.SetField(FieldNameToFieldConstant("Parent Summary"), ActiveProject.ProjectSummaryTask.Name)
            Else
                Call tsk.SetField(FieldNameToFieldConstant("Parent Summary"), Tsk.OutlineParent.Name)
            End If
        End If
    Next Tsk

That's why he writes books on VBA and I don't.
 
Thanks Rod :)
June 18

Referencing Custom Fields through VBA

Finding references for managing custom fields through VBA is like trying to find a needle in a hay stack.
 
Below are two lines of code for reading/writing project custom fields in VBA.  Hopefully these will get you on your way.

'Read Enterprise Custom Field
call ActiveProject.ProjectSummaryTask.GetField(FieldNameToFieldConstant("customfieldname"),"Value")

'Write Enterprise Custom Field
call ActiveProject.ProjectSummaryTask.SetField(FieldNameToFieldConstant("customfieldname"),"Value")
June 17

The DNS\SQL Alias is your Friend

Have you ever needed to move Project Server, SharePoint or SQL to a different physical machine?   Whilst aliases don't take all the work out of moving services between servers, it can be made a lot easier by using DNS\SQL aliases during the initial install.  Aliases mask the server name with a friendly alternative name registered in DNS. As server names change, the alias is updated to point to the new servername, leaving the application configuration as is.  See the links below for more info:
 
 
June 12

Rebuilding the Reporting Database

A rebuild of the Reporting Database can be initiated by restoring the custom fields from and administrative backup (PWA/Server Settings).
 
Below is an explanation (thanks Sharry Herberer MSFT) of how this process is managed in the tool.
 
1. RDB Refresh job is "chosen" by the Queue to process.
2. RDB Refresh selects some number of entities (resources, custom fields,
whatever was restored) to restore/sync.
3. RDB Refresh places one job in the Queue for each entity it chose in step
2.
4. RDB Refresh job goes to sleep (this is only an indicator to the Queue
that it should not be a candidate for processing at this time) and sets its
wakeup time for 5 minutes later.
<five minutes pass, and the entities are synced as the jobs from step 3 are
picked up for processing by the Queue>
5. RDB Refresh wakes up (this only means that its wakeup time has passed,
and the Queue will now consider it as a "processable" job).
6. RDB Refresh gets chosen for processing by the Queue System.
7. RDB Refresh assesses whether all of the jobs from step 3 have been
processed by the Queue yet.
        If yes, then if there are more entities to be restored/synced, go
back to step 2.
        If yes, then if there are no more entities to be restored/synced,
then go to step 8.
        If no, then go to step 4.
8. RDB Refresh determines whether it should succeed or fail.
       If ALL entities processed with no errors, then succeed.
       Else fail.

The RDB Refresh job itself is merely a "monitor" of the admin restore
individual reporting sync jobs.  It is a bottleneck of sorts, so that the
Reporting System doesn't completely flood your Queue with requests to sync
data from an admin restore all at once.  Think of the organizations who have
thousands and thousands of Resources, Custom Fields, etc. So what the RDB
Refresh job does is get a certain number of entities (custom fields, in your
case) to sync, place jobs in the Queue for those entities, and go to sleep
waiting for those new jobs to get processed.  Again, in order for the
Reporting System to not flood your Queue, the RDB Refresh job will sleep for
a minimum of 5 minutes in one "interval" (but could sleep longer if the
entities it is waiting for are taking longer than 5 minutes), no matter
what.  If any ONE of the entities it is trying to sync fails to do so, then
the RDB Refresh job itself will fail.  If ALL entities synced just fine,
then the RDB Refresh job will succeed.  This is just a way to tell you if
any one of the entities failed, so you can investigate.