Utilize expressões nas condições para verificar valores múltiplos

Neste tutorial, irá aprender a utilizar expressões e condições para comparar valores múltiplos no Modo avançado.

Ao criar um fluxo de cloud, pode utilizar o cartão Condição no modo básico para rapidamente comparar um valor único com outro valor. No entanto, por vezes terá de comparar valores múltiplos. Por exemplo, poderá verificar o valor de algumas colunas numa folha de cálculo ou numa tabela de base de dados.

Pode utilizar qualquer combinação das seguintes expressões lógicas nas suas condições.

Expression Descrição Exemplo
and Precisa de dois argumentos e devolve verdadeiro se ambos os valores forem verdadeiros.
Nota: ambos os argumentos têm de ser booleanos.
Esta expressão devolve falso:
and(greater(1,10),equals(0,0))
or Recebe dois argumentos e devolve true se um dos argumentos for verdadeiro.
Nota: ambos os argumentos têm de ser booleanos.
Esta expressão devolve true:
or(greater(1,10),equals(0,0))
equals Devolve true se dois valores forem iguais. Por exemplo, se parameter1 for someValue, esta expressão devolve true:
equals(parameters('parameter1'), 'someValue')
less Precisa de dois argumentos e devolve verdadeiro se o primeiro argumento for menor que o segundo argumento.
Nota: os tipos suportados são números inteiros, flutuantes e cadeias.
Esta expressão devolve true:
less(10,100)
lessOrEquals Precisa de dois argumentos e devolve verdadeiro se o primeiro argumento for menor ou igual ao segundo argumento.
Nota: os tipos suportados são números inteiros, flutuantes e cadeias.
Esta expressão devolve true:
lessOrEquals(10,10)
greater Recebe dois argumentos e devolve verdadeiro se o primeiro argumento for maior que o segundo argumento.
Nota: os tipos suportados são números inteiros, flutuantes e cadeias.
Esta expressão devolve falso:
greater(10,10)
greaterOrEquals Recebe dois argumentos e devolve true se o primeiro argumento for maior ou igual ao segundo argumento.
Nota: os tipos suportados são números inteiros, flutuantes e cadeias.
Esta expressão devolve falso:
greaterOrEquals(10,100)
empty Devolve true se o objeto, matriz ou cadeia estiverem vazios. Esta expressão devolve true:
empty('')
not Devolve o oposto de um valor booleano. Esta expressão devolve true:
not(contains('200 Success','Fail'))
if Devolve um valor específico se a expressão resultar em true ou false. Esta expressão devolve “sim”:
if(equals(1, 1), 'yes', 'no')

Pré-requisitos

Eis o que precisa para concluir este tutorial.

  • Acesso ao Power Automate.
  • A sua própria folha de cálculo com as tabelas descritas mais tarde nestas instruções. Lembre-se de guardar a folha de cálculo numa localização como a Dropbox ou o Microsoft OneDrive para que o Power Automate possa aceder à mesma.
  • Microsoft 365 Outlook (apesar de utilizarmos o Outlook aqui, pode utilizar qualquer serviço de e-mail suportado nos seus fluxos).

Utilizar a expressão "or"

Por vezes, o fluxo de trabalho precisa de realizar uma ação se o valor de um item for valueA or valueB. Por exemplo, poderá estar a controlar o estado das tarefas numa tabela de folha de cálculo. Assumindo que a tabela tem uma coluna chamada Estado e os valores possíveis nesta coluna são:

  • concluído
  • bloqueado
  • desnecessário
  • não iniciado

Eis um exemplo de como a folha de cálculo pode ser:

Captura de ecrã de uma folha de cálculo de amostra com uma coluna Estado.

Tendo em conta a folha de cálculo anterior, deve utilizar o Power Automate para remover todas as linhas com uma coluna Estado que está definida como concluído ou desnecessário.

Vamos criar o fluxo.

