Usar funções nas condições para verificar diversos valoresUse expressions in conditions to check multiple values

Observação

Agora, o Microsoft Flow é o Power Automate.Microsoft Flow is now Power Automate. Para obter informações, confira este blog.For more information, see this blog.

Este conteúdo será atualizado de forma a refletir a alteração da identidade visual nos próximos dias.This content will be updated to reflect the branding change in the coming days.

Neste passo a passo, você aprenderá a usar expressões e Condições para comparar diversos valores no modo Avançado.In this walkthrough, you'll learn to use expressions and Conditions to compare multiple values in Advanced mode.

Ao criar um fluxo, use o cartão Condição no modo básico para comparar rapidamente um único valor com outro.When you create a flow, you can use the Condition card in basic mode to quickly compare a single value with another value. No entanto, há vezes em que você precisará comparar diversos valores.However, there're times when you need to compare multiple values. Por exemplo, talvez você queira verificar o valor de algumas colunas em uma planilha ou tabela do banco de dados.For example, you may want to check the value of a few columns in a spreadsheet or database table.

É possível usar qualquer combinação das seguintes expressões lógicas em suas condições.You can use any combination of the following logical expressions in your conditions.

ExpressãoExpression DescriçãoDescription ExemploExample
andand Obtém dois argumentos e retorna true se ambos os valores são verdadeiros.Takes two arguments and returns true if both values are true.
Observação: ambos os argumentos devem ser boolianos.Note: Both arguments must be Booleans.
Essa expressão retorna false:This expression returns false:
and(greater(1,10),equals(0,0))and(greater(1,10),equals(0,0))
oror Obtém dois argumentos e retorna true se qualquer um dos valores é verdadeiro.Takes two arguments and returns true if either argument is true.
Observação: ambos os argumentos devem ser boolianos.Note: Both arguments must be Booleans.
Essa expressão retorna true:This expression returns true:
or(greater(1,10),equals(0,0))or(greater(1,10),equals(0,0))
equalsequals Retorna true se os dois valores são iguais.Returns true if two values are equal. Por exemplo, se o parameter1 for algumValor, a função retornará true:For example, if parameter1 is someValue, this expression returns true:
equals(parameters('parameter1'), 'someValue')equals(parameters('parameter1'), 'someValue')
lessless Obtém dois argumentos e retorna true se o primeiro argumento é menor que o segundo argumento.Takes two arguments and returns true if the first argument is less than the second argument.
Observação: os tipos suportados são: inteiro, flutuante e cadeia de caracteres.Note: The supported types are integer, float, and string.
Essa expressão retorna true:This expression returns true:
less(10,100)less(10,100)
lessOrEqualslessOrEquals Obtém dois argumentos e retorna true se o primeiro argumento é menor que ou igual ao segundo argumento.Takes two arguments and returns true if the first argument is less than or equal to the second argument.
Observação: os tipos suportados são: inteiro, flutuante e cadeia de caracteres.Note: The supported types are integer, float, and string.
Essa expressão retorna true:This expression returns true:
lessOrEquals(10,10)lessOrEquals(10,10)
greatergreater Obtém dois argumentos e retorna true se o primeiro argumento é maior que o segundo.Takes two arguments and returns true if the first argument is greater than the second argument.
Observação: os tipos suportados são: inteiro, flutuante e cadeia de caracteres.Note: The supported types are integer, float, and string.
Essa expressão retorna false:This expression returns false:
greater(10,10)greater(10,10)
greaterOrEqualsgreaterOrEquals Obtém dois argumentos e retorna true se o primeiro argumento é maior que ou igual ao segundo argumento.Takes two arguments and returns true if the first argument is greater than or equal to the second argument.
Observação: os tipos suportados são: inteiro, flutuante e cadeia de caracteres.Note: The supported types are integer, float, and string.
Essa expressão retorna false:This expression returns false:
greaterOrEquals(10,100)greaterOrEquals(10,100)
emptyempty Retorna true se a matriz, cadeia de caracteres ou objeto estiver vazio.Returns true if the object, array, or string is empty. Essa expressão retorna true:This expression returns true:
empty('')empty('')
notnot Retorna o oposto de um valor booliano.Returns the opposite of a boolean value. Essa expressão retorna true:This expression returns true:
not(contains('200 Success','Fail'))not(contains('200 Success','Fail'))
ifif Retorna um valor específico se a expressão resulta em true ou false.Returns a specific value if the expression results in true or false. Essa expressão retorna "yes":This expression returns "yes":
if(equals(1, 1), 'yes', 'no')if(equals(1, 1), 'yes', 'no')

