metro-sharepoint-128-link

Integrating Project Server 2013 with Team Foundation Server 2012

2 November, 2012 | | 25 Comments

I have recently been playing a lot with the new Office 2013 release and part of that is Project Server 2013. With the new Project Server Extensions being an integral part of any enterprise Team Foundation Server deployment I thought that I should kick the tires.

metro-sharepoint-128-link

Integrating Project Server 2013 with Team Foundation Server 2012

by

I have recently been playing a lot with the new Office 2013 release and part of that is Project Server 2013. With the new Project Server Extensions being an integral part of any enterprise Team Foundation Server deployment I thought that I should kick the tires.

Update – I have figured out my blocking issue and resolved it. See Project Server 2013 Issue – TF294012: Cannot access the following enterprise project

I usually have a complete abhorrence of Project Server that is born of its constant misuse. Project Server is first and foremost an earned value management system, although many people try to use it to facilitate micro-management or to do time tracking. Neither of these things are a good idea regardless of tool and time tracking while loosely supported by Project Server 2013 is not meant to be done there. Don’t get me wrong, there value in time tracking; How else might you amortise or capitalise your development costs? But you do not however need to account explicitly for every hour nor use it to punish employees for not logging enough hours…

Anyway.. There are a bunch of thing that need to happen in order to get Project Server 2013 up and running, first of which is actually installing SQL, TFS and SharePoint which I will just link to and get on with the real meat:

  1. Installing TFS 2012 on Server 2012 with SQL 2012
  2. Integrate SharePoint 2013 with Team Foundation Server 2012
  3. DONEInstall, configure & configure Project Server 2013
  4. DONESet-up Project Server 2013
  5. DONEInstall Team Foundation Server 2012 Project Server Extensions
  6. DONEIntegrate Project Server 2013 with Team Foundation Server 2012

I found the MSDN documentation for installing and configuring Project Server 2013 totally cryptic and I ended up with so many read hearings and dead ends that I had to just figure it out for myself. This is the result of me poking at Project Server 2013 until I got a stable instance which I then blew away to repeat here Smile 

Install Project Server 2013

Just like with SharePoint 2013 you have three stages to the process. Install, Configuration and Configuration… What? Yea, In know… don’t ask…

I am going to lump the first two items together and they are the only two bits that need to be done on every front end server in your farm. They install and prep your SharePoint 2013 servers for creating your first Project Server Portal which is done one or more times through the SharePoint 2013 Administration Portal.

Figure: The Project Server 2013 installation wizard looks just like SharePoint 2013
Figure: The Project Server 2013 installation wizard looks just like SharePoint 2013

You will have deja vu when you see the install as it follows the SharePoint 2013 pattern. make sure that you install the prerequisites first to have an easy time.

image3
Figure: Install the Prerequisites for Project Server 2013 using the built in tool

