TFS and Project Server Integration: Tips from the Trenches (Part 3)

ALM
5908
ALM

Links to this series:

Part 3: Configuring the Bits

Now that you’ve installed the Integrator, you need to configure it. This happens at various levels:

  1. Register the PWA with TFS
  2. Associate a Project Collection with a registered PWA
  3. Specify mappings (or use the default mapping)
  4. Associate a Team Project with one (or more) Enterprise Projects
  5. Mark Tasks for synchronization

You only need to configure the Project Collection <-> PWA once – but for each Team Project that you want to map to an Enterprise Project, you’ll need to configure a mapping (again, usually just once).

I logged into a client machine with VS 2010 SP1 installed (that’s where tfsadmin.exe comes from) as TFSSetup (my admin account for the integration).

Registering a PWA

To register a PWA, open a VS command prompt and use the following command:

tfsadmin ProjectServer /RegisterPWA /pwa:pwaUrl /tfs:tfsUrl

where

TF244079 when trying RegisterPWA

If you get the following (helpful!) error:

TF244079: An error occurred while retrieving the URL for shared services

then you probably haven’t installed the latest cumulative updates for Project Server (Project 2010 SP1 is also available – if you install SP1, make sure you run the Sharepoint Configuration Wizard after installing the SP).

Associate a Project Collection to a Registered PWA

To map a Project Collection to a PWA, open a VS command prompt and use the following command:

tfsadmin ProjectServer /MapPWAToCollection /pwa:pwaUrl /collection:tpcUrl

where

Specifying Mappings

You can customize the mappings yourself if you want to deviate from the default mapping – consult the help file if you want to do this. For this example, I used the default mapping.

To specify the default mapping, use the following command:

tfsadmin ProjectServer /UploadFieldMapping /collection:tpcUrl /useDefaultFieldMappings

where tpcUrl is the url to the Project collection – like http://server:8080/tfs/DefaultCollection

Mapping a Team Project to an Enterprise Project

Now you can map a Team Project to an Enterprise Project. Use the following command:

tfsadmin ProjectServer /MapPlanToTeamProject /collection:tpcUrl /enterpriseProject:epmProjectName /teamProject:teamProjectName /workItemTypes:typeList /nofixedwork

where

  • tpcUrl is the url to the Project collection – like http://server:8080/tfs/DefaultCollection
  • epmProjectName is the name of the Project Plan on Project Server (use “” to enclose the name if it contains spaces)
  • teamProjectName is the name of the Team Project in TFS (use “” to enclose the name if it contains spaces)
  • typeList is the list of types you want to sync – if you specify multiple types, use “” to enclose the comma-separated list without spaces after the commas (for example, “Requirement,Task” or “User Story,Task”)
  • nofixedwork specifies no fixed work in Project (consult the Integration help file for more info on this switch).

In the next post, we’ll look at how to synchronize work items.