Pré-requisitosPrerequisites

  • Acesso ao Power Automate.Access to Power Automate.
  • Mais adiante neste passo a passo, apresentaremos uma planilha com as tabelas descritas.A spreadsheet with the tables described later in this walkthrough. Salve a planilha em um local como o Dropbox ou o Microsoft OneDrive para que o Power Automate possa acessá-la.Be sure to save your spreadsheet in a location such as Dropbox or Microsoft OneDrive so that Power Automate can access it.
  • Outlook do Microsoft Office 365 (enquanto usamos o Outlook do Office 365, você pode usar qualquer serviço de email com suporte em seus fluxos.)Microsoft Office 365 Outlook (While we use Office 365 Outlook, you can use any supported email service in your flows.)

Usar a expressão orUse the or expression

Às vezes, o fluxo de trabalho precisa executar uma ação se o valor de um item for o valorA ou o valorB.Sometimes your workflow needs to take an action if the value of an item is valueA or valueB. Por exemplo, você pode acompanhar o status das tarefas em uma tabela da planilha.For example, you may be tracking the status of tasks in a spreadsheet table. Suponha que a tabela possua uma coluna denominada Status e os possíveis valores na coluna Status sejam:Assume that the table has a column named Status and the possible values in the Status column are:

  • concluídocompleted
  • bloqueadoblocked
  • desnecessáriounnecessary
  • não iniciadonot started

Veja um exemplo da provável aparência da planilha:Here's an example of what the spreadsheet might look like:

planilha de exemplo

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.Given the preceding spreadsheet, you want to use Power Automate to remove all rows with a Status column that's set to completed or unnecessary.

Vamos criar o fluxo.Let's create the flow.

Iniciar com um fluxo em brancoStart with a blank flow

  1. Entre no Power Automate.Sign into Power Automate.

    entrar

  2. Selecione a guia Meus fluxos.Select the My flows tab.

    selecione meus fluxos

  3. Selecione Criar do zero.Select Create from blank.

    criar do zero

Adicionar um gatilho ao fluxoAdd a trigger to your flow

  1. Procure Agendamento e, em seguida, escolha o gatilho Agendamento - RecorrênciaSearch for Schedule, and then select the Schedule - Recurrence trigger

    agendar o gatilho

  2. Defina o agendamento para ser executado uma vez por dia.Set the schedule to run once daily.

    definir o agendamento

Selecionar a planilha e obter todas as linhasSelect the spreadsheet and get all rows

  1. Selecione Nova etapa > Adicionar uma ação.Select New step > Add an action.

    nova etapa

  2. Procure as linhas e, em seguida, selecione Excel - Obter linhas.Search for rows, and then select Excel - Get rows.

    Observação: selecione a ação "obter linhas" que corresponde à planilha que você está usando.Note: Select the "get rows" action that corresponds to the spreadsheet that you're using. Por exemplo, se você estiver usando as Planilhas do Google, selecione Planilhas do Google - Obter linhas.For example, if you're using Google Sheets, select Google Sheets - Get rows.

    obter Linhas

  3. Selecione o ícone de pasta na caixa Nome do arquivo, navegue e escolha a planilha que contém seus dados.Select the folder icon in the File name box, browse to, and then select the spreadsheet that contains your data.

    selecionar planilha

  4. Escolha a tabela que contém seus dados na lista Nome da tabela.Select the table that contains your data from the Table name list.

    selecionar tabela

