Escrever expressões complexas
As expressões complexas ocorrem quando você combina mais de uma função para obter o resultado desejado. Nas seções Funções matemáticas e Funções de data e hora, você já viu exemplos dessas expressões. Você viu que, para adicionar três números, é necessário combinar duas funções de adição, como:
add(add(12,13),15)
O que resultou em 40.
Em seguida, você viu como usar a função utcNow para obter a data e a hora atuais e como usar convertFromUtc para alterá-la para o fuso horário Padrão do Leste, como mostrado aqui:
convertFromUtc(utcNow(), 'Eastern Standard Time', 'dd-MM-yyyy hh:mm tt' )
O que resultou em 09-02-2024 11:28.
Quando você pensa em expressões complexas, trata-se de mais de uma função em uma expressão em que você usa a saída de uma função como entrada de outra. Não há sintaxe, operadores ou considerações especiais.
Para um exemplo final de uma expressão complexa, pegue o cenário de ter algumas entradas como parte do gatilho Disparar um fluxo manualmente e usar essa entrada em uma fórmula para calcular uma nova hora. Você pode usar o fluxo de exemplo usado para testar suas expressões ou para criar um novo fluxo semelhante a este.
Agora, selecione Adicionar uma entrada em Disparar um fluxo manualmente e adicione um número. Em seguida, selecione Adicionar uma entrada novamente e adicione uma data. Agora, o gatilho deverá ter esta aparência:
Agora, na etapa Compose, você adicionará uma expressão para adicionar o número de dias do gatilho à data.
addDays(triggerBody()?['date'], triggerBody()?['number'])
Essa expressão usa a Função de data e hora addDays e a função de referência triggerBody.
Observação
Se você está se perguntando "Como vou saber o que vai no corpo do gatilho?", então, você está pensando corretamente. O segredo é que você pode combinar conteúdo dinâmico em suas expressões. Para isso, inicie sua expressão digitando addDays() e, com o cursor entre (), selecione Conteúdo dinâmico. Em seguida, você pode escolher seus campos. Esse é um ótimo jeito de fazer referência ao conteúdo e, ao mesmo tempo, permitir que o Power Automate faça o trabalho difícil de escrever a fórmula.
Se você testar seu fluxo e inserir a data 2024-02-09 e o número 2, sua saída será 2024-02-11T00:00:00.0000000. Este é o formato UTC de 11 de fevereiro de 2024.
Agora você pode descobrir o dia da semana dessa data usando outra ação Compose com a seguinte expressão:
dayOfWeek(outputs('Compose'))
A saída da ação Compose é 2024-02-11T00:00:00.000000. A saída de Compose1 é 0, que representa domingo. Domingo é 0 e cada dia aumenta em 1. Esta é uma captura de tela do fluxo atual para validar o que você criou.
Agora, adicione outra etapa Compose para ver se a data selecionada é uma quinta-feira. Insira a seguinte expressão:
if(equals(outputs('Compose_1'),4), 'You chose a Thursday', 'You didn't choose a Thursday')
Para 9 de fevereiro de 2024, isso retornará a cadeia de caracteres "Você não escolheu quinta-feira".
Esse exemplo é um padrão de construção típico para uma expressão complexa, construindo peça por peça em etapas separadas. Agora que você tem todas as funções necessárias, adicione outra etapa Compose. No Compose adicionado, escreva uma expressão grande que faça tudo em uma só etapa. A expressão terá a seguinte aparência:
if(equals(dayOfWeek(addDays(triggerBody()['date'], triggerBody()['number'])),4), 'You chose a Thursday', 'You did not choose a Thursday' )
A saída para 9 de fevereiro de 2024 será a cadeia de caracteres "Você não escolheu quinta-feira". Parabéns. Você escreveu uma expressão complexa executando pequenas etapas e, em seguida, combinando todas elas no final.