Escrever expressões complexas

Concluído

Quando você combina mais de uma função para obter o resultado desejado, isso é conhecido como expressão complexa. 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' )

Isso resultou em 02-09-2024 11:28.

Quando você pensa em expressões complexas, sempre há mais de uma função aninhada em uma expressão em que você usa a saída de uma função como entrada de outra. Não há sintaxe, operadores nem considerações especiais.

Para ter um exemplo final de uma expressão complexa, considere 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á se parecer com isto:

Agora, na etapa Compor, crie 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 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. Essa é uma ótima maneira 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 expressão.

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 Compor com a seguinte expressão:

dayOfWeek(outputs('Compose'))

A saída da primeira ação Compor é 2024-02-11T00:00:00.000000. A saída da segunda ação Compor é 0, que representa Domingo. Domingo é 0 e cada dia subsequente aumente em 1. Veja a seguir uma captura de tela de como seria seu fluxo com as duas ações de composição e a fórmula dayOfWeek na segunda ação de composição.

Agora, adicione outra etapa Compor 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 Compor. Na nova ação Compor, 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 uma quinta-feira". Se isso for o que está esperando, você poderá remover todas as ações de composição preliminares do fluxo para limpá-lo.

Parabéns. Você escreveu uma expressão complexa executando pequenas etapas e, em seguida, combinando todas elas no final.