Capturing the Project Narrative with Project Server 2010

I remember the moment very clearly.  A couple of years ago, I was knee deep in a requirements definition workshop for a Project Server deployment.  We’d just waded through all of the wonderful dashboarding goodness of the Project Center views and I’d dutifully demonstrated a whole slew of custom metrics and indicators that I’d coded up the evening before.  It was like a Lucky Charms commercial, with the projected screen resplendent in purple arrows, green lights, and yellow diamonds.   I thought things were going pretty well when one of the key stakeholders looks at me and asks “But what about the human narrative?  I see all of these metrics, but they don’t give me the project narrative.” 

Good point.  I saw all of these beautiful metrics and complicated formulas collapse into the virtual hole from whence they had sprung.  Ever since then, this is a point that I’ve made in every requirements session, whenever an organization is looking at boiling the project portfolio down to a series of colorful indicators.  Not that there’s anything necessarily wrong with indicators and gauges and pretty lights.  A lot of consultants spend a lot of time developing those.

But let’s face it, as fellow MVP Alex Burton and I agreed over a couple of beers recently, an ideal status report has a couple of indicators, some trend analysis, and the human narrative.  The human narrative has always been and will always be key – although the metrics need to back it up to make a consistent story.

image

This post describes one technique of capturing that narrative and making it available in the Project Detail Pages (PDP) of Project Server 2010.  Note that this technique is applicable to any scenario where a single repository must store data from multiple projects, for instance a centralized approval document library or a centralized list of links to sites on another SharePoint farm – or in an implementation where each project does not in fact have its own site provisioned.  As my colleague Victor pointed out today in fact, this technique could even be used to keep a running log of change orders.

Creating the Master Status List

The first step is to create the master status update list.  This will be a centralized list of all of the status updates for each of the projects.  To create this list, navigate to the main PWA screen and select Site Actions from the top left.  Click on the option to View All Site Content.

image

In the next screen, select the option to create a custom list.  Select More Options to choose to remove the list from the Quick Launch bar.  I personally prefer to keep the status list off of the Quick Launch bar as otherwise users may try to navigate directly to the list and get confused.

image

Now we need to customize the list.  Once the new list is displayed, click on the List tab in the Ribbon, and select the List Settings button.

image

Add the columns that map to your organizational requirements for routine status reports.  In this case, I will make two multiline text fields: Last Period Status, and Next Period Activities.  To use these fields in reports, I’d recommend making them plain text, as the rich text formatting options may sometimes cause problems.

The list should now appear as follows:

image

Add one more field.  This field will capture the unique ID for the project.  The unique ID, or ProjUID is a field automatically assigned within Project Server that is used to connect the project level data with all of the other database entities.  More importantly for this purpose perhaps, the ProjUID is part of the URL of the Project Detail Pages in the Project Center.

Make the ProjUID field a single line of text.

image

Modifying the Default Entry Screen

After the list has been configured properly, we now need to modify the default New Item screen.  In SharePoint 2010, this is easily accomplished using the InfoPath editor which is triggered by the Customize Form button on the List tab.

image

The default form is now displayed, including all of the fields configured for this list.

image

As the Title field must be populated to save the list item, let’s set the Title field to default to a date stamp.  To do this, right click on the text box next to Title, and select the Text Box Properties option.  In the following example, I use the Concatenate function to combine the term “Status Update” with today’s date.

image

Click Ok.  Now remove the extraneous fields by right clicking on the heading to the left of the form row, and selecting Delete.

image

At the end, you should be left with only the fields that were added for the status report.

image

Add a Submit button by selecting the button from the ribbon and clicking on the form.  In the example below, I have right-justified the button.

image

Right click on the button to modify the Button Properties.

image

Publish the form to the list from the Backstage View.

image

You may now close InfoPath.

Creating the Project Detail Page

The next step is to create the Project Detail Page within the Project Server Server Settings screen.

image

Select the New Document option on the Documents Tab.

image

Name the PDP and select an appropriate format.  In this case, I’ll just use the simplest format I can find.

image

In the resulting page, we’re going to add three web parts: the custom list we just created, a query string filter web part, and an InfoPath form viewer web part.

image

First, let’s configure the query string web part.  Click on the option to open the tool pane. Add the text “ProjUID” to the Query String Parameter Name box.  This will make the web part pull the data in the PDP URL that comes after the “ProjUID” marker.

image

Click on the Ok button and configure the InfoPath form web part.  Set the web part to display the form we configured in the last step.  Change the default submit behavior to close the form.  Click on Ok.

image

