Don’t Tweet? No Problem

Playing around with a couple of tools the other day when I found Paper.li – a service that aggregates Twitter searches into a daily or weekly paper.  Honestly, I’d seen these on other folks’ Twitter streams, but never spent any time to figure it out.

This week represents the kickoff for that service.  I’ll try it out and see if it provides any value.  Expect a weekly summary of the relevant Twitterverse every Friday afternoon (Central Standard Time).  Content is dedicated to Project Server and Project Server only and delivered by a secret, super clever advanced search algorithm – which I will be tweaking weekly.

The URL should remain the same from week to week.

http://paper.li/Alavinsky/1300932545

Don’t Tweet? No Problem

Project Financial Server Post-SP1 Hotfix Released

Figured this was as good an opportunity as any to dip my blogging toe into the Project Financial Server (PFS) waters…

For those of you who are not familiar with PFS, it is a third party product that augments Project Server with a host of sophisticated financial management capabilities.  PFS is brought to you by UMT, who just happen to be not only the fine folks I work with but also the folks who brought you Project Portfolio Server before it was acquired by Microsoft and merged into Project Server.

For more information about PFS: http://www.projectfinancialserver.com/

For the text of the announcement regarding the hotfix, please see the UMT Software Development blog: http://www.ro.umt.com/blog/2011/03/20/umt-project-financial-server-sp1-cu1/

Project Financial Server Post-SP1 Hotfix Released

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.

image

…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.

image

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.

image

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

image

The results appear as follow:

SNAGHTML1a60536

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:

image

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

image

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

Using External Content Types with Project Server 2010

External Content Types (ECT) are yet another function with SharePoint 2010 that allow users to create simple powerful solutions with Project Server data.  ECTs allow users to pull data directly from the Reporting database and surface it within SharePoint lists.  I plan to spend the next couple of posts talking about the possibilities of using ECT within a Project Server 2010 setting.  In the meantime, however, this post is designed to address how to create the ECT itself.

image

First off, ECTs and the Business Connectivity Service that they reside upon are well documented throughout the Web.  Feel free to plug those terms into your favorite search engine to identify a whole host of articles and posts on the topic.  One of the main questions that comes up is often related to security and configuring the Secure Store Service to work with BCS, for which I will refer you to this blog on the topic: http://blogs.msdn.com/b/bcs/archive/2010/03/12/authenticating-to-your-external-system.aspx

Creating the ECT

To create the ECT, we need to open a non-PWA site within the Project Server farm.  This site will serve as the repository for our ECTs – which may be consumed throughout Project Server.  Generally, I’d recommend placing the ECT on the top level site within the PWA web application – or a subsite under PWA – although that recommendation is subject to review by a more technically savvy SharePoint expert.  (If you’re planning a Project Server implementation, note that PWA should never really be provisioned as the top level site in a web app.)

For this example, I am using the Contoso demo image, and will use the http://intranet.contoso.com site to host my ECT.  I open that site with SharePoint Designer, a free download.  As you may have already realized, SharePoint Designer may not be used against the main PWA site.  This is a restriction placed by Microsoft to prevent folks from inadvertently bringing the entire Project Server implementation to its knees using SharePoint Designer.

Once SharePoint Designer has opened the site, click on the menu item for External Content Types.

image

Click on the option to create a new ECT.

image

The following screen will be displayed.

image

Enter the name of the new ECT and click on the link to configure the data source.

image

Point to the Reporting database, and select the table with the appropriate fields.  In this case, I will be using the MSP_EPMProject_UserView view as that includes almost all of the project level metadata.

image

We now need to define two operations: the Read List operation and the Read Item operation.  Right click on the selected table to define those two operations.  First we’ll create the Read Item operation.  Follow the default settings until you get the option to select the fields returned by the operation.

image

Uncheck all of the fields, then gradually add the fields you would like included back into the ECT.  Make a list of each field added, as the second operation must include exactly the same fields.  Once the appropriate fields have been selected, click on the Finish button.

