Connecting Project Server data to SharePoint Search

How to integrate basic functionality of Microsoft Project Server with SharePoint Search

Agnes Molnar

by Agnes Molnar on 3/21/2014

Share this:

Article Details

Date Revised:

Applies to:
Microsoft Project Server, Microsoft SharePoint, Search, spx

Following my Search Troubleshooting session that was rated as the #1, I talked with Nenad Trajkovski, Microsoft Project Server MVP who was rated #2. We decided to do a session together, and this is how the idea of  Ms Search and Mr Project was born. The idea was to show how we can get basic Project Server concepts (tasks, risks, etc.) and make available them to search in SharePoint.

This kind of integration is very important, not only with Project Server, but with any kind of backend systems. Organizations have a lot of different systems, each storing different information, and your enterprise needs all of them. You have a lot of content (maybe you don’t even know about some of it!) at disparate locations, and it can be structured and unstructured data, as well. For example, you have documents, emails, CRM entries, project tasks and risks, database entries, etc. With search-based integration, you can create dashboards like Customer Management or Project Dashboard, but you can also view your open task aggregated from SharePoint and Project Server.

The Background

In Project Server, you can create projects that include resources, tasks, risks, etc. Everything is stored in databases, and Project Server also has its own portal built on (what a surprise!), SharePoint technologies. The portal can be on-premises or in Office365.


Figure 1: Microsoft Project portal

The Project Server portal has its own Search solution that is a kind of basic Search. This can be customized on the UI, but you don’t have real enterprise search features. For example, you cannot crawl any other content sources, and  therefore you cannot integrate your Project Server data into your enterprise data. Figure 2 shows the Search UI.


Figure 2: Search UI

Direct Crawl

If your Project Server is on premises and in the same domain as your SharePoint farm (or if you have two-way trust between the two domains), one of the easiest ways might be to crawl the Project portal content as a remote SharePoint site.

For this, the only thing you have to do is create a content source with your Project Server portal’s URL as the Start Address, as you see in Figure 3:


Figure 3: Content Source

We also have to configure the content access account by creating a Crawl Rule for this site, as Figure 4 shows:


Figure 4: Adding a Crawl rule

With this option, you’ll have the Project Server items integrated into your SharePoint Search result set, with the full functionality (refiners, hover panel, etc.), as you can see inFigure 6.


Figure 6: Integrated results

Federating Project Server Search

Federation as a feature is not new. It has been available since Microsoft Office SharePoint Server (MOSS) 2007.

SP2: You can use any OpenSearch 1.0/1.1 remote index to get results from. For example, you can use Project Server’s own index and can provide the items remotely.

If you search for [Agnes], the result can contain my tasks directly from the Project Server’s index, as you see in Figure 7.


Figure 7: Search results including Project Server index

In SharePoint 2013, you can get this functionality by creating a Result Source. If your Project Server is on premises, the configuration of Result Sources is kind of obvious.

If you have Project Server online (in Office 365), configuration of the Result Source requires more attention as you have to configure the two-way-trust between your on-premises SharePoint farm and your Project Server Online with SSO directory synchronization, etc.

But be aware: Although federation is a very good option in hybrid environments, it also has some limitations. For example, federated results cannot be aggregated with other results. On the screenshot below, the main result set and “MS Project Tasks for ‘Agnes’” cannot be merged together. Also, if you have more federated locations defined, each one will be displayed separately.

Business Connectivity Services

The next and last option to get connected to Project Server data is by using Business Connectivity Services (BCS). BCS enables us to use any of the following methods to connect to third-party systems:

  • Direct database access
  • Web Service
  • oData Service

Although, from a Search perspective, only reading the data is important, BCS can provide complete interaction with the proper connection definitions and configuration. We can even write back to the data source (for example, modifying an entry). Of course, creating a read-only connection is possible, and for Search it’s enough.

Obviously, this method works on-premises only, as we have to know the connection information to the databases. With this method, we can get connected directly to the Project Server report databases. Here are the steps for configuration:

  1. Create a Business Data Connectivity Service Application in SharePoint 2013.
  2. Create an External Content Type, pointing to the Project Server reporting databases with SharePoint Designer. As a side effect, you’ll be able to create External Lists in SharePoint, which enables you to integrate your Project Server tasks, risks, etc., into the SharePoint User Experience, as you see in Figure 8.


Figure 8: Integrating Project Server tasks, risks, etc.

3. Next, you have to create a content source for the External Content Type, defined above.


Figure 9: Create a content source for the Externals Content Type

Once the content source is done, you have to create a Crawl Rule to define the Crawler Account--if the Default Content Access Account doesn’t have full-read access on the Project Server database. Finally, do a Full Crawl.

Check the results on the Search result set, which is shown if Figure 10. They might be unattractive for now, but they should be there!


Figure 10: Check the results

If you can see the Project Server tasks in the result set, then you are ready with the initial configuration. Now, let’s make it user friendly, nice and fancy!

User Experience

The user experience is very important in Search. As you can see above, despite having the data indexed, it probably won't be helpful for the end users without some configuration and massaging.

First of all, let's look at the properties of your Project items. As you can see in Figure 10 above, the Title is very unappealing by default. In addition, you might want to improve some other properties, such as Assigned To or Due Date. To configure these, you have to modify the Search Schema in SharePoint 2013. For example, for title, you have to add a new mapping to TaskName, as this is the name of this field in the Project database.

After modifying the Search Schema, you need one more Full Crawl to include the modified values in the index. Once the Full Crawl is done, the UI will be a bit more user friendly showing the Task Name values in the result set, as Figure 11 shows.


Figure 11: User-friendly UI

You might be also interested in promoting Project Server tasks if someone is searching for tasks in SharePoint. This can be very useful if you use Project Server heavily, and you do heavy task management there. With a Query Rule, the result can be something like what you see in Figure 12.


Figure 12: Project Server tasks

Of course, with the same Search-Driven logic, you can even create a My Tasks dashboard where you aggregate the SharePoint tasks and the Project Server tasks into the same UI. This provides a good overview for the users about their current tasks, what’s in late, what’s upcoming, etc.

The next thing, once you have the proper metadata ready, is the Hover Panel that is displayed when the user hovers the mouse over a search result, as shown in Figure 13. On this panel, you can display more details. For example, you can add Duration, Percentage Completed, Assigned To, Due Date, Description, etc. by using the following steps.

1. Create a Result Type for the Project Tasks, a new one for Risks, etc.

2. Create a custom Display Template for these Result types and add the appropriate metadata, which was created and prepared the previous steps.



Figure 13: Adding further details

Finally, let me show you one more integration option. With the features described above, you can also integrate People Search results with Project Server items. (Of course, additional types of data joins are also available, depending on your business environment. For example, in Customer Search with the related project status information, etc.) In Figure 14 below, you can see my user in People Search with her open Project Server tasks integrated to the Hover Panel. For this, I modified the People Result Type’s Hover Panel Display Template.


Figure 14: Integrating People Search

Putting it all together

As you can see, there are several options for integrating Project Server data into SharePoint Server 2013 Search. This article, provides an overview of the following options:

  • Crawling the Project Server portal
  • Federating Project Server portal search
  • Using Business Connectivity Services to get the data directly from the Project Server database

These methods can be useful for accessing other systems and databases, as well.

If you hit the limitations with these or need more customization, there’s one more, advanced option. You can develop a Custom Search Connector, on the top of the SharePoint 2013 Search APIs .

Topic: Search

Sign in with

Or register

Connect with Experts