We now need to connect the web parts.  The query string web part will serve two purposes: providing the default ProjUID value to the InfoPath form and filtering the Master Status Update List to only display the relevant updates.  Click on the drop down option next to the InfoPath form web part, and select the option to get data from the query string filter.

image

Next click on the drop down option next to the query string web part, and select the option to send filter values to the custom list.

image

Click on Stop Editing in the top right.  The PDP is now ready to be used.  Add it to an Enterprise Project Type.

Updating the Project Status

Once the Status Update PDP has been added to the appropriate EPT, users may click on the project name within Project Center to view the page.

image

Users may then enter updates in the form displayed in the center of the page.

image

Each of the historical updates will be displayed at the bottom of the screen.  As each update is tagged within the SharePoint list with the project UID, the development of a custom report should be relatively easy using SQL Server Reporting Services or even PowerPivot.

Other Tweaks

You’ll probably want to tweak the page to get it looking the way you would like it.  In the following screenshot, I’ve removed the InfoPath web part label and removed the Project UID field from appearing in the status list.  I’ve also set the status update list to not display the toolbar, which removes the option to create a new item from the bottom of the screen.

image

You may also wish to consider adding security or versioning to the SharePoint list to control who may actually be eligible to add information.

Advertisements
Capturing the Project Narrative with Project Server 2010

24 thoughts on “Capturing the Project Narrative with Project Server 2010

  1. Andy Toyne says:

    Hi Andrew

    I found this article really useful thanks. I’m trying to find the resulting data for reporting. Can you tell me where the data is stored?

    thanks
    Andy

    1. The data is stored in a SharePoint list. You could in theory develop an Excel report tied to the data with an Office Data Connection file, but chances are you’ll want to develop them in SQL Reporting Services. Ask a SharePoint Developer, and they’ll tell you that you’ll need to write a Web Service to consume the data. The other option is PowerPivot, which is something I am still exploring and may not be quite right for this specific purpose.

  2. Lisa says:

    Hi Andrew,
    I have been finding many of your posts very helpful. Thank you!
    We have decided to follow your above approach for a weekly status update, and its great when your viewing the progress through the PDPs. But If i wanted to look at the complete list to see all of the updates for that week its impossible to tell which line goes with which project as there is only a projUID & not a project name. I would also like to avoid having the project manager insert the project name for each status update.
    I think I am probably just missing something quite obvious, but I am quite new to PWA & to SharePoint.

    Thanks you.

      1. Daniele says:

        Hi Andrew,

        did you find a solution to extract the Project Name?
        I wrote you in the next post “…Link List” but for this same problem.

        Can you help me?

        Thanks
        Daniele

  3. Juan Sebastian Cardona says:

    Hi Andrew.
    I have a question. In the Form Library that you show below, how do I show the forms for that specific project?? Because Form Library are showing all projects forms.

    Please help me with any solution.

    1. Juan Sebastian Cardona says:

      Regards again!!

      Does Infopath Repeating table work in a PDP??? I need create a table called Stakeholders, that contains a Name, Role, Clasification, Expectations y Compromises for each stakeholder in the project. Is it possible??

      Thanks

  4. Senbag says:

    Hi, wonderful posting!.
    Is it possibl to select an item in the list, edit it and then save it as the same item with out creating an another record. I am getting asn error as follows:
    There has been an error while loading the form.

    Click Try Again to attempt to load the form again. If this error persists, contact the support team for the Web site.

    Click Close to exit this message.
    Am I missing anything? Also when I connect the web parts, there were additional screen to select parameter consumer. I selectd ProjUID for all.

    Thanks in advance.
    Senbag

    1. It should be possible. Not sure why it’s loading a display form when you click on the item, but I wonder if you may have accidentally edited it as part of the setup process? As for the parameters, it sounds like that was set up correctly.

      1. Senbag says:

        Hi Andrew,
        Thanks for your reply!
        WHich step in your posting I might made a mistake? Is it a common settings or specifically to this PDP?
        Thanks
        Senbag

  5. Juan Pablo Pussacq Laborde says:

    Hi Andrew, excellent article. Thank you very much.
    I’m having a problem. I followed all your steps, except the settings in the display properties of InfoPath.

    In the property “Submit behavior” of the webpart, I have set the value “Open a new form” instead of “Close the form”.

    When I made ​​the creation of a record, it works perfect. But when I register the second, the field ProjectUID does not take value.

    Any idea what the problem? In case that no solution … it is possible refresh the page to reload the infopath form?

    From already thank you very much!

      1. I’ve seen folks use some custom Java code to do something similar. I also played with simply parsing the URL using an InfoPath formula, which in theory is possible, but I wasn’t able to get it to work. That would eliminate the need to use the Query String Filter Webpart.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s