Ricardo Serradas

Visual Studio ALM in a nutshell

Customizando E-Mails de Project Alerts

com um comentário

O envio de alertas por e-mail quando um evento acontece no projeto do time pode ser muito importante quando falamos de integração.

Com os Project Alerts é possível, por exemplo, enviar e-mails para o responsável pela tarefa quando ela for atribuída a ele ou quando sofre modificações; pode-se enviar uma cópia para o responsável pelo projeto quando a tarefa é finalizada, entre outros fins. Porém, o template de e-mail nativo do TFS pode não ser satisfatório para o time.

Vamos falar um pouco mais sobre os Project Alerts abaixo.

Como funciona?

No servidor de aplicação, há um agente (TFSJobAgent) que fica aguardando algum evento para disparar os alertas. Os eventos podem ser:

- Modificação em um work item;

- Um check-in é realizado;

- A qualidade de um build é modificado;

- Um build termina;

Entre outros que podem ser criados. Os templates de email (tanto texto plano quanto HTML) ficam armazenados na seguinte pasta, no servidor de aplicação do TFS:

[Drive]:\ Program Files\Microsoft Team Foundation Server 2010\Application Tier\TFSJobAgent\Transforms

Dentro dessa pasta, você encontrará dois arquivos para cada tipo de evento. O arquivo de extensão “plaintextxsl” define o template de e-mail em texto plano, enquanto o de extensão “xsl” define o formato do email HTML, além do arquivo TeamFoundation.xsl, que é como um template, uma casca (como uma Master Page) para os demais arquivos. A partir daí, cada arquivo de cada evento importa este arquivo e define as outras informações a serem exibidas.

Quando o agente identifica o evento, ele recebe uma coleção de informações contendo os campos do work item e/ou do evento para gerar uma saída com base nos arquivos mencionados acima. São elas:

- CoreFields: contém os campos e seus conteúdos, cujo namespace é System.*.

- ChangedFields: contém os campos que foram modificados neste evento.

Um fator muito importante é: campos que estão fora do namespace System.* (ou campos non-core) não são enviados nesta coleção por questões de desempenho. Portanto, se quiser, por exemplo, mostrar o campo “Start Date” (Microsoft.VSTS.Scheduling.StartDate) e ele não tiver sido modificado, não será possível recuperar essa informação no alerta.

Como customizar?

No nosso exemplo, vamos customizar o alerta de Work Item modificado no formato HTML. A modificação que faremos é simples: a linha que contém o “Assigned to:” deve ficar em negrito e removeremos a linha que contém o “Changed date:”. O que temos hoje é:

 

E para fazer essa modificação, vamos seguir os passos abaixo (faça back-up dos arquivos antes de começar a customização):

- Abrir o arquivo WorkItemChangedEvent.xsl em algum editor de XML ou no próprio Visual Studio;

- Dentro do arquivo, procure pelo trecho “ReferenceName[.='System.AssignedTo”. Verá que existe uma definição de uma linha de tabela (TR). Assim:

Interpretando esse trecho de código: na primeira célula da linha (PropName), ele coloca o título do campo, que é “Assigned to:”. Na segunda (PropValue), é inserido o valor.

Dentro dessa segunda TD você pode enxergar uma estrutura de repetição (foreach) e uma de validação (IF) onde ele varre os campos da coleção CoreFields em busca de um campo do tipo “System.AssignedTo”; se encontrar, exibe seu valor, através da propriedade “NewValue”.

Vamos fazer uma simples modificação de HTML. Colocaremos a tag de bold (“<b>”) nas duas tds. Fica assim:

Sobre o Changed Date, basta procurar pelo texto “System.ChangedDate” no código e remover a TR que á contém.

Depois dessas edições, salve o arquivo e faça alguma modificação em algum work item para disparar o evento. No meu caso, o resultado foi o segunte:

 

Daí pra frente é só ir brincando com os campos e com o template dos alertas.

[]’s

Ricardo Serradas

Escrito por Ricardo Serradas

08/06/2010 às 7:58 PM

Publicado em Dicas

Etiquetado com , , , ,

Uma resposta

Assinar os comentários com RSS.

  1. [...] This post was mentioned on Twitter by Fernando Goncalves, Ricardo Serradas. Ricardo Serradas said: Post: Customizando E-Mails de Project Alerts http://bit.ly/c0MssN #TFS #VSTS [...]


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Gravatar
WordPress.com Logo

Please log in to WordPress.com to post a comment to your blog.

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.