0

Configurando Team Projects com Enterpriste Projects e mapeando Work Itens

Certa vez em meus testes de integração do TFS 2010 com PS 2010 vi uma situação que merecia um post separado, pois precisamos ter muita atenção nesse quesito, o mapeamento de work itens e a configuração de projetos no PS Server e no TFS. Segue abaixo os comandos para que isso ocorra com sucesso.

Executar o prompt de comando  como administrador e acessar o caminho:

C:/Program Files (x86 )/Microsoft Visual Studio 10.0/Common7/IDE/
Executar a seguinte linha de commando:

TfsAdmin ProjectServer /MapPlanToTeamProject /collection:http://AdventureWorksServer:8080/tfs/Collection0 /enterpriseproject:MyEnterpriseProjA /teamproject:MyTeamProjB /workitemtypes:”User Story,Task”

 

Substituindo http://AdventureWorksServer:8080/tfs/Collection0 pelo endereço do servidor de TFS seguindo da Collection principal, MyEnterpriseProjA pelo nome do  Projeto que esta publicado no Project Server 2010, MyTeamProjB pelo nome do Team Project que vai sincronizar no TFS 2010 e em workitemtypes colocar os itens que quer sincronizar, sem as aspas.

Para projetos CMMI geralmente esses são os workitens utilizados: Bug, Change Request, Issue, Requirement, Risk, and Task , sendo os principais Requirement, Task , e para projetos MSF Agile são: User Story, Tasks  e SCRUM: Sprint, Task. Conforme a tabela abaixo:

Team Foundation field Project Server field Status Queue field Work item types in Agile 5.0 Work item types in CMMI 5.0 Work item types in Scrum 1.0
Title Task Name Title All All All except for Sprint
Assigned To Resources Resources All All All except for Sprint
Completed Work Task Actual Work Resource Actual Work Task Task None
Remaining Work Task Remaining Work Resource Remaining Work Task Task Task
Original Estimate Baseline Work Task Bug, Change Request, Issue, Requirement, Risk, and Task None
Start Date Task Start Resource Start Task and User Story Task and Requirement Sprint
Finish Date Task Finish Resource Finish Task and User Story Task and Requirement Sprint


::IMPORTANTE::

Se estiver usando o template SCRUM 1.0 , é necessário fazer manualmente o mapeamento dos work items que deseja sincronizar executando os seguintes comandos e ações:

witadmin exportwitd /collection:http://ServerName:Port/VirtualDirectoryName/CollectionName /p:projectName /n:WorkItemTypeName /f:FileName

Alterar http://ServerName:Port/VirtualDirectoryName/CollectionName para o caminho correto da collection principal complete , projectName para o nome do projeto ,  WorkItemTypeName pelo tipo que irá exportar para alterar neste caso Sprint FileName pelo caminho onde irá ser feito o download e o nome do arquivo xml que irá mostrar o mapeamento dos work items.

Acessar o arquivo gerado na pasta indicada Ex.: C:\Maps\sprint.xml , abrir e adicionar as seguintes linhas na chave FIELDS :

<FIELD name=”Completed Work” refname=”Microsoft.VSTS.Scheduling.CompletedWork” type=”Double” reportable=”measure” formula=”sum”>

<HELPTEXT>The number of units of work that have been spent on this task</HELPTEXT>

</FIELD>

<FIELD name=”Original Estimate” refname=”Microsoft.VSTS.Scheduling.OriginalEstimate” type=”Double” reportable=”measure” formula=”sum”>

<HELPTEXT>Initial value for Remaining Work – set once, when work begins. </HELPTEXT>

</FIELD>

Depois adicionar na chave Control:

<Control FieldName=”Microsoft.VSTS.Scheduling.OriginalEstimate” Type=”FieldControl” Label=”Original Estimate:” LabelPosition=”Left” />

<Control FieldName=”Microsoft.VSTS.Scheduling.CompletedWork” Type=”FieldControl” Label=”Completed:” LabelPosition=”Left” />

Salvar o arquivo e executar o comando abaixo para importar as alterações:

witadmin importwitd /collection:http://ServerName:Port/VirtualDirectoryName/CollectionName /p:projectName /n:WorkItemTypeName /f:FileName

 

::Comandos para verificar integração::

Fazer download dos mapeamentos feitos:

TfsAdmin ProjectServer /DownloadFieldMappings /collection:http://demotfs2010:8080/tfs/democollection /filePath:c:\temp\mappingfile.txt

Verificar os Work Itens mapeados:

tfsadmin
projectserver /GetMappedWorkItemTypes /collection:http://demotfs2010:8080/tfs/democollection /teamproject:DemoAgile

 

Verificar projetos mapeados:

tfsadmin projectserver /GetMappedProjects /collection:http://demotfs2010:8080/tfs/democollection

  ::Comandos para Remover integração::

Retirar o Mapeamento do Team Project

TfsAdmin ProjectServer /UnmapPlanFromTeamProject /collection:http://demotfs2010:8080/tfs/democollection /enterpriseProject:”The Master Plan”  /teamproject:DemoAgile

Retirar o mapeamento da Collection:

TfsAdmin ProjectServer /UnmapPWAFromCollection /pwa:http://demosharepoint/pwa /collection:http://demotfs2010:8080/tfs/democollection

Referência:

Customizing the Field Mapping Between Project Server and Team Foundation Server

 

Rogério Rodrigues

Desenvolvedor .net , MSP - Microsoft Student Partner , Xamarin Student Ambassador.