Compartilhar via


Personalizar o mapeamento de campos entre o TFS e o Project Server

Para sincronizar dados entre um plano de projeto corporativo e um projeto de equipe, você deve associar os campos de itens de trabalho no Visual Studio Team Foundation Server (TFS) com os campos no Microsoft Project Server. Você pode adicionar campos e especificar como eles são sincronizados personalizando os mapeamento de campos. Você pode mapear os campos internos e personalizados no Project. Por exemplo, você pode compartilhar dados que não estão relacionados a cronogramas (tais como centros de custo, nomes de equipes ou status de integridade) se adicionar os campos que armazenam esses tipos de dados aos mapeamentos.

Você mantém um conjunto de mapeamentos de campo para cada coleção de projetos de equipe que hospeda projetos de equipe que você deseja sincronizar com o Project Server. Você deve definir os mapeamentos de campos de cada coleção de projetos de equipe que tenha mapeado para uma instância do Project Web Access ou do Project Web App (PWA). Você pode carregar os mapeamentos padrão ou personalizar um arquivo de mapeamento e carregá-lo. Para carregar os mapeamentos padrão, consulte Carregar mapeamentos mais adiante neste tópico.

Dica

Os mapeamentos para a integração do TFS e do Project Server são distintos do arquivo de mapeamento para Microsoft Project.Para obter mais informações, consulte Personalizar o arquivo de mapeamento de campo do Microsoft Project.

Como mostra a ilustração a seguir, você personaliza os mapeamentos em cinco etapas:

Personalizando os mapeamentos de campo entre o Team Foundation Server e o Project Server

Fluxo de trabalho para personalizar o mapeamento de campo do TFS PS

Dica

Você pode atualizar o arquivo de mapeamento na frequência que desejar.Os campos que aparecem na guia Project Server são atualizados para cada tipo de item de trabalho que participa da sincronização de dados.Você não deve alterar manualmente as definições da guia Project Server.Para obter mais informações, consulte Personalizar a guia do Project Server mais adiante neste tópico.

Neste tópico

  • Mapeamentos padrão

  • Determinar campos adicionais a serem mapeados

  • Baixar mapeamentos para um arquivo

  • Atualizar mapeamentos

  • Carregar mapeamentos

  • (Opcional) Personalizar a guia Project Server

Dica

Para assistir a demonstração em vídeo, consulte a seguinte página no site da Microsoft: Gerenciando mapeamentos de campos para integração do Team Foundation Server e do Project Server.

Requisitos

Para concluir os procedimentos neste tópico, você deve ter a permissão Administrar a integração do Project Server configurada como Permitir. Você também deve conceder a permissão Administrar integração do Project Server à conta de serviço do Team Foundation Server. Para obter mais informações, consulte Atribuir permissões para dar suporte à integração TFS-Project Server.

Mapeamentos padrão

Os mapeamentos determinam quais campos são sincronizados quando um usuário atualiza informações no Team Foundation ou no Project Server. Cada um dos seguintes tipos de sincronização tem seu próprio conjunto de mapeamentos:

  • Para publicar sincronização, os dados no Project Server atualizam os dados no Team Foundation. Você usa o elemento targetToTfs para especificar o campo no Project Server que atualiza o campo em Team Foundation.

  • Para sincronização de status, os dados em Team Foundation são enviados à fila de status no Project Server. Você usa o elemento tfsToTarget para especificar o campo que atualiza o campo da fila de status no Project Server.

Para obter mais informações sobre esses dois tipos de sincronização, consulte Visão geral do processo de sincronização para integração do TFS com o Project Server.

A tabela a seguir lista o conjunto padrão de campos que são mapeados entre o Team Foundation e o Project Server. A tabela indica também quais tipos de itens de trabalho usam os campos baseados nos modelos de processo padrão que o TFS fornece. Você não deve modificar esses mapeamentos se estiver mapeando para um projeto de equipe criado a partir de um modelo de processo baseado no Agile Software Development ou na Melhoria de Processo CMNI Capability Maturity Model Integration (Capability Maturity Model Integration – Modelo de Maturidade em Capacitação - Integração). Se estiver mapeando para um projeto de equipe criado a partir do modelo de processo do Scrum, você precisará fazer algumas modificações, conforme descrito mais adiante neste tópico em Alterações necessárias a serem feitas ao mapear para um projeto de equipe criado a partir do modelo de processo do Scrum.

