Como criar campos dinâmicos com Script Fields no Jira Server

Se você curte o Jira, não deixe de conferir meu artigo sobre gestão de backlog usando Jira!

No último artigo eu ensinei como criar diversos tipos de automações em Jira. Venho trabalhando com esta ferramenta desde 2018 e ela é bem poderosa, mais até do que a que usei por mais de 10 anos, o famoso TFS da Microsoft.

Entre as inúmeras funcionalidades, o Jira permite criar diversos campos customizados de vários tipos, mas, além disso, campos que carregam o seu conteúdo dinamicamente a partir de scripts Groovy, graças ao plugin Adaptavist ScriptRunner. Vou mostrar aqui como criar um campo dinâmico.

Este tutorial foi feito usando o Jira na versão server/on-premise (v7.10), mas possivelmente deve funcionar em versões posteriores e talvez até na cloud, desde que tenha o plugin/add-on do Script Runner. Você precisa de permissões de administrador do Jira para conseguir fazer o que vou mostrar.

Atenção: Este artigo não tem a pretensão de ensinar a administrar Jira, mas apenas a dar um upgrade nas suas skills se já for um administrador de Jira Server. Para quem quer aprender a administrar Jira, recomendo meu curso online de Jira.

Custom Fields

Por padrão o Jira permite que você crie Custom Fields ou Campos Personalizados. Nada mais são do que inputs comuns, usando os tipos pré-existentes do Jira, mas como rótulos/labels personalizados e que adicionam mais informações às screens já existentes ou a novas screens.

Caso isso seja novidade para você, o passo-a-passo abaixo mostra como criar um custom field simples. Me perdoe as imagens em português, foi uma imagem que tirou os prints e ela usa o Jira em pt-br (eu prefiro usar em inglês pois facilita a procura por informações na Internet).

  1. Acesse o painel de administração;
  2. Seção Issues;
  3. Sub-seção Fields;
  4. Opção Custom Fields/Add Custom Field
Add Custom Field
Add Custom Field

Na tela que se abrirá, preencha de acordo com o campo que precisa (campo de texto, de seleção, etc). Cada tipo de campo possui as suas particuliaridades, como a Select List, que exige que tu preencha manualmente todas as opções do drop-down.

A seguir, depois de clicar em Create, você vai ser solicitado que selecione em quais telas este campo vai aparecer.

Telas do campo
Telas do campo

E pronto. Caso ele ainda não apareça nas telas que você selecionou, dê uma olhada na Screen para ver se não tem de torná-lo visível pois às vezes ele está na tela, mas oculto/hidden.

Mas e para criar custom fields baseados em scripts, como faz?

Livro para Agile Coaches

Script Fields

Você pode criar campos dinâmicos que carregam o seu conteúdo a partir de scripts, o que chamamos de Script Field. Esse recurso é muito poderoso para, por exemplo:

  • exibir informações de linked issues dentro das issues principais (e vice-versa);
  • exibir informações resultantes de cálculos ou transformações de outros dados da issue;

Uma vez com o campo criado, é possível adicioná-lo em qualquer screen ou até mesmo usá-lo em queries e reports.

Para criar um Script Field você deve:

  1. Entre em Administration;
  2. Escolha a opção Issues;
  3. Clique em Custom Fields, abaixo da seção Fields;
  4. Clique em Add Custom Field;
  5. Em Select Field Type, encontre Scripted Field dentro de Advanced (o ícone é o mesmo do Script Runner);
  6. Next;
  7. Dê um nome e uma descrição ao campo (este último é opcional) e salve;
  8. Selecione todas as telas em que este campo deve aparecer e clique em Update;
  9. Retorna a Administration, Add-ons, Script Runner e Fields;
  10. Encontre o seu Scripted Field criado e depois clique em Edit;
Script Field
Script Field

Preencha o formulário como segue:

  • Field Name: não editável;
  • Field Description: não editável;
  • Note: uma nota opcional;
  • Template: como esse campo será renderizado na screen;
  • Script: o código Groovy que vai retornar o conteúdo desse campo. É aqui que a magia acontece e esse código sempre recebe um objeto issue como argumento, com as propriedades da issue atualmente visível na screen onde esse script field está.
  • Preview Issue Key: coloque o id de uma issue aqui e clique no botão preview para ver como seu Script Field vais e parecer na screen.

Clique em Update para finalizar.

Caso seu script field não aparece na screen que deveria, reveja as configurações de screen do custom field e/ou verifique na screen se o campo está aparecendo no editor visual dela.

Um exemplo de código Groovy para script field é mostrado abaixo. Nele, nós ascendemos na hierarquia da issue atual até encontrar qual o Projeto (um issue type custom) ela pertence, imprimindo essa informação então no custom script field:

No exemplo abaixo, de outro script field, dado um issue do tipo Mudança, a gente busca o item originador desta mudança (outra issue) e se tiver mais de um, pega apenas o primeiro para exibir no custom script field:

Neste aqui, bem simples, tenho um Custom Field do tipo Issue Picker e quero apresentar o summary da issue escolhida em um Script Field, para fins de relatório (por padrão, em relatórios, aparece o id da issue).

O primeiro if considera que o custom field aparece em apenas alguns issue types, esse teste evita erros. Se for aparecer em todos, retire o if.

E nesse último abaixo, mais simples de todos, temos um custom script field que apenas exibe o nome do épico associado a esta issue:

Espero ter ajudado!

Infelizmente eu não possuo um curso de Jira, mas caso se interesse por métodos ágeis em geral, dê uma conferida no meu curso online de Scrum e Métodos Ágeis clicando no banner abaixo.

Curso de Scrum e Métodos Ágeis

Publicado por

Luiz Duarte

Pós-graduado em computação, professor, empreendedor, autor, Agile Coach e programador nas horas vagas.