Right click on the table again and create the Read List operation.  This will kick off by asking you to create a filter.  Filters are not required, but may be very powerful.  In later posts, I’ll address uses of the wildcard filter.

(For this reason, I’ll insert a <<boomark>> here to reference back to in future posts.)

For now, let’s skip the filter discussion and move on.  In the next screen, select exactly the same fields as were configured in the Read Item operation.

image

After selecting Finish, click “Save” in SharePoint Designed to deploy the ECT back to SharePoint.  Close SharePoint Designer.

Configuring ECT Security

If you didn’t review the blog post above, at this point, I would strongly recommend taking a look now: http://blogs.msdn.com/b/bcs/archive/2010/03/12/authenticating-to-your-external-system.aspx.  After the ECT has been created, we need to configure security.  Your best bet is to point it to the right Secure Store Service while creating it within SharePoint Designer.

The second option is to go into the Business Connectivity Service application within SharePoint Central Admin to configure security.

image

Click on Business Connectivity Services and then click on the new ECT.

image

Click on the button to set the Object Permissions.

image

Add the appropriate users or AD Group to the appropriate permissions.

image

Close Central Admin and navigate back to the main PWA site.

Validating the ECT

There are a couple of ways to determine if the ECT is now working properly.  The easiest way is perhaps to create an External List.  An External List is a SharePoint list that surfaces external data within the familiar interface of a list.  I’ll be writing more about that topic in a future post.

In the meantime, go back to the main PWA site (or another subsite), and under the Site Actions menu, select the option to View All Site Content.

image

Create a new External List.

image

Add the ECT to the External List.

image

The External List should now render a complete list of all projects within the system.

image

When clicking on an individual item, the information from the list is displayed in an easy to use format.

image

Stay tuned as I explore potential use cases for ECT in the next couple of posts.

Using External Content Types with Project Server 2010

Centralizing Project Detail Page Information: Centralized Document List

In the last two posts, I have been exploring a simple, common usage model with Project Detail Pages that allow users to store centralized information in environments where not every project within Project Server 2010 may map to a specific project site.  Some potential use cases for this functionality may include:

In this post, I plan to further develop that concept with a centralized document repository.  Why would you want to develop a centralized document repository?  Perhaps the project approval document must be posted to the PM Information System before the project workspace is provisioned.  Perhaps some projects will never have their own dedicated workspaces and will exist only as document libraries on a shared site.

image

In this example, I will walk through how to create a central repository for approval documents.  Before going any further, I would strongly recommend reading this post on creating custom lists consuming PDP parameters within Project Server 2010.

As I developed this solution, my first thought was to create a document library, then add the ProjUID field to the document metadata.  I’ve successfully done this with External Content Types (ECT) and Business Connectivity Services, but received feedback that the ECT solution was too “clicky” for some end users.  (I’ll cover that as a potential solution in a future blog post.)  The challenge I discovered is that SharePoint 2010 document libraries do not allow customization of the main form using InfoPath. 

So I decided to go with an alternate approach.  Instead of using a document library, I would just use an attachment-enabled list.  Effectively that would deliver the same functionality as a document library and met all of my requirements.  The only minor hiccup was my apparently erroneous understanding that list attachments are not indexed by the search engine.  After a little research, I determined that this is somehow a commonly spread misunderstanding dating from SharePoint 2007.  Either it’s always worked and folks didn’t realize this….or it started working with a patch somewhere.  So let me set the record straight on this one….documents will be indexed within SharePoint even as attachments to list items.

To create the list, follow the same instructions as in the previous post, but create a custom list.

image

Add custom fields as appropriate.  Here again, I add the ProjUID field.

image

Modify the InfoPath form.  In this form, I add a default value to the Title, modify the Attachments label, delete all extraneous rows, and add a Submit button.

image

From there, I add it to a new PDP using the same technique as in the last post.  The end result is an interface for loading and reviewing approval documents for each project.

image

Centralizing Project Detail Page Information: Centralized Document List

Centralizing Project Detail Page Information: Centralized Links List