Some of the prerequisites for Project Server 2013 are the same as the SharePoint 2013 ones so the checks and installs are few and far between:

  • Microsoft .NET Framework 4.5
  • Windows Management Framework 3.0
  • Application Server Role, Web Server (IIS) Role
  • Microsoft SQL Server 2008 R2 SP1 Native Client
  • Microsoft Sync Framework Runtime v1.0 SP1 (x64
  • Windows Server AppFabric
  • Microsoft Identity Extensions
  • Microsoft Information Protection and Control Client
  • Microsoft WCF Data Services 5.0
  • Cumulative Update Package 1 for Microsoft AppFabric 1.1 for Windows Server (KB2671763)

There were only a couple of installs that I have highlighted above.

image18
Figure: Run the Configuration Wizard to complete the installation of Project Server 2013

With the first step complete we can now run the first configuration that will integrate the bits that we just installed into SharePoint and make sure that SharePoint at least accepts them.

image24
Figure: Limited configuration for Project Server 2013

We are really just running the exact same SharePoint wizard, but with an additional step.

image27
Figure: The 10 step configuration process for SharePoint & Project Server 2013

When we ran the SharePoint 2013 configuration when we only had SharePoint installed we only had 9 steps, now we have 10… some secret sauce…

And that is the per-server configuration complete.. on to the SharePoint configuration…

image33
Figure: The other configuration wizard for SharePoint & Project Server 2013

Now we can move onto the configuring the services that run inside of SharePoint. This config only needs to be run once per farm.

image39
Figure: Adding Project Application Services for SharePoint 2013

I have no idea what this step does except that at the end of this one you get about 20 more databases in your SQL Server. This time however I am only expecting the one new Project Server databases and configuration to be added.

Set-up Project Server 2013

Phew.. so that means that we can get down and dirty with Project Server 2013 now? Well… no… not yet. We need to configure a couple of the things that we have just provisioned so head on over to the SharePoint Administration page.

image
Figure: Manage service applications for SharePoint 2013

Head on over to “Application Management | Manage service applications” to see a list of all of the “Applications” that are available as part of the core SharePoint 2013 deliverable.

image
Figure: Configure the Project Server Service Application

We have just added one called “Project Server Service Application” and that is where we are going now.

image
Figure: Create Project Web App Instance

Now that we are deep in the darkest depths of SharePoint we can create a new Project Web App instance. This will essentially create a new site that will be an instance of the Project Server 2013 UI application that lets us look inside of the project server data.

image
Figure: Defaults for Create Project Web App Instance in Project Server 2013

I am just taking the defaults here, but it is effectively saying that I want to create a new site called “PWA” under the default portal and where I what the database to go and what it should be called. As with all sites you can set quotas at this point, but I don’t need to on a demo box.

image
Figure:

Once you click OK you will go back the  provisioning page where you can monitor the background process that is doing a bunch of goodness knows what behind the scenes. It takes a few minutes but goes through:

  1. Waiting for Resources
  2. Creating Project Web App Site
  3. Provisioning Database
  4. Configuring the new Project Web App Site
  5. Provisioned

image
Figure: You can mange the sire that you created for your Project Server 2013 instance

You can get into the individual Project Web App configuration and settings by selecting the drop-down and hitting the “Mange” option.

image
Figure: Operational Policies, Queue and Workflow settings for Project Server 2013

I am not really interested in tinkering with these options, but I am sure that in a production / live deployment I would need to tweak some mystery undocumented setting to make things shine Smile

Let visit our new portal…

image
Figure: Project Server 2013 portal homepage in SharePoint 2013

I am sure that I will be back to set something up later, but just look at that modern goodness…

image
Figure: Setting up your first Project in Project Server 2013

Done – We have successfully installed, configured, configured, deployed and provisioned our first SharePoint 2013 portal for Project Server 2013… now for TFS…

Install Team Foundation Server 2012 Project Server Extensions

Now that we have Project Server 2013 all set-up we can look to getting it integrated with Team Foundation Server. In order to achieve that we need to both install and configure some extensions. These extensions are similar to the SharePoint Extensions for Team Foundation Server 2012 and need to be installed on all of the front end servers in your SharePoint farm that is supporting Project Server 2012.

image
Figure: The Project Server Extensions are on the TFS 2012 ISO

On the Visual Studio 2012 Team Foundation Server ISO there is a folder that contains the goodies that we are looking for.

image
Figure: Project Server Extensions for Team Foundation Server 2012

Well that was easy… the install detects Project Server 2013 and completes without any hassle.

Integrate Project Server 2013 with Team Foundation Server 2012

We now need to Enable Data Flow Between Team Foundation Server and Microsoft Project Server and effectively plug the correct part of our TFS Team Project into the correct Project in Project Server.

There are five mini tasks that we needs to perform to get the data flowing:

  1. Register an instance of PWA
  2. Map the PWA instance with a team project collection
  3. Upload default field mappings
  4. Associate an enterprise project plan with a team project
  5. Add team members to the enterprise resource pool

The first three are easy as I have everything ready…

Figure: Register, map to collection and load mappings

The next has some prerequisites. I need a Team Project and a Project Plan in Project Server 2013.

image
Figure: Create an Enterprise Project Plan to start us off

Create the Enterprise Project Plan, give it a name and same it to start the process.

image
Figure: I now have a MyFirstEP in Project Server 2013

With that new Enterprise Project Plan created I now need to create a Team Project in Team Foundation Server to map it to.

image
Figure: Creating MyFirstTP is just as easy in Team Foundation Server 2012

Now all we need to do is take both the names and stick them together with the key Work Item Types that will be managed. In the case of the Visual Studio Scrum template it would be the Product Backlog Item, Task & Bug.

Why Bug you might ask… well the Product Owners are going to be ordering Bugs along with PBI’s to reflect what needs to be done so they should be part of the rollup. Even if you are not pushing these Bugs to Project Server you do need the system to roll up any sub data. For other Process Template and for custom ones check the “Requirements Category” and the “Task Category” in the categories XML file for the full lists.

Figure: Wire up the two containers

Now you don’t need to run these commands against the TFS Server from the server itself. In fact if, like me, you never install Visual Studio or even Team Explorer onto your TFS server then you will need a client box to do this from.

image
Figure: The TfsAdmin command has the magic sauce

In running those commands I ran into a little fun. After all this is the crescendo to all that we have been set to and where else would murphy strike if here! So I dutifully got the trunsion out to sort out both Project Server and TFS:

Running the last command.. the one to match up the Team Project with the Enterprise Project plan I ran into an error that I have not yet been able to fix.

TF294012: Cannot access the following enterprise project: MyFirstEP. Verify that the project exists, has been published and that the necessary permissions have been granted to the service account for the team project collection to access the project.

This completely blocked me for a while as the documentation is rather confusing and the defaults in Project Server 2013 mean that the options that you require do not even exist and you need to change the Project Server security model for it to work.

Conclusion

Just because I am blocked on my test environment does not mean that while not encompassing all of the options this should give you a start into creating Enterprise Project Plans in Project Server 2013 and syncing data between it and Team Projects in Team Foundation Server 2012.

It is not the easiest thing in the world to integrate Project Server 2013 with Team Foundation Server 2012 but the benefits, when coupled with solid agile processes can be powerful. Leaving the Tasks to the Development Team and the low level PBI’s to the Product Owner and concentrating on organising and ordering the big rocks can be hard for many PMO offices that are use to task down management, but it is necessary. Your teams can and will surprise you.

  • Good post, thank you:)

  • vramona

    Thanks for sharing all this.

    Still I have an issue, on line
    TfsAdmin ProjectServer /UploadFieldMappings /collection:http://win-eo45n4fnsoc:8080/tfs/tfs01 /useDefaultFieldMappings

    it says me

    ……………………..TF294026: The following work item field does not exist : Microsoft.VSTS.Scheduling.CompletedWork. Contact your administrator for Team Foundation Server to add this work item field.

    Have an idea about how to solve this ?

  • bsexton

    Thanks for sharing this post – I have a question which maybe someone can answer. We’re just now getting set up on TFS and using areas and iterations to define our projects (with everything existing under one master Team Project in TFS). How would one do the connection mapping in this case? Does anyone know if this creates an issue if we aren’t set up to map directly from a Project Server project to a Team Project, but instead want to map Project Server to say, all the work items that fall within a certain iteration and/or area? Thanks!

  • Gokhan

    Thanks for the post. I have insttalled TFS 2012 Server installed on SERVER-1 and Sharepoint on SERVER-2. What am i supposed to do with Project server? On SERVER-3 or on SERVER-2?

  • habi2al

    Hello! I’d successfully integrated PS 2013 with TFS 2012 only with this post help! Thanks.

    Now in one Enterprise project I can not publish resources plan, scheduled job for it failing. Got such error message in SharePoint ULS log

    PSI: [QUEUE] SynchronizeTaskListInManagedModeMessage failed on project 159f5f7f-5ed2-e211-9404-005056b90c95. Exception: System.InvalidCastException: Cannot cast DBNull.Value to type ‘System.Int16’. Please use a nullable type. at System.Data.DataRowExtensions.UnboxT`1.ValueField(Object value) at Microsoft.Office.Project.Server.BusinessLayer.ProjectModeManaged.UpdatePercentComplete(DataRow row, SPListItem listItem)

    Suppose this is filed mapping error, but what fields are involved?

    • Have you tried the event log?

      • habi2al

        the first that I’d inspected was event log, and than I looked ULS. I can post info on Monday. What exact You will need?

      • habi2al

        here event text from Events

        Standard Information:PSI Entry Point:

        Project User:

        Correlation Id:

        PWA Site URL:

        SA Name:

        PSError:

        A queue job has failed. This is a general error logged by the Project Server Queue everytime a job fails – for effective troubleshooting use this error message with other more specific error messages (if any), the Operations guide (which documents more details about queued jobs) and the trace log (which could provide more detailed context). More information about the failed job follows. GUID of the failed job: 9375ba12-93e7-e211-940c-005056b90c95. Name of the computer that processed this job: 4d207973-7bcf-4ece-9ee6-ad3f337117e6 (to debug further, you need to look at the trace log from this computer). Failed job type: ProjectPublish. Failed sub-job type: SynchronizeTaskListInManagedModeMessage. Failed sub-job ID: 38. Stage where sub-job failed: (this is useful when one sub-job has more than one logical processing stages).

  • habi2al

    Hi! another error with updating tasks. I am administrator on PWA, TFS, SharePoint. I’m successfully added new task for me. It’s appear in Enterprise Project, but when I try to update task from Visual Studio, I get this error, time by time, TF285010: The following user is not a valid Project Server resource: . Add the Team Foundation user to the enterprise resource pool.

    According to this in event viewer on server, where Project Server installed, new event appears. ProjectServerError(s) LastError=GeneralSecurityAccessDenied Instructions: Pass this into PSClientError constructor to access all error information (тип SoapException)Подробности SoapException:

    But when another person creates or updates his or her task in visual studio, everything is ok.

    Have You any idea about it?

    PS.

    In email alert with this error I get this

    Changed fields
    Field New value
    TF285010: The following user is not a valid Project Server resource: . Add the Team Foundation user to the enterprise resource pool of the PWA instance and add it to the Team Members group. Then, add the user to the resource pool of the mapped enterprise project plan and publish the plan.
    257
    its weird, but this number 257 is increased time to time, initially it was 60

    • When you add a new person to the Team Project you MUST also add them to the Resources in the Enterprise Project Plan and assign them to it. If you don’t then you get this message when the connector tries to sync any work that is assigned to them.

    • You need to add that other user as a Resource on the Enterprise Project plan otherwise updates will not be taken.

  • Sawyer

    Running into the following TFS error: TF282809. It looks like effort hours are not syncing to PWA. Has anyone run into this?

  • Jacobo

    hi, is possible install tfs and Project server in a same vm or is a best practice install independent instance for each tool?

    • I only ever install it on the same box for demo purposes. You should really have it in separate instances. My understanding is that Project Server creates a lot of load on SharePoint.

      • Jacobo

        thanks, and this a great post 🙂

  • William

    This integration experiment by Microsoft is a failure. We tried to use it on a few different projects, and while so promising, bugs/issues just killed it. Save your sanity and productivity, stay away. Nonetheless, thanks for the helpful posts and tips during our failed experiment.

    • Agreed. And I would add that anyone planning a project with MS Project or Project Server has already failed and should throw in the towel. I have never seen an implementation of Project Server that was successful. With successful defined as more value delivered to the customer…

  • Zakariah Salhab Al-Tamimi

    I have the following error when i try to register PWA instance :-

    TF244069: An error occurred while checking the provisioning status of the reporting database schema for a PWA instance.Project Server returned the following error: “Server was unable to process request. —> Exception has been thrown by the target of an invocation. —> Value cannot be null.”.

  • Chr Stion MaestrOo Piano

    Hi thanks for your post! But my issue persist TF400958 : “The project server service account does not have sufficient permissions to call the Project Server Web services. Contact your Project Server administrator to verify that the Project Server service account has the required permissions.”

    • One of the accounts does not have permission, could be yours, or the TFS Service account.