Utilizando loops e acessando elementos de array no Power Automate

Loops são uma funcionalidade fundamental nas linguagens de programação que permitem aos usuários iterar sobre listas, arrays e outros tipos de dados. Eles são muito úteis para acessar itens individuais dentro dessas entidades.

No Power Automate, os loops desempenham um papel vital ao permitir a execução eficiente de tarefas repetitivas. Neste post, vamos explorar o poder dos loops no Power Automate e trazer alguns exemplos práticos sobre como a aproveitar todo o seu potencial.

Arrays no Power Automate

No Power Automate, arrays são estruturas de dados projetadas para armazenar e manipular múltiplos valores de vários tipos de dados. Eles servem como uma maneira de agrupar dados relacionados, simplificando o processamento e a execução de operações nos dados como uma unidade coesa.

Pense em um array como uma “lista” onde você pode armazenar elementos como nomes de países, endereços, produtos, temperaturas e muito mais. Vamos tomar como exemplo a representação de uma lista de cidades no Power Automate:

Lista de cidades no Excel

Uma das abordagens possíveis é atribuir esta lista a uma variável de tipo array (se você quiser aprender mais sobre como trabalhar com variáveis, confira este artigo):

Lista de cidades em array no power automate

No Power Automate, arrays são indicados por colchetes no início e no final do valor atribuído. Sempre que encontrar valores entre “[]”, você estará diante de um array. Além disso, você pode notar que usamos aspas para delimitar o nome de cada cidade: como esses valores são do tipo string (texto), precisamos usar as aspas para identificá-los.

Uma das vantagens dos arrays é sua capacidade de organizar elementos de diferentes tipos de dados dentro de si. No exemplo abaixo, você pode ver uma combinação de tipos de dados de string (destacado em laranja), integer (destacado em amarelo), boolean (destacado em verde), float (destacado em rosa) e object (destacado em azul). Essa versatilidade permite uma maior flexibilidade no manuseio e manipulação de dados dentro do Power Automate.

Array em power automate com diversos tipos de dados

Você pode até mesmo armazenar outros arrays dentro de um array! E arrays dentro de arrays que estão dentro (adivinhe…) de outros arrays. É possível ter quantos arrays aninhados você desejar:

arrays aninhados em power automate

Verificando os raw outputs dessa variável (se você não sabe como acessar os raw inputs/outputs de uma ação, consulte este post), é mais fácil identificar quantos arrays aninhados temos:

row outputs de arrays aninhados em power automate

Em resumo, arrays oferecem uma ampla gama de possibilidades, agindo como listas com o recurso valioso de acessar e realizar ações sobre elementos individuais.

Acessando os elementos de um array no Power Automate

Em Power Automate, existem dois métodos para acessar elementos de arrays: expressões e loops. As expressões permitem que você retorne elementos específicos do array, como o primeiro, segundo, último ou o elemento “N”. Isso oferece um controle preciso sobre os dados com os quais você deseja trabalhar.

Por outro lado, os loops permitem iterar por vários elementos de um array e realizar tarefas em cada um deles. Seja percorrendo um subconjunto ou todos os elementos, os loops fornecem um mecanismo poderoso para processar e manipular arrays de forma eficiente. Com essas duas abordagens, você tem a flexibilidade para acessar e manipular os elementos do array de acordo com requisitos específicos de seu caso de uso.

Acessando o primeiro elemento de um array no Power Automate

No Power Automate, as expressões desempenham um papel significativo na realização de tarefas de forma eficiente. Ao trabalhar com arrays, as expressões são úteis para acessar elementos específicos com base em sua posição. Tomando nossa variável de lista de cidades como exemplo (com elementos: “Las Vegas,” “Toronto,” “Londres,” “Berlim,” e “Singapura”), podemos utilizar a expressão first() para recuperar o primeiro elemento, que, neste caso, é “Las Vegas.”

expressao first em power automate

Nota: Para referenciar a variável que contém a lista de cidades (“variables(‘Cities’)”), chamada “Cities,” você pode simplesmente clicar em “Conteúdo Dinâmico” e selecionar “Cities” nas opções disponíveis (para maiores detalhes sobre como trabalhar com conteúdo dinâmico no Power Automate, verifique este artigo). Desta forma, você não precisa digitar manualmente a referência para cada expressão, pois o sistema a gerará automaticamente.