Verificar a coluna de status de cada linhaCheck the status column of each row

  1. Selecione Nova etapa > Mais > Adicionar um aplicar a cada.Select New step > More > Add an apply to each.

    selecionar tabela

  2. Adicione o token Valor à caixa Selecionar uma saída nas etapas anteriores.Add the Value token to the Select an output from previous steps box.

    selecionar tabela

  3. Selecione Adicionar uma condição > Editar no modo avançado.Select Add a condition > Edit in advanced mode.

  4. Adicione a expressão or a seguir.Add the following or expression. A expressão or verifica o valor de cada linha na tabela (uma linha é conhecida como item quando acessada em uma expressão).This or expression checks the value of each row in the table (a row is known as an item when accessed in a expression). Se o valor da coluna status for concluído ou desnecessário, a expressão or será avaliada como "true".If the value of the status column is completed or unnecessary, the or expression evaluates to "true".

    A expressão or aparece como mostrado aqui:The or expression appears as shown here:

    @or(equals(item()?['status'], 'unnecessary'), equals(item()?['status'], 'completed'))

    O cartão Condição é semelhante a esta imagem:Your Condition card resembles this image:

    imagem da expressão or

Excluir linhas correspondentes da planilhaDelete matching rows from the spreadsheet

  1. Selecione Adicionar uma ação na ramificação da condição SE SIM, NÃO FAÇA NADA.Select Add an action on the IF YES, DO NOTHING branch of the condition.

  2. Pesquise Excluir linha e, em seguida, selecione Excel - Excluir linha.Search for Delete row, and then select Excel - Delete row.

    excluir a imagem da linha

  3. Na caixa Nome do arquivo, pesquise e escolha o arquivo da planilha que contém os dados que você deseja excluir.In the File name box, search for, and select the spreadsheet file that contains the data you want to delete.

  4. Na lista Nome da tabela, selecione a tabela que contém seus dados.In the Table name list, select the table that contains your data.

  5. Coloque o token Id da linha na caixa Id da linha.Place the Row id token in the Row id box.

    arquivo da planilha

Nomear e salvar o fluxoName the flow and save it

  1. Nomeie seu fluxo e selecione o botão Criar fluxo.Give your flow a name and then select the Create flow button.

    salvar seu fluxo

Executar o fluxo com a expressão orRun the flow with the or expression

O fluxo é executado depois que você salvá-lo.The flow runs after you save it. Se você criou a planilha mostrada anteriormente neste passo a passo, ela terá essa aparência após a execução ser concluída:If you created the spreadsheet shown earlier in this walkthrough, here's what the it looks like after the run completes:

a expressão or termina

Observe que todos os dados das linhas que tinham "concluído" ou "desnecessário" na coluna Status foram excluídos.Notice all data from rows that had "completed" or "unnecessary" in the Status column were deleted.

Usar a expressão andUse the and expression

Suponha que você tenha uma tabela da planilha com duas colunas.Assume you have a spreadsheet table with two columns. Os nomes das colunas são Status e Atribuído.The column names are Status and Assigned. 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".Assume also that you want to delete all rows if the Status column's value is "blocked" and the Assigned column's value is "John Wonder". Para realizar essa tarefa, siga todas as etapas anteriores neste passo a passo. No entanto, quando você editar o cartão Condição no modo avançado, use a expressão and mostrada aqui:To accomplish this task, follow all steps earlier in this walkthrough, however, when you edit the Condition card in advanced mode, use the and expression shown here:

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

O cartão Condição é semelhante a esta imagem:Your Condition card resembles this image:

imagem da expressão and

Executar o fluxo com a expressão andRun the flow with the and expression

Se você tiver acompanhado o processo, a planilha será semelhante a esta imagem:If you followed along, your spreadsheet resembles this image:

antes de and ser executada

Depois do fluxo ser executado, a planilha será semelhante a esta imagem:After your flow runs, your spreadsheet resembles this image:

após and ser executada

Usar a expressão emptyUse the empty expression

Observe que agora, há várias linhas vazias na planilha.Notice that there are several empty rows in the spreadsheet now. Para removê-las, use a expressão empty para identificar todas as linhas sem texto nas colunas Atribuído e Status.To remove them, use the empty expression to identify all rows that don't have any text in the Assigned and Status columns.