Para obter mais informações sobre mapeamentos e o processo de sincronização, consulte Referência a elementos XML de mapeamento de campos para a integração do TFS com o Project Server.

Campo do Team Foundation

Campo do Project Server

Campo Fila de Status

Tipos de itens de trabalho no Agile

Tipos de itens de trabalho no CMMI

Tipos de itens de trabalho no Scrum

Título

Nome da Tarefa

Título

Todos

Todos

Todos

Atribuído a

Recursos

Recursos

Todos

Todos

Todos

Trabalho Concluído

Trabalho Real da Tarefa

Trabalho Real do Recurso

Tarefa

Tarefa

Nenhum

Trabalho restante

Trabalho Restante da Tarefa

Trabalho Restante do Recurso

Tarefa

Tarefa

Tarefa

Estimativa Original

Trabalho da Linha de Base

  

Tarefa

Bug, Solicitação de Alteração, Problema, Requisito, Risco e Tarefa

Nenhum

Data de Início

Início da Tarefa

Início do Recurso

Tarefa e História do Usuário

Tarefa e Requisito

Nenhum

Data de Término

Término da Tarefa

Término do Recurso

Tarefa e História do Usuário

Tarefa e Requisito

Nenhum

Alterações necessárias a serem feitas ao mapear para um projeto de equipe criado a partir do modelo de processo do Scrum

Há duas alterações que você deve fazer para permitir o fluxo de dados de um projeto de equipe criado a partir de um modelo de processo do Microsoft Visual Studio Scrum. Você deve adicionar os campos Trabalho Concluído e Estimativa Original ao tipo de item de trabalho Tarefa, além de remover os elementos que exigem que o campo Trabalho Restante esteja vazio quando um membro da equipe alterar o estado para Concluído ou Removido.

Para atualizar a definição do tipo de tarefa do Scrum

  1. Abra uma janela do Prompt de Comando onde o Visual Studio ou o Team Explorer esteja instalado e digite:

    cd %programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE
    

    Em uma edição de 32 bits do Windows, substitua %programfiles(x86)% por %programfiles%.

  2. Para exportar a definição de tipo para Tarefa, digite o seguinte comando, substituindo seus dados para os argumentos que são mostrados aqui, em que CollectionURL especifica a URL de uma coleção de projetos de equipe, ProjectName especifica o nome de um projeto de equipe definido dentro da coleção e "DirectoryPath\FileName.xml" especifica o nome e o local do arquivo a ser exportado. Em seguida, clique em Enter.

    witadmin exportwitd /collection: /p:"ProjectName" /n:"Task" /f:"DirectoryPath\FileName.xml"
    
  3. Em um editor de texto ou no Visual Studio, abra o arquivo exportado.

  4. Dentro da seção de definição FIELDS, adicione esse trecho de código antes do elemento de Trabalho Restante:

    <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>
    
  5. Dentro da seção <WORKFLOW>, remova o seguinte trecho de código das definições <STATE value="Done"> e <STATE value="Removed">:

    <FIELD refname="Microsoft.VSTS.Scheduling.RemainingWork">
       <EMPTY />
    </FIELD>
    
  6. Na seção <FORM>, adicione os seguintes elementos 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" />
    
  7. Salve e feche o arquivo.

  8. Importe o arquivo, substituindo seus dados pelos argumentos mostrados.

    witadmin importwitd /collection: /p:"ProjectName" /f:"DirectoryPath\FileName.xml"
    
  9. Atualize a página do projeto de equipe ou dos itens de trabalho para verificar as alterações.

Para obter mais informações, consulte Exportar e importar tipos de item de trabalho [redirecionado], Definir campos de item de trabalho e Elaborar e personalizar um formulário de item de trabalho [redirecionado].