A expressão é simples: você só precisa alocar o array dentro dos parênteses, e ela retornará o primeiro elemento da lista:

output da expressao first em power automate

Acessando o último elemento de um array no Power Automate

Muito semelhante ao primeiro, você pode acessar o último item de um array usando a expressão last(). A sintaxe é a mesma da expressão first():

expressao last em power automate

Como esperado, o valor atribuído à variável ‘last_city’ com a expressão last() é ‘Singapore’:

output da expressao last em power automate

Índices e acesso ao “N” elemento de um array no Power Automate

No Power Automate, acessar elementos específicos de um array não se limita apenas ao primeiro e ao último elementos. Você pode acessar qualquer item da lista fornecendo seu índice, que representa sua posição dentro do array.

Para acessar um elemento pelo seu índice, basta usar colchetes com o índice desejado após o array como uma expressão. No entanto, é preciso ter cuidado: o Power Automate adota o “zero-indexing”, o que significa que a contagem dos elementos do array inicia em zero. Por exemplo, para acessar o primeiro elemento, você usaria “[0]” como índice. Da mesma forma, para acessar o quinto elemento, você usaria “[4]” como índice. Certifique-se de ajustar o índice adequadamente para retornar o elemento desejado com precisão.

Para acessar “London”, o terceiro elemento na lista de cidades, precisaremos usar a seguinte expressão (referenciando o índice “2”):

referencia de indice em power automate

E este é o output:

elemento acessado por indice em power automate

Ainda, é possível inserir dinamicamente o índice da expressão retornando-o de ações anteriores, desde que o valor seja um número inteiro. Por exemplo, podemos incluir o valor de ‘N’ de uma variável, assumindo que ela contenha o valor inteiro de 3:

variavel de indice em power automate
acessando elemento por variavel de indice em power automate

Nota: a expressão completa usada na imagem acima é: variables(‘Cities’)[variables(‘index_integer’)].

Como a variável “index_integer” tem o valor de 3, a cidade atribuída a “forth_city_by_index” será “Berlin” (o 4º item do array de cidades).

Utilizando loops em arrays no Power Automate com a ação “Aplicar a cada”

No Power Automate, os loops fornecem uma maneira de acessar e executar tarefas em cada elemento de um array até que uma condição específica seja atendida. Existem dois tipos de loops disponíveis: “Aplicar a cada” (apply to each) e ”Fazer até” (do until).

O loop “Aplicar a cada” é ideal quando você precisa iterar por todos os elementos do array. Ele requer apenas uma entrada: o próprio array (destacado em amarelo). Dentro do loop, você pode adicionar ações que serão executadas para cada item individualmente. É importante notar que apenas as ações colocadas dentro do bloco de loop serão executadas durante cada iteração (destacadas em verde), enquanto quaisquer ações fora do bloco de loop serão executadas após o término do loop (destacadas em azul).

loop aplicar a cada em power automate

Dentro do loop, você pode facilmente fazer referência ao elemento atual do array. Para fazer isso, você pode selecionar dinamicamente o “current item” nas opções disponíveis na caixa de conteúdo dinâmico:

conteudo dinamico em power automate

Ou você pode simplesmente utilizar a expressão item():

expressao item em power automate

No nosso exemplo, vamos iterar por todos os elementos da variável “Cities” (destacada em amarelo), utilizá-los em um texto modelo (destacado em verde) e adicioná-los a outro array chamado “Welcoming_Cities” (destacado em azul), que começa vazio:

adicionando elemento a array em power automate

Estamos usando a ação “Acrescentar à variável de matriz” para inserir novos itens no array “Welcoming_Cities”: se você não souber como usar esta ação, confira nosso artigo sobre como trabalhar com variáveis no Power Automate.

A estrutura do texto segue um padrão de “Bem-vindo a [nome da cidade]”, onde [nome da cidade] representa cada elemento de nosso array “Cities”. Como resultado, o output no array “Welcoming_Cities” consistirá em strings como “Bem-vindo a Las Vegas!”, “Bem-vindo a Toronto!”, e assim por diante. Essa lista conterá mensagens de boas-vindas específicas para cada cidade dentro do array:

output de array em power automate