Comece com um fluxo em branco

  1. Iniciar sessão no Power Automate.

  2. No painel esquerdo, selecione Os meus fluxos.

  3. Selecione Novo fluxo>Fluxo de cloud agendado.

Adicionar um acionador ao fluxo

  1. Dê um nome ao seu fluxo.

  2. Defina a agenda para execução do fluxo uma vez por dia.

  3. Selecione o botão Criar para passar para o passo seguinte.

Nota

O Power Automate utiliza o estruturador de fluxos de cloud clássico ou o estruturador de fluxos de cloud com o Copilot. Para identificar o estruturador que está a utilizar, aceda à secção Nota em Compreender o novo estruturador de fluxos de cloud com capacidades de copiloto.

Selecione a folha de cálculo e obtenha todas as linhas

  1. Selecione Novo passo.

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

    Selecione a ação obter uma linha que corresponde à folha de cálculo que está a utilizar. Por exemplo, se estiver a utilizar o Google Sheets, selecione Google Sheets - Obter linhas.

  3. Selecione a ação Listar linhas presentes numa tabela.

    Captura de ecrã de listar linhas numa tabela.

  4. Selecione a Localização, Biblioteca de Documentos, Ficheiro e Tabela que contém os seus dados.

    Captura de ecrã dos campos Localização, Biblioteca de Documentos, Ficheiro e Tabela nas linhas da Lista presentes num cartão de tabela.

Verifique a coluna de estado de cada linha

  1. Selecione Novo passo.

  2. Pesquise por aplicar a cada e, em seguida, selecione o controlo Aplicar a cada – Controlo.

  3. Adicione o token valor à caixa Selecionar uma saída dos passos anteriores.

    Este token de valor representa a tabela da folha de cálculo e todos os seus dados.

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

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

  6. Adicione a seguinte expressão Or. Esta expressão Or expressão verifica o valor de cada linha na tabela. Se o valor da coluna Estado for concluídoOudesnecessário, a expressão Ou avalia como "true".

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

    Captura de ecrã de uma expressão

Eliminar linhas correspondentes da folha de cálculo

  1. Selecione Adicionar uma ação no ramo Se sim da condição.

    O ramo Se sim funciona se a condição OR avaliar como true.

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

  3. No cartão Eliminar uma linha, defina as caixas Localização, Biblioteca de Documentos, Ficheiro e Tabela exatamente como definiu estas caixas no cartão Listar linhas presentes numa tabela anteriormente neste tutorial.

  4. Na lista pendente Coluna Principal, selecione _PowerAppsId_.

  5. No campo Valor Principal, introduza o valor dinâmico _PowerAppsId_.

  6. Selecione Guardar para guardar o seu fluxo.

Executar o fluxo com a expressão "or"

O fluxo é executado depois de o guardar. Se criou a folha de cálculo mostrada anteriormente neste tutorial, eis como aparece depois de a execução estar concluída.

Captura de ecrã da folha de cálculo quando a expressão

Observe que todos os dados de linhas que tinham concluído ou desnecessário na coluna Estado foram eliminados.

Utilizar a expressão "and"

Suponha que tem uma tabela de folha de cálculo com duas colunas. Os nomes das colunas são Estado e Atribuído. Suponha também que pretende eliminar todas as linhas se o valor da coluna Estado for bloqueado e o valor da coluna Atribuído for John Wonder. Para realizar esta tarefa, siga todos os passos anteriores neste tutorial, mas ao editar o cartão Condição no modo avançado, utilize a expressão and mostrada aqui.

@and(equals(item()?['Status'], 'blocked'), equals(item()?['Assigned'], 'John Wonder'))

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

Captura de ecrã da expressão

Executar o fluxo com a expressão "and"

Se tiver seguido os passos neste tutorial, a folha de cálculo deverá ser semelhante à seguinte captura de ecrã.

Captura de ecrã da folha de cálculo antes das suas execuções de fluxo.

