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:

Captura de tela de uma planilha de exemplo com uma coluna Status.

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

  1. Entre no Power Automate.

  2. No painel esquerdo, selecione Meus fluxos.

  3. Selecione Novo fluxo>Fluxo da nuvem agendado.

Adicionar um gatilho ao seu fluxo

  1. Dê um nome a seu fluxo.

  2. Defina o agendamento para executar o fluxo uma vez por dia.

  3. Selecione o botão Criar para ir para a próxima etapa.

Observação

O Power Automate usa o designer de fluxos da nuvem clássica ou o designer de fluxos da nuvem com o Copilot. Para identificar qual designer você está usando, vá para a seção Observação em Entender o novo designer de fluxos da nuvem com os recursos do copiloto.

Selecionar a planilha e obter todas as linhas

  1. Selecione Nova etapa.

  2. Procure as linhas e, em seguida, selecione Excel Online (Business).

    Selecione a ação obter uma linha que corresponde à planilha que você está usando. Por exemplo, se você estiver usando o Planilhas Google, selecione Planilhas Google - Obter linhas.

  3. Selecione a ação Listar linhas presentes em uma tabela.

    Captura de tela da listagem de linhas em uma tabela.

  4. Selecione a Localização, a Biblioteca de Documentos, o Arquivo e a Tabela que contêm seus dados.

    Captura de tela dos campos Localização, Biblioteca de Documentos, Arquivo e Tabela nas linhas da Lista presentes em um cartão de tabela.

Verificar a coluna de status de cada linha

  1. Selecione Nova etapa.

  2. Procure aplicar a cada e, em seguida, selecione o Controle – Aplicar a cada.

  3. Adicione o token de valor à caixa Selecionar uma saída nas etapas anteriores.

    Esse token de valor representa a tabela da planilha e todos os seus dados.

  4. Selecione a ação Adicionar uma ação no cartão Aplicar a cada.

  5. Procure condição e, em seguida, selecione o controle Condição.

  6. 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 será avaliada como "verdadeira".

    Veja um exemplo de um cartão Condição.

    Captura de tela de uma expressão 'or'.

Excluir linhas correspondentes da planilha

  1. Selecione Adicionar uma ação, na ramificação da condição Se sim.

    A ramificação Se sim é executada se a condição OR for avaliada como verdadeira.

  2. Procure Excluir uma linha, selecione Excel Online (Business) e, em seguida, selecione Excluir uma linha.

  3. 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.

  4. Na lista suspensa Coluna de Chave, selecione ‑PowerAppsId_.

  5. No campo Valor da Chave, insira o valor dinâmico ‑PowerAppsId_.

  6. 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:

Captura de tela da planilha quando a expressão 'OR' é 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.

Captura de tela da expressão 'and'.

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.

Captura de tela da planilha antes da execução do fluxo.

Depois que o fluxo for executado, sua planilha deverá ser semelhante à captura de tela a seguir.

Captura de tela da planilha após a execução do fluxo.

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.

Captura de tela da expressão 'empty'.

Depois que o fluxo for executado, a planilha deverá ser semelhante à captura de tela a seguir.

Captura de tela da planilha após a execução de 'empty'.

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:

Captura de tela da planilha de quem não pagou integralmente.

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:

Captura de tela 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.