Nota: incluímos uma ação ‘Compor’ exclusivamente para exibir explicitamente o output da variável “Welcoming_Cities”. É importante observar que o uso desta ação não é necessário para a manipulação de arrays. Seu propósito neste contexto é apenas mostrar o resultado de nossa operação de loop.

Iterando arrays no Power Automate com a ação “Fazer até”

A ação “Fazer até” serve a um propósito distinto em comparação ao loop “Aplicar a cada”. Ele permite que as ações do loop sejam executadas repetidamente enquanto uma condição específica (ou um conjunto de condições) permanecer falsa. Assim que a condição se tornar verdadeira, o loop será encerrado. Este loop não está limitado a arrays e pode ser utilizado para outras tarefas que exigem execução repetitiva por um número desconhecido de iterações.

Uma abordagem comum para iterar arrays usando o loop “Fazer até” envolve a criação de uma variável numérica para agir como um “contador”. O loop continua sendo executado até que este contador atinja um valor específico. Vamos replicar essa estratégia aqui:

loop fazer até em power automate

Na imagem acima, a variável “counter” é inicializada com o valor 1 (destacado em rosa). Dentro do loop “Fazer até”, você especifica a condição que precisa ser rastreada. O loop continuará até que essa condição seja avaliada como verdadeira. Em nosso exemplo, a condição é definida como a variável “counter” (destacada em verde) sendo maior ou igual ao comprimento do array “Cities” (destacado em amarelo). Uma vez que o valor “counter” se torne igual ou maior que o comprimento do array, a condição é satisfeita e o loop termina. O comprimento do array “Cities” (destacado em azul) é obtido usando a expressão: length(variables(‘Cities’)).

Dentro do bloco “Fazer até”, iremos novamente anexar um texto como elemento à variável “Welcoming_Cities”. No entanto, desta vez, não usaremos o item atual como um valor dinâmico. Em vez disso, usaremos uma expressão (destacada em azul), combinando a variável “Cities” (destacada em verde) com um índice dinâmico representado pela variável “counter” (destacada em amarelo), entre colchetes. A expressão será variables(‘Cities’)[variables(‘counter’)]. O objetivo é acessar os itens da variável “Cities” usando a variável “counter”, que muda a cada iteração do loop. Inicialmente, ela representa variables(‘Cities’)[1], depois variables(‘Cities’)[2], e assim por diante.

Para garantir que cada iteração do loop acesse um elemento diferente do array, precisamos incrementar a variável “counter” dentro do loop (destacada em rosa). Sem esse incremento, acessaríamos continuamente o mesmo item do array. Ao alterar dinamicamente a variável “counter”, podemos acessar e manipular sistematicamente cada elemento do array “Cities”, tornando nossa operação de loop mais eficaz e versátil.

variavel de contador em power automate

Esses serão os outputs:

adicionando elemento a variavel com fazer até em power automate

O que está acontecendo aqui é que o loop “Do until” começou a mapear todos os elementos a partir do índice 1 porque esse valor foi inicialmente atribuído à variável”’counter”. Como os arrays no Power Automate têm índices baseados em zero, o loop começou a partir do segundo elemento, que corresponde a variables(‘Cities’)[1], representando Toronto.

Para controlar o loop, definimos como condição de parada a variável “counter” sendo igual ou maior que o comprimento da variável “Cities”, que é 5. Consequentemente, todas as cidades, exceto Las Vegas (a primeira, com índice correspondente a 0), foram adicionadas à variável “Welcoming_Cities” durante as iterações do loop.

Conclusão

Arrays desempenham um papel fundamental no Power Automate, pois permitem o manuseio de dados retornados por vários conectores. Ao trabalhar com listas do SharePoint, tabelas do Excel e outras ferramentas de armazenamento de dados, arrays se tornam essenciais para a leitura de registros e extração de informações valiosas.

Além disso, utilizar corretamente os arrays aprimora a eficiência em seus fluxos de automação. O Power Automate pode realizar tarefas em todos os itens dentro de um array de forma contínua, possibilitando ações como preencher documentos, realizar cálculos, atualizar registros e muito mais. Essa capacidade permite os usuários a automatizar processos repetitivos e otimizar suas operações, aumentando a produtividade e a eficácia nos fluxos de trabalho do Power Automate.

By Raphael Zaneti

Power Platform Developer