Determinar campos adicionais a serem mapeados

Determine as seguintes informações para cada campo que você deseja sincronizar, além dos campos padrão:

  • O nome de referência do campo no Team Foundation. Se você deseja sincronizar um campo no Project Server com um campo que você deve criar no Team Foundation, primeiro crie o campo em cada tipo de item de trabalho que você está sincronizando. Para obter mais informações, consulte Referência de campo de item de trabalho do Visual Studio ALM e Definir campos de item de trabalho.

  • O nome do campo no Project Server que atualizará o campo no Team Foundation. Para obter uma lista de campos disponíveis, consulte Restrições ao mapeamento de campos do Project Server na integração do TFS com o Project Server.

  • O nome do campo a ser atualizado no Project Server e o nome do campo no Project Server que atualizará o campo de espelho no Team Foundation Server serão atualizados.

  • Para exibir os campos no formulário de item de trabalho. Você configura o valor do atributo displayTfsField como true para os campos que deseja que apareçam no formulário de item de trabalho. Você configura o valor do atributo displayTfsMirror como true para o formulário de item de trabalho.

  • Seja para resolver conflitos de dados ao permitir que o valor do campo em Team Foundation substitua o valor do campo no Project Server ou para manter ambos os valores. Essa decisão determina o valor do atributo onConflict. Quando onConflict=”PsWins” estiver configurado, o valor do campo no Project Server substituirá o valor do campo no Team Foundation. Para obter mais informações, consulte campo elementos e atributos.

  • Os valores adicionais que você deve definir para oferecer suporte a listas de opções ou tabelas de pesquisa personalizadas no Project Server.

Restrições sobre dados que você pode mapear

Depois de determinar quais campos você deseja mapear, observe as seguintes restrições:

  • Você pode enviar somente informações de nível de tarefa, campos pjTask*, do Project Server ao Team Foundation Server.

  • Você pode enviar somente informações de nível de recurso, campos pjResource*, de Team Foundation Server à fila de status do Project Server.

  • O campo Título é o único campo que você pode enviar para Team Foundation Server e para a fila de status.

  • O valor acumulado é calculado automaticamente para os campos Atribuído a, Trabalho Concluído e Trabalho Restante. Você não pode mapear campos adicionais e ter o valor acumulado calculado para eles. Para obter mais informações, consulte Trabalhar com acúmulo de recursos em projetos corporativos mapeados para projetos da equipe.

  • Você deve se assegurar de que os tipos de dados ou as unidades de cada campo que você mapeia estejam em conformidade com os critérios de mapeamento de campo para os campos padrão e personalizados da empresa. Para obter mais informações, consulte “Tipos de dados e critérios de mapeamento de campo” em Restrições ao mapeamento de campos do Project Server na integração do TFS com o Project Server.

  • Você pode mapear campos que estão associados a listas de opções em Team Foundation. No entanto, você deve criar tabelas de pesquisa no Project Server para corresponder às listas de opções. Não é possível sincronizar automaticamente as listas de opções e as tabelas de pesquisa.

Para obter mais informações, consulte Restrições ao mapeamento de campos do Project Server na integração do TFS com o Project Server.

Exemplo: mapeando o nome da equipe a ser exibido no Project

No exemplo a seguir, o campo de cadeia de caracteres personalizado no Team Foundation, MyCompany.MyOrg.DevTeamName, é mapeado para um campo de texto personalizado da empresa no Project Server, Nome da Minha Equipe na Empresa. Você pode usar esse exemplo para exibir no Project Professional o nome da equipe que está associada a uma tarefa.

<field tfsName="MyCompany.MyOrg.DevTeamName" tfsMirrorName="Mirror.MyCompany.MyOrg.DevTeamName" displayTfsField="false" displayTfsMirror="false" onConflict="DoNothing">
   <tfsToTarget>
   <target provider="ProjectServerStatusQueue" name=" My Company Team Name" />
   </tfsToTarget>
   <targetToTfs>
      <target provider="ProjectServerPublished" name=" My Company Team Name" />
   </targetToTfs>