Para realizar essa tarefa, siga todas as etapas listadas na seção Usar a função and anteriormente neste passo a passo. No entanto, quando você editar o cartão Condição no modo avançado, use a função empty da seguinte maneira:To accomplish this task, follow all steps listed in Use the and expression section earlier in this walkthrough, however, when you edit the Condition card in advanced mode, use the empty expression this way:

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

O cartão Condição é semelhante a esta imagem:Your Condition card resembles this image:

imagem da expressão empty

Depois do fluxo ser executado, a planilha será semelhante a esta imagem:After your flow runs, the spreadsheet resembles this image:

após empty ser executada

Observe que as linhas extras foram removidas da tabela.Notice extra lines are removed from the table.

Usar a expressão greaterUse the greater expression

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.Imagine you've bought baseball tickets for your coworkers and you're using a spreadsheet to ensure you're reimbursed by each person. Você pode criar rapidamente um fluxo que envia um email diário para cada pessoa que não pagou o valor total.You can quickly create a flow that sends a daily email to each person who hasn't paid the full amount.

Use a expressão greater para identificar os funcionários que não pagaram o valor total.Use the greater expression to identify the employees who haven't paid the full amount. Em seguida, você pode enviar automaticamente um email de lembrete amigável para aqueles que não pagaram o total.You can then automatically send a friendly reminder email to those who haven't paid in full.

Veja uma exibição da planilha:Here's a view of the spreadsheet:

exibição da planilha

Veja a implementação da expressão greater que identifica todas as pessoas que pagaram menos que a quantidade devida:Here's the implementation of the greater expression that identifies all persons who have paid less than the amount due from them:

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

Usar a expressão lessUse the less expression

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.Imagine you've bought baseball tickets for your coworkers, and you're using a spreadsheet to ensure you're reimbursed by each person by the date to which everyone agreed. Você pode criar um fluxo 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.You can create a flow that sends a reminder email to each person who hasn't paid the full amount if the current date is less than one day before the due date.

Use a expressão and junto com a expressão less, uma vez que há duas condições sendo validadas:Use the and expression along with the less expression since there are two conditions being validated:

Condição a validarCondition to validate expressão a usarexpression to use ExemploExample
O valor total devido foi pago?Has the full amount due been paid? greatergreater @greater(item()?['Due'], item()?['Paid'])@greater(item()?['Due'], item()?['Paid'])
A data devida é menor que um dia?Is the due date less than one day away? lessless @less(item()?['DueDate'], addDays(utcNow(),1))@less(item()?['DueDate'], addDays(utcNow(),1))

Combinar as expressões greater e less em uma expressão andCombine the greater and less expressions in an and expression

Use a expressão greater para identificar os funcionários que pagaram menos que o valor total devido e use a expressão less para determinar se a data de vencimento é menor que um dia antes da data atual.Use the greater expression to identify the employees who have paid less than the full amount due and use the less expression to determine if the payment due date is less than one day away from the current date. Então, você poderá usar a ação Enviar um email para enviar um email de lembrete amigável para aqueles que não pagaram tudo e cuja data de vencimento é menor que um dia.You can then the Send an email action to send friendly reminder email to those who haven't paid in full and the due date is less than one day away.

Veja uma exibição da tabela da planilha:Here's a view of the spreadsheet table:

exibição da planilha

Veja a implementação da expressão and que identifica todas as pessoas que pagaram menos que o valor devido e se a data de vencimento é menor que um dia antes da data atual:Here's the implementation of the and expression that identifies all persons who have paid less than the amount due from them and the due date is less than one day away from the current date:

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

Usar funções em expressõesUse functions in expressions

Algumas expressões obtêm seus valores de ações de runtime que talvez ainda não existam quando um fluxo começa a ser executado.Some expressions get their values from runtime actions that might not yet exist when a flow starts to run. Para fazer referência a esses valores ou trabalhar com eles em expressões, você pode usar funções fornecidas pela Linguagem de Definição do Fluxo de Trabalho.To reference or work with these values in expressions, you can use functions that the Workflow Definition Language provides. Mais informações: Referência de funções para a Linguagem de Definição de Fluxo de Trabalho no Power AutomateMore information: Functions reference for Workflow Definition Language in Power Automate