In a previous post, I talked about how to generate a centralized list of project status updates using nothing more than a custom list, InfoPath, a Query String Filter Web Part, and duct tape.  For this post, I wanted to talk about a couple more use cases for the same approximate model….i.e. a centralized information repository shared by all projects across a Project Server 2010 implementation. 

The more Project Server 2010 deployments I perform, the more I realize that this model is essentially the one size fits all solution to a number of information management needs.

image

This post will talk about using the same implementation model to deploy a centralized link list and a centralized document library.  Why would you want to do this, you ask?  Good question.  My response: count how many of the following items may apply to your particular Project Server implementation.

  • Not all projects are associated with a project workspace, or the ratio of projects to workspaces is not 1:1.
  • Projects have approval documents which may need to get posted before the actual workspace is provisioned.  Perhaps the workflow requires a workspace only after the approval documents have been scanned and loaded to the system.
  • Your project managers have SharePoint sites or external collaboration sites outside of the Project Server farm and would like to include links from Project Center to those sites.
  • You desire to surface a list or library within the PDP pages and therefore piggy back on the Project Center navigation interface by having users click on the project name and then the specific PDP page.

Creating a Centralized Link List

In this scenario, the organization does not maintain a single website for each project in Project Server.  Some projects may not have a site.  Some projects may be linked to sites that exist in other farms.  In an IT governance scenario, each project may represent a potential change for a specific application – where the application maps to a site, and each project maps to a document library on the application site.

The first step, as in the previous post, is to create a centralized list of links.  In the main PWA site, under Site Actions, select the option to View All Content.

image

Create a new Links List.  Select the More Options to opt the list out of the Quick Launch Bar.

image

Now click on the List Settings option.  We are now going to add a field to capture the Project Unique ID field (ProjUID).

image

Add the ProjUID field as a single line of text.

image

We now need to modify the input form for the list.  We will do that using the built-in InfoPath form editing functionality.

image

The default form should open.

image

Right click on the ProjUID row and select the option to delete it.  The field will still exist, but not show up in the form.

image

Add a button and configure it to trigger the Submit action.

image

In the Backstage View, publish the form back to the list.

image

Close InfoPath.  Navigate back to PWA.  Select Server Settings, and create a new Project Detail Page (PDP).

image

Once the page has been created, we will need to add three webparts to the page: a query string webpart, an InfoPath form viewer webpart, and the webpart for the custom list we created above.  The results should appear as below.

image

Now we configure the query string filter webpart and the InfoPath webpart.  Set the InfoPath webpart to display the customized form from the Master Links List.  Change the default Submit behavior to “Close the Form.”

image

Open the tool pane to configure the query string filter.  This filter will pull the ProjUID value from the URL of each PDP page when it is presented.  Enter “ProjUID” in the Query String Parameter Name field.

image

Click Apply.  Now, we need to connect the webparts.  The query string filter webpart will now perform two purposes: to populate the ProjUID field in the Master Links List, and to filter the displayed links at the bottom of the page based on the ProjUID field in the URL.

SNAGHTMLd2cdec

Configure the two connections.  The PDP should now appear as follows:

image

The PDP may now be used to track links to project sites.  When added to a project, here’s what it looks like…

image

..coming up next….deploying a centralized document library.

Centralizing Project Detail Page Information: Centralized Links List

New Portfolio Analysis White Paper Published

I am pleased to announce that a white paper I wrote on portfolio analysis with Microsoft Project Server 2010 has been released by Microsoft on Technet.  The paper is essentially a manual for business users trying to configure and use the portfolio analysis functionality.

Link to the announcement: http://blogs.msdn.com/b/chrisfie/archive/2011/03/18/new-white-paper-portfolio-analysis-with-microsoft-project-server-2010.aspx

Link to the actual paper: http://technet.microsoft.com/en-us/library/gg715564.aspx

So yes, less than one short week after this blog was thrown into the world, we have already sunk to a new low…a blog post about a blog post about a paper based on a blog post.  Never fear.  Real content resumes tomorrow.

New Portfolio Analysis White Paper Published