Modificar ou adicionar um campo para dar suporte a consultas, relatórios e fluxos de trabalho
Seu projeto de equipe contém 100 ou mais campos de dados, com base no modelo de processo usado para criar o projeto de equipe. Cada campo é associado a um par de nomes, atributos e regras. Você pode modificar um campo existente ou adicionar um campo personalizado para oferecer suporte ao acompanhamento de requisitos adicionais de dados. Por exemplo, você pode personalizar a lista de opções em um menu suspenso, adicionar uma regra para especificar um valor padrão ou restringir o valor que ele pode ter, ou alterar um atributo de campo.
Para adicionar regras de campo, adicione um campo personalizado, ou para alterar o rótulo de um campo em um formulário do item de trabalho, edite a definição XML para o WIT (tipo de item de trabalho). Para alterar um atributo de campo ou renomear um campo, use a ferramenta de linha de comando witadmin.
Personalizar uma lista de opções
Listas de opções são os valores enumerados que aparecem em um menu suspenso em um formulário de item de trabalho e na coluna Valor do editor de consulta. O método usado para personalizar uma lista de opções varia de acordo com o campo.
Campos de cadeia de caracteres genéricos ou de inteiro
Para alterar a lista de opções para a maioria dos campos de cadeia de caracteres ou de inteiro em um formulário de item de trabalho, edite a definição do WIT. Por exemplo, para adicionar um campo Resolution e uma lista de opções personalizados, especifique o código XML conforme mostrado.
Lista de opções e campos personalizados |
|
As regras oferecem suporte para combinação das listas, restrição de quem uma lista se aplica e definição das condições sobre quando uma lista aparece no formulário de item de trabalho. As regras controlam se uma lista de distribuição será expandida para mostrar os membros individuais ou se a lista será filtrada usando os atributos opcionais expanditems e filteritems. Use listas globais para minimizar o trabalho necessário para atualizar uma lista que é compartilhada entre WITs ou projetos de equipe.
Para saber mais, consulte Definir listas de opções e Definir listas globais.
Campos específicos cujas listas de opções são definidas por outros meios
Para modificar as listas de opções dos campos a seguir, consulte o tópico correspondente:
Área e Iteração: Adicionar e modificar área e caminhos de iteração.
Estado e Motivo: Personalizar o fluxo de trabalho.
Atribuído a ou outros campos com nomes de pessoas: Adicionar a conta de usuário a um grupo de segurança válido do TFS.
Para adicionar valores dos campos associados às contas de usuário como Atribuído a, adicione usuários a um grupo de segurança do TFS ou restrinja o acesso a um grupo ou conjunto de usuários. Por padrão, a lista do campo Atribuído a contém os nomes de conta de todos os usuários e grupos que foram adicionados ao TFS. Essas contas são sincronizadas frequentemente com o Ative Directory. Consulte Configurar grupos a serem usados em implantações do TFS.
Estado da Resolução ou Tipos de Falha (usado pelo Test Manager): ferramenta tcm fieldmapping.
Para todos os outros campos que têm escolher listas associadas them─such como atividade, Status de automação, disciplina, prioridade, além de others─you pode consultar as definições desses campos do índice de campos de item de trabalho.
Adicionar regras a um campo
Para adicionar um campo personalizado ou adicionar regras para um campo, edite a definição do WIT. Você pode limitar as regras para serem aplicadas a usuários ou grupos específicos. A maioria das regras oferecem suporte aos atributos for ou not para focar em quem a regra se aplica ou não se aplica.
Por exemplo, com o seguinte trecho de código, é possível aplicar a regra segundo a qual somente os membros da equipe de gerenciamento, um grupo do TFS definido pelo usuário, podem alterar o campo de classificação de pilha uma vez que um item de trabalho tenha sido criado.
<FIELD name="Stack Rank" refname="Microsoft.VSTS.Common.StackRank" type="Double" reportable="dimension">
<FROZEN not="[project]\Management Team" />
<HELPTEXT>Work first on items with lower-valued stack rank. Set in triage.</HELPTEXT>
</FIELD>
Você aplica regras para realizar as seguintes ações:
Para realizar esta ação: |
Use este elemento XML: |
---|---|
Especificar uma dica de ferramenta. |
HELPTEXT |
Qualificar o valor que um campo pode ter. |
CANNOTLOSEVALUE, EMPTY, FROZEN, NOTSAMEAS, READONLY e REQUIRED |
Copiar um valor ou especificar um padrão. |
COPY, DEFAULT e SERVERDEFAULT |
Restrinja quem pode modificar um campo. |
Atributos de regra de campo VALIDUSER, for e not |
Aplicar a correspondência de padrão em um campo de cadeia de caracteres. |
MATCH |
Aplicar, condicionalmente, as regras com base em valores em outros campos. |
WHEN, WHENNOT, WHENCHANGED e WHENNOTCHANGED |
Para obter mais informações sobre a aplicação de regras de campo, consulte Todas as referências de elementos XML FIELD.
Editar a definição XML do WIT para adicionar regras ou adicionar um campo personalizado
Para adicionar regras ou adicionar um campo personalizado, exporte, edite e depois importe o arquivo de definição do WIT.
Com o witadmin, você pode importar e exportar arquivos de definição. Outras ferramentas que podem ser usadas incluem o Process Editor, disponível com o download de TFS Power Tools ou TFS Team Project Manager, um projeto de recursos da comunidade disponível em CodePlex.
Qualquer campo que você deseja usar para acompanhar dados deve ser adicionado ao arquivo de definição de WIT. Isso é válido para tudo, exceto campos do sistema (campos cujo nome de referência começa com System.), que são definidos automaticamente para cada WIT.
Para adicionar um campo padrão, edite a definição do WIT para adicionar um elemento FIELD na seção FIELDS e um elemento Control na seção FORM.
Para adicionar um campo personalizado
Se não tiver permissões de administrador de projeto para seu projeto de equipe, obtenha-as.
Abra uma janela do Prompt de Comando onde o Visual Studio ou o Team Explorer esteja instalado e digite:
cd %programfiles%\Microsoft Visual Studio 12.0\Common7\IDE
Em uma edição de 64 bits do Windows, substitua %programfiles% por %programfiles(x86)%. É possível baixar o Team Explorer gratuitamente.
Exporte a definição do WIT.
witadmin exportwitd /collection:CollectionURL /p:ProjectName /n:TypeName /f:"DirectoryPath/FileName.xml"
Um exemplo de CollectionURL é http://fabrikamprime:8080/tfs/DefaultCollection.
Localize a seção do arquivo XML que define os campos para o tipo e que começa com FIELDS.
Adicione o elemento FIELD que especifica o nome do campo personalizado para adição. Você deve especificar os seguintes atributos necessários: name amigável, refname (nome de referência) e type. Para obter mais informações, consulte Referência de elemento FIELD (definição).
O código a seguir especifica o campo personalizado, Requestor, com um nome de referência FabrikamFiber.MyTeam.Requestor e uma lista de opções de valores permitidos, com o valor padrão Customer.
<FIELD name="Requestor" refname="FabrikamFiber.MyTeam.Requestor" type="String" reportable="Dimension"> <ALLOWEDVALUES> <LISTITEM value="Customer" /> <LISTITEM value="Executive Management" /> <LISTITEM value="Other" /> <LISTITEM value="Support" /> <LISTITEM value="Team" /> <LISTITEM value="Technicians" /> <DEFAULTVALUE value="Customer" /> </ALLOWEDVALUES> </FIELD>
Dica
Os elementos na lista sempre aparecem na ordem alfanumérica, independentemente de como você os insere no arquivo de definição XML.
O nome de referência, ou refname, é o nome programático do campo.Todas as outras regras devem fazer referência a esse refname.Para obter mais informações, consulte As convenções de nomenclatura para objetos de rastreamento de Item de trabalho.
Adicione o elemento Control na seção FORM de modo que o campo personalizado apareça no formulário no grupo de elementos em que você deseja que ele apareça.
Por exemplo, o seguinte trecho de código adiciona o campo "Requestor" para que apareça sob o campo "Reason" no formulário de item de trabalho.
<Column PercentWidth="50"> <Group Label="Status"> <Column PercentWidth="100"> <Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assi&gned To:" LabelPosition="Left" /> <Control FieldName="System.State" Type="FieldControl" Label="&State:" LabelPosition="Left" /> <Control FieldName="System.Reason" Type="FieldControl" Label="Reason:" LabelPosition="Left" ReadOnly="True" /> <Control FieldName="FabrikamFiber.MyTeam.Requestor" Type="FieldControl" Label="Requestor:" LabelPosition="Left" ReadOnly="True" /> </Column> </Group> </Column>
Dica
A definição de esquema para o acompanhamento de item de trabalho define todos os elementos filho do elemento FORM como maiúsculas e minúsculas concatenadas e todos os demais elementos escritos em letras maiúsculas.Se você encontrar erros ao validar seus arquivos de definição de tipo, verifique a estrutura de maiúsculas e minúsculas de seus elementos.Além disso, a estrutura de maiúsculas e minúsculas das marcas de abertura e fechamento devem corresponder às regras da sintaxe XML.
Para obter mais informações, consulte Referência do elemento XML de controle.
Importe o arquivo de definição de WIT.
witadmin importwitd /collection:CollectionURL /p:ProjectName /f:"DirectoryPath/FileName.xml"
Abra o TWA ou o Team Explorer para ver as alterações. Se o cliente já estiver aberto, atualize a página.
A ilustração a seguir mostra que o formulário de item de trabalho para o item da lista de pendências do produto contém agora o novo campo.
Para obter mais informações sobre o uso de witadmin, consulte Importar, exportar e gerenciar tipos de item de trabalho [witadmin].
Para alterar o rótulo do campo em um formulário de item de trabalho
Exporte o arquivo de definição do WIT.
witadmin exportwitd /collection:CollectionURL /p:ProjectName /n:TypeName /f:"DirectoryPath/FileName.xml"
Nas seções FORM e Layout, localize a definição do campo que você deseja modificar. Este exemplo modifica o rótulo para o campo Title:
<Column PercentWidth="70"> <Control Type="FieldControl" FieldName="System.Title" Label="Title" LabelPosition="Left" /> </Column>
Altere o rótulo para o campo de forma que a filial portuguesa que trabalha nesse projeto específico da equipe possa ler o nome do campo Title quando trabalhar com o formulário de item de trabalho. Inclua a palavra em português equivalente a title (Título) no campo Title.
<Column PercentWidth="70"> <Control Type="FieldControl" FieldName="System.Title" Label="Title (Título):" LabelPosition="Left" /> </Column>
Importe o arquivo de definição de WIT.
witadmin importwitd /collection:CollectionURL /p:ProjectName /f:"DirectoryPath/FileName.xml"
Alterar um atributo de um campo existente
Você usa witadmin changefield para alterar os atributos de um campo existente. Por exemplo, o comando a seguir altera o nome amigável definido para MyCompany.Type para Evaluation Method.
witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.Type /name:"Evaluation Method"
A tabela a seguir resume os atributos que você pode alterar usando witadmin changefield.
Atributo |
Descrição |
---|---|
Tipo de dados |
Especifica o tipo de dados que o campo aceita. Em geral, você não poderá alterar o tipo de dados do campo depois que ele for definido. Você pode alternar o tipo de dados de campo somente para campos de tipo HTML ou PlainText. |
Nome amigável |
O nome amigável aparece nos menus suspensos das consultas de item de trabalho e deve ser exclusivo em todos os campos que são definidos em uma coleção de projetos de equipe. O nome amigável pode diferir do rótulo do formulário que aparece no formulário de item de trabalho. |
Indexável |
Você pode ativar a indexação para um campo para melhorar o tempo de resposta de consultas ao filtrar no campo. Por padrão, os seguintes campos são indexados: Atribuído a, Data de Criação, Alterado por, Estado, Motivo, ID da Área, ID da Iteração e Tipo de Item de Trabalho. |
Atributos de relatório |
Você pode alterar o nome do campo como ele aparece em um relatório, o nome de referência de relatório e o tipo de relatório. Você pode localizar o nome amigável do relatório. O tipo de relatório determina se os dados do campo são gravados no banco de dados de warehouse relacional, no banco de dados de warehouse relacional e no cubo OLAP, ou para gerar uma soma pré-calculada dos valores ao processar o cubo OLAP. Para obter a lista completa dos campos reportáveis padrão, consulte Referência de campos de relatório para o Visual Studio ALM. Para obter mais informações sobre o cubo OLAP, consulte Perspectivas e grupos de medição fornecidos no cubo do Analysis Services para o Visual Studio. |
Sincronização |
Você pode habilitar ou desabilitar a sincronização com o Active Directory para os campos associados às contas de usuário. |
Perguntas e respostas
P: Quais personalizações posso fazer e ainda assim usar o assistente Configurar Recursos para atualizar meu projeto de equipe após uma atualização do TFS?
R: É possível adicionar campos personalizados, personalizar uma lista de seleção, adicionar ou modificar caminhos de iteração e área e adicionar regras a um campo. O assistente Configurar Recursos atualizará seus projetos de equipe e você terá acesso aos recursos mais recentes.
Para saber mais sobre outras personalizações que você pode realizar com segurança e quais deve evitar, consulte Personalizar a experiência de acompanhamento de trabalho: antes de personalizar, entenda as implicações de manutenção e atualização.
P: Onde posso saber mais sobre todos os campos e atributos de campo já definidos para meu projeto de equipe?
R: Para um índice de campos definidos no modelo de processo padrão do TFS, consulte Referência de campo de item de trabalho do Visual Studio ALM.
Além dos atributos que você pode alterar para um campo de item de trabalho, existem diversos atributos não variáveis e virtualmente ocultos para cada campo. É possível pesquisar as atribuições desses campos usando a ferramenta Work Item Field Explorer. Essa ferramenta é acessada usando a Process Editor Power Tool depois de instalar o TFS Power Tools.
Work Item Field Explorer
Para obter uma descrição de cada atributo, consulte esta publicação: Atributos de campo de item de trabalho - O que você pode e não pode alterar.
P: Como faço para adicionar um campo que ofereça suporte à integração com teste, compilação e controle de versão?
R: Diversos WITs contêm campos que oferecem informações geradas por processos automatizados que se integram com o Team Foundation Build, o Microsoft Test Manager ou o Controle de versão do Team Foundation. Para adicionar um desses campos aos seus WITs personalizados, edite a definição de WIT de acordo com as etapas descritas anteriormente neste tópico.
Por exemplo, você pode adicionar os campos Found In e Integrated in Build que aparecem nas definições de tipo para bugs. Esses campos associam bugs às compilações onde foram encontrados ou corrigidos. É possível usar o trecho de código a seguir para adicionar esses campos a uma definição de tipo de item de trabalho.
<FIELD name="Found In" refname="Microsoft.VSTS.Build.FoundIn" type="String" reportable="dimension">
<HELPTEXT>Product build number (revision) in which this item was found</HELPTEXT>
</FIELD>
<FIELD name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild" type="String" reportable="dimension">
<HELPTEXT>Product build number this bug was fixed in</HELPTEXT>
</FIELD>
Para obter mais informações, consulte Campos que dão suporte à integração com teste, compilação e controle de versão.
P: Quando devo usar uma lista global em vez de uma lista de opções simples?
R: Quando você usa uma lista em vários WITs ou em vários projetos de equipe, mantê-la como uma lista global minimiza os requisitos de manutenção. Além disso, se você precisa que partes das listas apareçam de maneira diferente em WITs ou projetos de equipe, pode definir uma lista global para a parte de uma lista de opções. Consulte Definir listas de opções e Definir listas globais.
P: Existem restrições para a modificação de campos System?
R: Sim. Não é possível renomear campos System nem aplicar algumas regras aos campos System. Por exemplo, você não pode copiar ou definir para campos vazios usados para controlar quem criou, alterou ou fechou um item de trabalho, ou os campos de data e hora usados pelo sistema.
Todos os nomes de campos do sistema começam com o prefixo "System" (por exemplo, System.ID). Todos os campos do sistema são definidos para todos WITs, você incluindo-os ou não na definição de WIT. Para saber mais sobre cada campo, consulte Referência de campo de item de trabalho do Visual Studio ALM.
P: Existe uma sequência na qual as regras são avaliadas?
R: Sim, no entanto, vários fatores afetam como o sistema avalia várias regras, de forma que o resultado final não pode sempre ser totalmente conhecido no início. Para obter ter uma ideia das interações e do comportamento esperados, consulte Aplicar uma regra a um campo do item de trabalho.
P: Como devo nomear os campos para oferecer suporte a relatórios?
R: Você pode adicionar campos ou alterar os atributos dos campos existentes para oferecer suporte aos relatórios. Quando você adicionar ou alterar campos, nomeie-os sistematicamente de modo que seja possível localizar o campo no cubo do Analysis Services, pois os campos são agrupados logicamente em pastas. Para saber mais, consulte Adicionar ou modificar campos de itens de trabalho para oferecer suporte a relatórios.
P: Há como limitar o número de nomes que aparecem no campo Assigned To?
R: Sim. Por padrão, o menu suspenso do campo Assigned To exibe todos os usuários aos quais foi concedido acesso ao TFS. Esse é o grupo de usuários válidos padrão. A exceção a essa regra é que em Team Web Access, os menus de contexto que suportam itens de trabalho de atribuição são associados aos membros da equipe.
A maneira mais eficiente de aplicar restrições de segurança é criar grupos personalizados que você gerencia no Windows ou no TFS.
Crie o grupo de segurança que você deseja usar e adicione as contas ao grupo. Por exemplo, crie um novo grupo chamado Colaboradores de Equipe. Consulte Adicionar usuários a projetos da equipe.
Modifique o arquivo de definição para cada tipo de item de trabalho para o qual você deseja limitar a definição do usuário. Adicione o elemento VALIDUSER à definição de elemento FIELD para o campo Atribuído e especifique o grupo do TFS.
Por exemplo, o trecho de código a seguir pode ser adicionado à definição de tarefas para limitar o conjunto de usuários do campo Atribuído a apenas esses membros da equipe adicionados ao grupo de trabalho de equipe do TFS.
<FIELD name="Assigned To" refname="System.AssignedTo" type="String" reportable="dimension" syncnamechanges="true"> <HELPTEXT>The person currently working on this task</HELPTEXT> <ALLOWEXISTINGVALUE /> <VALIDUSER group="Team Contributors" /> </FIELD>
Ao especificar o elemento ALLOWEXISTINGVALUE, você evita os erros de validação que ocorreriam quando os membros saíssem da equipe e não estivessem mais registrados como colaboradores do projeto.
P: Como posso adicionar controles personalizados a um campo?
R: Usando o modelo de objeto para acompanhar itens de trabalho, você pode criar, modificar e localizar bugs, tarefas e outros WITs por programação. Você também pode criar seus próprios controles personalizados que adicionem funcionalidade a um formulário de item de trabalho.
Por exemplo, você pode adicionar os seguintes controles personalizados disponíveis no projeto de Controles personalizados para acompanhamento de itens de trabalho do TFS do CodePlex:
Controle de captura de tela que permite a operação de recortar e colar imagens em um campo HTML.
Controle de navegador Web que permite que um usuário hospede uma página Web e passe valores de campos para essa página Web.
Controle com vários valores que oferece suporte a diversos valores de entrada para um campo mostrando uma lista de caixas de seleção.
Q: Como posso alterar os mapeamentos de campos que oferecem suporte à integração de projetos do TFS?
R: Os projetos de equipe criados a partir de um modelo de processo do TFS incluem um arquivo de mapeamento padrão do Microsoft Project. Se você usar o Project para planejar e acompanhar os itens de trabalho armazenados no TFS, talvez seja preciso mapear campos adicionais do Project ou alterar a forma como um campo do TFS é publicado e atualizado. Você pode fazer isso personalizando o arquivo de mapeamento do Microsoft Project.
Para obter informações sobre como usar o Project com itens de trabalho do TFS, consulte Criar sua lista de pendências e tarefas usando o Project.
P: Que é a melhor maneira de gerenciar um número grande de campos personalizados?
R: Se você precisar adicionar um número grande de campos personalizados que serão usados em vários WITs ou por em vários projetos de equipe, use o fluxo de trabalho global. Você pode simplificar operações de manutenção mantendo o conjunto global de campos e listas de opções usando o fluxo de trabalho global. Consulte Referência de elemento XML do fluxo de trabalho global.
P: Como posso excluir um campo?
R: Quando você remove um campo de um tipo específico de item de trabalho, o campo não é removido da coleção ou do servidor de banco de dados, mesmo se não for mais referenciado por qualquer WIT. Para remover um campo, siga estas etapas.
Remova a definição FIELD de todas as definições de WIT e de todos os fluxos de trabalho globais que a referenciem.
Verifique se o campo não está em uso. Por exemplo:
witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact Field: MyCompany.CustomContact Name: Custom Contact Type: String Reportable As: dimension Use: Not In Use Indexed: False
Exclua o campo. Por exemplo:
witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact
Se o campo excluído for reportável, recompile o data warehouse para limpar o campo antigo e seus valores.
Para obter mais informações, consulte Gerenciar campos de item de trabalho [witadmin].
P: Quais outras áreas posso personalizar?
R: Consulte Uma exibição completa do que você pode configurar e personalizar no Visual Studio TFS.
P: Para onde posso ir se tiver mais dúvidas?
R: Para encontrar respostas ou publicar uma pergunta, visite o fórum: Team Foundation Server - Project Management & Work Item.