Depois das suas execuções de fluxos, a folha de cálculo deverá ser semelhante à seguinte captura de ecrã.

Captura de ecrã da folha de cálculo depois das suas execuções de fluxo.

Utilizar a expressão "empty"

Observe que agora existem várias linhas vazias na folha de cálculo. Para removê-las, utilize a expressão empty para identificar todas as linhas que não têm qualquer texto nas colunas Atribuído e Estado.

Para concluir esta tarefa, siga todos os passos listados na secção Utilizar a expressão "and" anteriormente neste tutorial. Quando editar o cartão Condição no modo avançado, utilize a seguinte expressão empty.

@and(empty(item()?['Status']), empty(item()?['Assigned']))

O cartão Condição deve ter um aspeto semelhante à captura de ecrã seguinte.

Captura de ecrã da expressão

Depois das suas execuções de fluxos, a folha de cálculo deverá ser semelhante à seguinte captura de ecrã.

Captura de ecrã da folha de cálculo depois de execuções

Observe que as linhas adicionais são removidas da tabela.

Utilizar a expressão "greater"

Imagine que comprou bilhetes de basebol para os seus colegas de trabalho e está a utilizar uma folha de cálculo para se certificar de que cada um o irá reembolsar. Pode criar rapidamente um fluxo de cloud que envia um e-mail diário a cada pessoa que não tenha pago a quantia total.

Utilize a expressão greater para identificar os empregados que ainda não tenham pago a quantia total. Pode, em seguida, enviar automaticamente por e-mail um lembrete a quem ainda não tenha pago tudo.

Eis uma vista da folha de cálculo.

Captura de ecrã da folha de cálculo dos que não foram pagos integralmente.

Eis a implementação da expressão greater que identifica todas as pessoas que pagaram menos do que a quantia devida.

@greater(item()?['Due'], item()?['Paid'])

Utilizar a expressão "less"

Imagine que comprou bilhetes de basebol para os seus colegas de trabalho e está a utilizar uma folha de cálculo para se certificar de que cada um o irá reembolsar até à data acordada por todos. Pode criar um fluxo de cloud que envia por e-mail um lembrete a cada pessoa que não tenha pago a quantia total se a data atual corresponder a menos de um dia da data combinada.

Utilize a expressão and com a expressão less uma vez que existem duas condições a ser validadas.

Condição a validar Expressão a utilizar Exemplo
A quantia total devida foi paga? greater @greater(item()?['Due'], item()?['Paid'])
A data de vencimento corresponde a menos de um dia da data atual? less @less(item()?['DueDate'], addDays(utcNow(),1))

Combine as expressões "greater" e "less" numa expressão "and"

Utilize a expressão greater para identificar os empregados que pagaram menos do que a quantia total devida e utilize a expressão less para determinar se a data de vencimento corresponde a menos de um dia da data atual. Pode, em seguida, utilizar a ação Enviar um e-mail para enviar por e-mail lembretes aos colaboradores que não tenham pago tudo e cuja data de vencimento corresponda a menos de um dia da data atual.

Eis uma vista da tabela da folha de cálculo.

Captura de ecrã da tabela de folha de cálculo.

Eis a implementação da expressão and que identifica todos os colaboradores que pagaram menos do que a quantia devida e cuja data de vencimento corresponde a menos de um dia da data atual.

@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))

Use functions in expressions (Referência: utilizar funções em expressões)

Algumas expressões obtêm os respetivos valores a partir de ações de runtime que poderão ainda não existir no momento em que um fluxo de cloud começa a ser executado. Para fazer referência a ou trabalhar com estes valores em expressões, pode utilizar as funções fornecidas pela Linguagem de Definição do Fluxo de Trabalho. Mais informações. Para obter mais informações, aceda ao Guia de Referência para funções de expressão de fluxo de trabalho em Azure Logic Apps e Power Automate.