Customizing External Lists of Project Data

In my previous post, I talked about using External Content Types to generate an External List within SharePoint 2010.  The main question, as always, is why would you want to do this?

….a couple of reasons:

  1. Your end users are used to SharePoint lists for managing projects.  I see this more and more in companies, where projects are managed in a list of projects.
  2. You desire to give end users permissions to create and save customized Project Center views.  With External Lists, your users gain the ability to create personal views of Project Server data.
  3. The organization requires the capability to create dynamic views of project data to, for instance, display all projects that have not been updated in the last two weeks.
  4. The Project Server data must be searchable within the SharePoint search engine.
  5. Specific fields must be totaled within the project portfolio (as of this writing, the Project Center view only totals free number entry fields, but will not total calculated fields.)

…and last but not least, it’s actually pretty easy.  I would contend that using External Lists is easier than developing a custom SSRS report – and gives your end users much more control over their individual user experience.


…so let’s walk through a couple of use cases….

Creating Personalized Views

Assuming permissions have been set appropriately, users may click on the Create View option under the Lists tab.


This opens a screen to configure the view.  Users may set the view to “personal” at the top of the page.  This means that others will not have access to the same view.


The user may now configure the specific fields, totals, grouping, filters and sorting as per individualized requirements.


The results appear as follow:


Creating Dynamic Filters

If you hang out on the Microsoft Project newsgroups long enough, this question invariably pops up….”How do I create a view that shows all projects that should have completed within the last week?” 

That question can be answered within Project Center, but it requires a little more work from the end user.   The challenge with using Project Center to answer this question is that the fields within Project Center are not dynamically recalculated whenever the view is refreshed.  To answer the question above, typically you could employ two options:

  1. Expose the Finish date and sort the view in descending order by date.  Then rely on the user to navigate through the list to identify the projects with Finish dates prior to today’s date.  Users may also manually add a filter to that column, but will have to revise the filter the next time the same query is run as it does not automatically update to today’s date.
  2. The “easier” method would be to create a custom enterprise field that flags a project with a slipped Finish date as “Yes.”  Then create a Project Center view that filters on the custom field.  This is easier for the casual end user as the work is done for them, but assumes the project manager has opened the schedule recently, recalculated fields, and republished the schedule.  Otherwise, that field will not be recalculated.  Since we’re looking for projects that may not have been updated, this technique is less than ideal.

To solve the challenge with External Lists is a much simpler story.  Simply select the option to edit the view under the List tab.  Add a filter with the following syntax to find projects that should have completed by today’s date:


If I wish to see all projects that have not been updated in two weeks, I might use the following filter.


External Lists provide another powerful tool for individualized reporting on Project Server data.

….next up…..using Enterprise Content Types to take timephased snapshots of project data – the Holy Grail of Project server killer apps.

Customizing External Lists of Project Data

One thought on “Customizing External Lists of Project Data

Leave a Reply

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

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

Google+ photo

You are commenting using your Google+ 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 )


Connecting to %s