</field>

Nenhum campo aparece no formulário de item de trabalho. Além disso, se os valores não corresponderem, cada campo permanecerá com seu próprio valor.

Voltar ao início

Exemplo: exibindo a área e os caminhos de iteração no Project

Você pode mapear os campos Área (System.AreaPath) e Iteração (System.IterationPath) no Team Foundation para que eles apareçam em seus planos de projeto. Como esses campos de caminho em árvore são alterados com frequência, você deve mapeá-los como campos de texto no Project. Os gerentes de projeto que usam esses campos devem inserir manualmente o caminho completo da área ou o caminho da iteração.

Importante

A implantação atual do Team Foundation Server e a integração do Project Server não suporta a sincronização automática de listas de valores, listas de opções, listas globais ou listas de caminhos em árvore permitidas que são definidas para campos mapeados entre os dois produtos de servidor.Para obter a melhor experiência, você deve fazer entradas manuais no plano de projeto que correspondam àquelas no Team Foundation.Se você especificar uma entrada não válida, uma caixa de diálogo de validação será exibida quando você publicar o plano.

Para adicionar os campos Área e Iteração a um plano de projeto, execute as seguintes ações:

  1. Adicione dois campos de empresa do cliente ao Project Server e os rotule como Área (TFS) e Iteração (TFS).

    Para obter mais informações, consulte a seguinte página no site da Microsoft: Criando tabelas de pesquisa e campos personalizados da empresa.

  2. Exporte os mapeamentos de campo da coleção de projetos de equipe em que os projetos de equipe estão definidos.

    Para obter mais informações, consulte mais adiante neste tópico Baixar mapeamentos para um arquivo.

  3. Adicione o seguinte código ao arquivo:

    <field tfsName="System.AreaPath" tfsMirrorName="Mirror.System.AreaPath" displayTfsField="true" displayTfsMirror="true">
            <tfsToTarget>
              <target provider="ProjectServerStatusQueue" name="Area (TFS)" />
            </tfsToTarget>
            <targetToTfs>
              <target provider="ProjectServerPublished" name="Area (TFS)" />
            </targetToTfs>
          </field>
          <field tfsName="System.IterationPath" tfsMirrorName="Mirror.System.IterationPath" displayTfsField="true" displayTfsMirror="true">
            <tfsToTarget>
              <target provider="ProjectServerStatusQueue" name="Iteration (TFS)" />
            </tfsToTarget>
            <targetToTfs>
              <target provider="ProjectServerPublished" name="Iteration (TFS)" />
            </targetToTfs>
          </field>
    
  4. Importe o arquivo de mapeamento dos campos atualizados, conforme descrito mais adiante neste tópico em Carregar mapeamentos.

  5. Sincronize seu plano de projeto com o Project Server.

  6. Adicione as duas novas colunas aos novos campos, Área (TFS) e Iteração (TFS), em seu plano de projeto

As alterações feitas nos campos Área e Iteração no Team Foundation serão sincronizadas com esses campos em seu plano de projeto. Além disso, é possível atualizar esses campos no Project e publicar suas alterações do Team Foundation se você especificar valores que tenham sido definidos no Team Foundation.

Voltar ao início

Baixar os mapeamentos para um arquivo

Dica

Você somente pode baixar mapeamentos de uma coleção de projetos de equipe para os quais eles tenham sido carregados.Se você deseja baixar os mapeamentos padrão para um arquivo, deverá primeiro carregá-los, conforme descrito mais adiante neste tópico em Para carregar os mapeamentos padrão.Como alternativa, você pode copiar o conteúdo dos mapeamentos padrão.Para obter mais informações, consulte Referência a elementos XML de mapeamento de campos para a integração do TFS com o Project Server.

