Pessoal bom dia!
Preciso criar uma automação, no Jira Software, que calcula a média entre 2 campos customizados, armazenando o resultado em um terceiro campo customizado.
Exemplo: campo A = 2 e campo B = 4, após a execução da automação, o valor do campo C será 3 (média entre A e B). Os 3 campos são numéricos.
Criei a seguinte automação:
- Quando alteração de valor de campo
- Editar campo do item
- Escolhi o campo que vai armazenar o cálculo da média e coloquei a seguinte fórmula:
{{(issue.customfield_10397 + issue.customfield_10398) / 2}}
Quando realizei a alteração dos campos A e B, deu erro:
Olá @Layssa Souza e @Bill Sheboy , boa tarde!
Na verdade, ainda não testei o "round", pois está acontecendo algum erro no momento do cálculo da média. No meu caso real, preciso calcular a média de 3 campos customizados. Inclui o terceiro campo na fórmula e alterei para dividir por 3. A fórmula ficou assim:
{{#=}} ({{issue.customfield_10424|0}} + {{issue.customfield_10398|0}} + {{issue.customfield_10397|0}}) / 3 {{/}}
Se A = 2, B = 3 e C = 3
Média = (2+3+3)/3 = 2,667
Se altero A de 2 para 3, deveria ser: (3+3+3)/3 = 3, porém, o campo Média está trazendo o resultado 2,333.
Se altero os 3 campos para 1, está calculando a Média como 2, sendo que o correto seria 1.
Meus campos originais são Relevância, Urgência e Tendência. São campos do tipo "Radio Buttons" e, cada um, possui 5 opções de escolha.
Como eles são do tipo "texto", para a automação eu criei 3 campos personalizados numéricos: Relevância_Aux (10424), Urgência_Aux (10398) e Tendência_Aux (10397) que serão usados para a realização do cálculo da Média.
A minha automação ficou assim:
Esse "bloco" acima (Bloco Se + Editar item) se repete 15 vezes, pois, conforme falei anteriormente, os campos Relevância, Urgência e Tendência possuem 5 opções de escolha, cada um deles.
Por fim, realizo o cálculo da Média:
RUT é o meu campo de Média. No exemplo anterior, onde todos os 3 campos Aux possuem o valor 1, o campo RUT deveria mostrar o resultado 3, porém, está mostrando 2.
Creio que, em algum lugar da automação, ela não está fazendo a conversão correta ou está apresentando algum delay e isso provoca o recálculo errado da Média. Será que é pelo fato de verificar 15 blocos (Bloco Se + Editar item)? Teria uma outra forma "resumida" para se evitar esse 15 blocos de cálculo?
Obrigado.
Thanks for that information, @Vinícius Pereira as it will help to simplify the rule, reducing the steps significantly.
Rather than using the extra number fields with if / else conditions, there are two ways to simplify the rule:
If all of the option values start with the numbers you want to average, you could extract the numbers using text functions and sum those instead.
Let's assume the three radio buttons are named: RelevanceRadio, UrgencyRadio, and TrendRadio. You may replace these with your custom field name / ID values.
{{#=}}ROUND( ( {{issue.RelevanceRadio.value.left(1)}} + {{issue.UrgencyRadio.value.left(1)}} + {{issue.TrendRadio.value.left(1)}} ) / 3, 2){{/}}
This would grab the first character from each radio button value, average them, and round to 2 digits.
If instead the option numbers are different than the radio button text, you may use lookup tables to get the numbers for the math:
{{#=}}ROUND( ( {{varRelevanceLookup.get(issue.RelevanceRadio.value)}} + {{varUrgencyLookup.get(issue.UrgencyRadio.value)}} + {{varTrendLookup.get(issue.TrendRadio.value)}} ) / 3, 2){{/}}
This would use the radio button values to lookup from each table, average the numbers, and round to 2 digits.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Bill, bom dia!! Funcionou perfeitamente!! Muito obrigado!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
No seu campo de média, adicione o seguinte smart value:
{{#=}} ({{issue.customfield_10397|0}} + {{issue.customfield_10398|0}}) / 2 {{/}}
Meus testes foram realizados em ambiente DC, mas acredito que a solução seja a mesma!
Cloud
Espero que isso ajude :)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Olá @Layssa Souza ! Funcionou perfeitamente!! Muito obrigado!!
Sem querer abusar da sua boa vontade, como eu poderia alterar essa fórmula para que ela possa arredondar médias com valores decimais?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You could add the ROUND() function around the value, selecting the desired precision: https://support.atlassian.com/cloud-automation/docs/jira-smart-values-math-expressions/#Functions
For example, to round to 3 decimal places:
{{#=}}ROUND(({{issue.customfield_10397|0}} + {{issue.customfield_10398|0}}) / 2, 3){{/}}
Kind regards,
Bill
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Veja se funciona para você:
{{#=}} floor(({{issue.customfield_10397|0}} + {{issue.customfield_10398|0}}) / 2 + 0.5) {{/}}
Não consegui identificar o motivo do round não funcionar, então apliquei o floor, que também é aceito no smart value
Ele arredonda o valor para baixo para o inteiro mais próximo e o "(2 + 0.5)" faz com que números como 2.8 ou 3.3 sejam arredondados corretamente.
Veja se para você funciona, infelizmente, o floor eu não consegui testar no JIRA Cloud, pois fiquei sem o ambiente :)
Atte,
Layssa Souza.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.