Usar expressões nas condições para verificar diversos valores
Neste tutorial, você aprenderá a usar expressões e condições para comparar diversos valores no modo Avançado.
Ao criar um fluxo da nuvem, você poderá usar o cartão Condição no modo básico para comparar rapidamente um único valor com outro. No entanto, há vezes em que você precisará comparar diversos valores. Por exemplo, talvez você queira verificar o valor de algumas colunas em uma planilha ou tabela do banco de dados.
É possível usar qualquer combinação das seguintes expressões lógicas em suas condições.
Expressão | Descrição | Exemplo |
---|---|---|
and | Obtém dois argumentos e retorna true se ambos os valores são verdadeiros. Observação: ambos os argumentos devem ser boolianos. |
Esta expressão retorna falso: and(greater(1,10),equals(0,0)) |
or | Obtém dois argumentos e retorna true se qualquer um dos valores é verdadeiro. Observação: ambos os argumentos devem ser boolianos. |
Esta expressão retorna true:or(greater(1,10),equals(0,0)) |
é igual a | Retornará true se os dois valores forem iguais. | Por exemplo, se parameter1 for someValue, a expressão retornará true:equals(parameters('parameter1'), 'someValue') |
less | Obtém dois argumentos e retornará true se o primeiro argumento for menor que o segundo argumento. Observação: os tipos com suporte são: inteiro, float e cadeia de caracteres. |
Esta expressão retorna true:less(10,100) |
lessOrEquals | Obtém dois argumentos e retornará true se o primeiro argumento for menor ou igual ao segundo argumento. Observação: os tipos com suporte são: inteiro, float e cadeia de caracteres. |
Esta expressão retorna true:lessOrEquals(10,10) |
greater | Obtém dois argumentos e retornará true se o primeiro argumento for maior que o segundo. Observação: os tipos com suporte são: inteiro, float e cadeia de caracteres. |
Esta expressão retorna false:greater(10,10) |
greaterOrEquals | Obtém dois argumentos e retornará true se o primeiro argumento for maior ou igual ao segundo argumento. Observação: os tipos com suporte são: inteiro, float e cadeia de caracteres. |
Esta expressão retorna false:greaterOrEquals(10,100) |
empty | Retorna true se o objeto, a matriz ou a cadeia de caracteres estiver vazia. | Esta expressão retorna true:empty('') |
not | Retorna o oposto de um valor booliano. | Esta expressão retorna true:not(contains('200 Success','Fail')) |
if | Retorna um valor específico se a expressão resulta em true ou false. | Esta expressão retorna "yes":if(equals(1, 1), 'yes', 'no') |
Pré-requisitos
Veja o que você precisa fazer para concluir este passo a passo.
- Acesso a Power Automate.
- Neste passo a passo apresentaremos sua própria planilha com as tabelas descritas. Salve a planilha em um local como o Dropbox ou o Microsoft OneDrive para que o Power Automate possa acessá-la.
- Microsoft 365 Outlook (enquanto usamos o Outlook aqui, você pode usar qualquer serviço de email com suporte nos fluxos.)
Usar a expressão 'or'
Às vezes, o fluxo de trabalho precisa executar uma ação se o valor de um item for valueA ou valueB. Por exemplo, você pode acompanhar o status das tarefas em uma tabela da planilha. Suponha que a tabela tenha uma coluna chamada Status e os possíveis valores nessa coluna sejam:
- concluído
- bloqueado
- desnecessário
- não iniciado
Veja um exemplo da provável aparência da planilha:
Dada a planilha anterior, você deseja usar o Power Automate para remover todas as linhas com uma coluna Status definida como concluído ou desnecessário.
Vamos criar o fluxo.
Iniciar com um fluxo em branco
Entre no Power Automate.
No painel esquerdo, selecione Meus fluxos.
Selecione Novo fluxo>Fluxo da nuvem agendado.
Adicionar um gatilho ao seu fluxo
Dê um nome a seu fluxo.
Defina o agendamento para executar o fluxo uma vez por dia.
Selecione o botão Criar para ir para a próxima etapa.
Observação
- O Power Automate usa o designer clássico de fluxos da nuvem ou o novo designer moderno com recursos do Copilot. Para identificar qual designer você está usando, vá para a seção Observação em Explorar o designer de fluxos da nuvem.
- Quando você alterna entre o designer clássico e moderno, você é solicitado a salvar seu fluxo. Não é possível salvar e alternar até que todos os erros sejam resolvidos.
Selecionar a planilha e obter todas as linhas
Peça ao Copilot para criar um fluxo para você. Digite o seguinte prompt no Copilot:
Toda semana, liste as linhas em uma tabela do Excel e se a coluna Status for igual a Bem-sucedido ou o email do gerente for jake@contoso.com, exclua a linha do Excel
Selecione Enviar
.
Alternativamente, você pode seguir as etapas abaixo para criar o mesmo fluxo manualmente:
Adicione uma nova etapa selecionando o sinal de mais (+) >Adicionar uma ação.
Pesquise linhas, selecione Excel Online (Business) e selecione Obter uma linha que corresponda à planilha que você está usando.
Por exemplo, se você estiver usando o Planilhas Google, selecione Planilhas Google - Obter linhas.
Selecione a ação Listar linhas presentes em uma tabela.
Selecione a Localização, a Biblioteca de Documentos, o Arquivo e a Tabela que contêm seus dados.
Verificar a coluna de status de cada linha
Adicione uma nova etapa selecionando o sinal de mais (+) >Adicionar uma ação.
Na tela Adicionar uma ação, procure aplicar a cada e, em seguida, selecione Aplicar a cada em Controle.
Adicione o token de valor à caixa Selecionar uma saída nas etapas anteriores selecionando o ícone de raio amarelo.
Esse token de valor representa a tabela da planilha e todos os seus dados.
No cartão Aplicar a cada, adicione uma nova etapa selecionando o sinal de mais (+) >Adicionar uma ação.
Procure condição e, em seguida, selecione o controle Condição.
Adicione a expressão OR a seguir. Essa expressão OR verifica o valor de cada linha da tabela.
Se o valor da coluna Status for concluídoOudesnecessário, a expressão OR é avaliada como verdadeira.
Veja um exemplo de um cartão Condição.
Excluir linhas correspondentes da planilha
Selecione Adicionar uma ação, na ramificação da condição Se sim.
A ramificação Se sim é executada se a condição Or avaliar como verdadeiro.
Procure Excluir uma linha, selecione Excel Online (Business) e, em seguida, selecione Excluir uma linha.
No cartão Apagar uma linha, defina as caixas Localização, Biblioteca de Documentos, Arquivo e Tabela exatamente como você definiu essas caixas no cartão Listar linhas presentes em uma tabela anteriormente neste tutorial.
Na lista suspensa Coluna de Chave, selecione ‑PowerAppsId_.
No campo Valor da Chave, insira o valor dinâmico ‑PowerAppsId_.
Salve seu fluxo.
Executar o fluxo com a expressão 'or'
O fluxo será executado depois que você salvá-lo. Se você criou a planilha mostrada anteriormente neste tutorial, ela terá essa aparência após a execução ser concluída:
Observe que todos os dados das linhas que tinham concluído ou desnecessário na coluna Status foram excluídos.
Usar a expressão 'and'
Suponha que você tenha uma tabela da planilha com duas colunas. Os nomes das colunas são Status e Atribuído. Suponha também que você queira excluir todas as linhas se o valor da coluna Status for bloqueado e o valor da coluna Atribuído for John Wonder. Para realizar essa tarefa, siga todas as etapas anteriores neste tutorial. No entanto, quando você editar o cartão Condição no modo avançado, use a expressão and mostrada aqui.
@and(equals(item()?['Status'], 'blocked'), equals(item()?['Assigned'], 'John Wonder'))
Veja um exemplo de um cartão Condição.
Executar o fluxo com a expressão 'and'
Se você seguiu as etapas neste tutorial, sua planilha deve ser semelhante à captura de tela a seguir.
Depois que o fluxo for executado, sua planilha deverá ser semelhante à captura de tela a seguir.
Usar a expressão 'empty'
Observe que agora há várias linhas vazias na planilha. Para removê-las, use a expressão empty para identificar todas as linhas sem texto nas colunas Atribuído e Status.
Para realizar esta tarefa, siga todas as etapas listadas na seção anterior Usar a expressão 'and' neste tutorial. Ao editar o cartão Condição no modo avançado, use a expressão empty a seguir.
@and(empty(item()?['Status']), empty(item()?['Assigned']))
Seu cartão Condição deve ser semelhante à captura de tela a seguir.
Depois que o fluxo for executado, a planilha deverá ser semelhante à captura de tela a seguir.
Observe que as linhas extras foram removidas da tabela.
Usar a expressão 'greater'
Imagine que você tenha comprado ingressos para um jogo de baseball para seus colegas de trabalho e está usando uma planilha para garantir que será reembolsado por cada pessoa. Você pode criar rapidamente um fluxo da nuvem que envia um email diário para cada pessoa que não pagou o valor total.
Use a expressão greater para identificar os funcionários que não pagaram o valor total. Em seguida, você pode enviar automaticamente um email de lembrete para aqueles que não pagaram o total.
Veja uma exibição da planilha:
Veja a implementação da expressão greater, que identifica todas as pessoas que pagaram menos que a quantidade devida:
@greater(item()?['Due'], item()?['Paid'])
Usar a expressão 'less'
Imagine que você tenha comprado ingressos para um jogo de baseball para seus colegas de trabalho e está usando uma planilha para garantir que será reembolsado por cada pessoa na data que todos acordaram. Você pode criar um fluxo da nuvem que envia um email de lembrete para cada pessoa que não pagou o valor total, caso a data atual seja menor que um dia antes da data de vencimento.
Use a expressão and junto com a expressão less, uma vez que há duas condições sendo validadas.
Condição a ser validada | Expressão a ser usada | Exemplo |
---|---|---|
O valor total devido foi pago? | greater | @greater(item()?['Due'], item()?['Paid']) |
A data de conclusão é menor do que um dia? | less | @less(item()?['DueDate'], addDays(utcNow(),1)) |
Combinar as expressões 'greater' e 'less' em uma expressão 'and'
Use a expressão greater para identificar os funcionários que pagaram menos do que o valor total devido e use a expressão less para determinar se a data de vencimento é menor do que um dia antes da data atual. Você poderá então usar a ação Enviar um email para enviar um email de lembrete para aqueles funcionários que não pagaram integralmente e cuja data de vencimento é menor que um dia.
Veja uma exibição da tabela da planilha:
Veja a implementação da expressão and que identifica todas os funcionários que pagaram menos que o valor devido e se a data de vencimento é menor que um dia antes da data atual:
@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))
Usar funções em expressões
Algumas expressões obtêm seus valores de ações de runtime que talvez ainda não existam quando um fluxo da nuvem começa a ser executado. Para fazer referência a esses valores ou trabalhar com eles em expressões, você poderá usar funções fornecidas pela Linguagem de Definição do Fluxo de Trabalho. Mais informações: Para saber mais, acesse Guia de referência para funções de expressão do fluxo de trabalho em Aplicativos Lógicos do Azure e no Power Automate.
Informações relacionadas
Treinamento: Introdução às expressões no Power Automate (módulo)