Para baixar os mapeamentos para um arquivo

  1. Para executar a ferramenta de linha de comando TfsAdmin, abra uma janela do prompt de comando se Visual Studio ou Team Explorer estiverem instalados e insira:

    cd %programfiles%\Microsoft Visual Studio 11.0\Common7\IDE
    

    Em uma edição de 64 bits do Windows, substitua %programfiles% por %programfiles(x86)%..

  2. Digite o seguinte comando e pressione a tecla Enter.

    TfsAdmin ProjectServer /DownloadFieldMappings /collection:tpcUrl /filePath:MappingFile
    

    Substitua tpcUrl pela URL (Uniform Resource Locator) da coleção de projetos de equipe e substitua MappingFile pelo caminho e nome do arquivo que você personalizará.

  3. Aguarde até as seguintes mensagens serem exibidas:

    Baixando MappingFile para Coleção de Projetos de Equipe tpcUrl.

    Você baixou com êxito o arquivo de mapeamento de campo MappingFile para Coleção de Projetos de Equipe tpcUrl.

Atualizar os mapeamentos

Para cada campo que você deseja adicionar ao arquivo de mapeamento, especifique o elemento field e seus subelementos e atributos. Para obter mais informações, consulte Referência a elementos XML de mapeamento de campos para a integração do TFS com o Project Server.

Carregar os mapeamentos

Você carrega mapeamentos usando o comando UploadFieldMappings. Você pode carregar os mapeamentos padrão usando a opção /usedefaultfieldmapping. Caso contrário, você deve especificar um arquivo que contenha os elementos de mapeamento.

Para carregar os mapeamentos padrão

  1. No prompt de comando, digite o seguinte comando e escolha ENTER.

    TfsAdmin ProjectServer /UploadFieldMappings /collection:tpcUrl /usedefaultfieldmappings
    

    Substitua tpcUrl pela URL da coleção de projetos de equipe.

  2. Aguarde até as seguintes mensagens serem exibidas:

    Carregando mapeamentos de campo padrão para CollectionUri.

    Você carregou com êxito mapeamentos de campo para a coleção CollectionUri.

Para carregar os mapeamentos de um arquivo

  1. No prompt de comando, digite o seguinte comando e escolha ENTER.

    TfsAdmin ProjectServer /UploadFieldMappings /collection:tpcUrl /filePath:MappingFile /force
    

    Substitua tpcUrl pela URL da coleção de projetos de equipe e substitua MappingFile pelo caminho e nome do arquivo de mapeamento personalizado. Especifique /force se estiver atualizando os mapeamentos existentes.

  2. Aguarde até as seguintes mensagens serem exibidas:

    Carregando MappingFile para Coleção de Projetos de Equipe tpcUrl.

    Você carregou com êxito o arquivo de mapeamento de campo MappingFile para Coleção de Projetos de Equipe tpcUrl.

Personalizar a guia Project Server

Ao associar um plano de projeto corporativo a um projeto de equipe, a guia Project Server é adicionada ao formulário de item de trabalho, como mostra a ilustração a seguir. A guia é adicionada a somente esses tipos de itens de trabalho que você especifica para participar da sincronização de dados. Você personaliza essa guia ao configurar os atributos displayTfsField ou displayTfsMirror como true para esses campos que você deseja que apareçam no formulário.

Guia Project Server

Campos do Project Server guia padrão

Importante

Os mapeamentos de campos que são definidos na coleção de projetos de equipe determinam os campos que aparecem na guia Project Server.Após a adição dessa guia a um tipo de item de trabalho para um projeto de equipe, você pode atualizá-la ao modificar os mapeamentos de campo da coleção.Se você personalizar manualmente o formulário de item de trabalho adicionando campos à guia Project Server ou alterando sua localização no formulário, a guia poderá não ser atualizada automaticamente com as alterações futuras feitas nos mapeamentos de campos.Se essa condição ocorrer, você poderá modificar a guia manualmente.Para obter mais informações, consulte Elementos XML adicionados à definição para o tipo de item de trabalho.

Para obter mais informações sobre cada campo padrão que aparece na guia Project Server, consulte Campos do Project Server adicionados ao TFS para dar suporte à sincronização de dados.

Consulte também

Tarefas

Configurar a integração TFS-Project Server

Conceitos

Especificar os tipos de itens de trabalho a serem sincronizados

Administrar a integração do Team Foundation Server com o Project Server