Como criar campos de seleção de pessoas no TFS e VSTS

Já tentou criar campos de work item no TFS e/ou VSTS que tivessem o mesmo comportamento do campo Assigned To – ou seja, que mostrassem uma caixa de busca e seleção de usuários?

Veja neste post como fazer isso tanto para o VSTS quanto para o TFS.

O processo de criação de campos no TFS e no VSTS ainda é um bocado diferente. Isso porque, neste momento (Dezembro/2017) temos duas formas de personalizar campos de itens de trabalho:

  1. Hosted XML (VSTS, TFS 2018 e anteriores): É o modelo tradicional de personalização através da edição de arquivos XML, existente desde o TFS 2005. No VSTS, é possível usar este mesmo modelo quando importamos um processo personalizado do TFS (comum em cenários de migração TFS-VSTS);
  2. Inherited Process (VSTS, TFS vNext): Este é o modelo padrão de personalização de itens de trabalho do VSTS. Nele, o trabalho é todo feito através da interface web. O TFS ainda não suporta este modelo, que deve estar disponível apenas na próxima versão do produto (TFS "2019").

Discutir em detalhes a diferença entre esses dois modelos está fora do escopo deste post. Para saber mais, consulte este artigo.

Para fins de simplicidade, quando nos referirmos ao VSTS ao longo deste post estaremos falando do modelo Inherited Process, ao passo que o TFS identificará o modelo Hosted XML.

Criando campos de identidade

Campos de seleção de pessoas (também chamados de "campos de identidade") podem ser criados tanto no TFS quanto no VSTS. A diferença está no processo. Veja abaixo como fazer:

Campo de identidade no TFS

Aqui, precisamos editar o arquivo XML do work item ao qual você deseja adicionar o novo campo. USe o witadmin ou o Process Template Editor para exportar para seu computador o arquivo XML do work item que será editado.

Agora, dentro do elemento <FIELDS> do seu arquivos XML, acrescente o seguinte trecho de código:

<FIELD name="{Nome do campo}" refname="{ref.nomedocampo}" type="String">
    <ALLOWEDVALUES expanditems="true">
        <LISTITEM value="[project]\Project Valid Users" />
    </ALLOWEDVALUES>
</FIELD>

Onde {Nome do campo} é o nome amigável do seu campo (por exemplo, Tested By) e {ref.nomedocampo} é o nome de referência, ou ID, do seu campo (por exemplo, MinhaEmpresa.TestedBy).

Por fim, é preciso incluir esse campo no layout do formulário. Você deve incluir este snippet de código no seu arquivo XML:

<Control FieldName="{ref.nomedocampo}" Type="FieldControl" Label="{Nome do campo}:" />

IMPORTANTE

Não esqueça de substituir os valores {ref.nomedocampo} e {Nome do campo} pelos valores usados no elemento <FIELD> acima!

Esse elemento <Control> deve ser inserido dentro do elemento <Layout> se você estiver usando o fomulário legado, e <WebLayout> no caso de estar usando o novo formulário de work items. Para mais informações sobre como personalizar o layout do ser formulário de work items, dê uma olhada neste artigo.

Para terminar o processo, use novamente o witadmin ou o Process Template Editor para importar de volta o XML alterado para dentro do seu team project.

Campo de identidade no VSTS

No VSTS o processo é bem mais simples, pois pode ser feito diretamente pela interface Web. Crie um novo processo herdado para poder definir novos campos para seus work items. Localize o tipo de WI ao qual você deseja adicionar o novo campo e crie um campo do tipo Identidade ("Identity"):

Criando um campo do tipo Identidade no VSTS
Criando um campo do tipo Identidade no VSTS

Por fim, na aba Layout, adicione o campo à seção desejada em seu formulário:

Adicionando o campo Identidade no formulário do item de trabalho
Adicionando o campo Identidade no formulário do item de trabalho

Conclusão

Nos dois casos (TFS, e VSTS), o escopo do controle de seleção de usuários é o mesmo: Todos os usuários válidos do team project atual.

Em versões futuras do TFS, esse processo deve se tornar tão simples quanto no VSTS. Neste meio-tempo, continuamos metendo a mão em arquivos XML!

Um abraço,
Igor

Autor: Igor Abade

Igor Abade V. Leite ([email protected]) é Microsoft MVP (Most Valuable Professional) de Visual Studio ALM desde 2006. Palestrante em diversos eventos da comunidade de desenvolvimento de software (TechEd Brasil, The Developers’ Conference, DevOps Summit Brasil, Agile Brazil, Visual Studio Summit, QCON e outros), é também autor de artigos em revistas e sites como o MSDN Brasil. Desde março de 2011 é um dos sócios da Lambda3, uma consultoria especializada em ALM, desenvolvimento de software e treinamentos. Visite seu blog sobre VS ALM em http://www.tshooter.com.br/ e siga-o no Twitter @igorabade.

Deixe seu comentário!