Tipos de Dados em Power Automate

O Power Automate é bastante rigoroso com seus tipos de dados, o que pode ser um pouco confuso para usuários que não têm um background em TI ou Análise de Dados. O conceito gira em torno de garantir que os dados manipulados correspondam a tipos específicos e predefinidos. Basicamente, isso significa que, se o Power Automate estiver esperando um número, você não pode fornecer um texto, pois esses valores possuem tipos de dados diferentes.

Neste post, você entenderá o que são tipos de dados e como trabalhar com eles.

O que são tipos de dados?

Tipos de dados são uma forma de classificar e organizar diferentes dados. É um conceito básico em programação que pressupõe que os dados operam como “recipientes”, onde cada tipo de dado tem um formato e tamanho específicos, podendo armazenar informações de diferentes características.

Por exemplo, o tipo de dado integer (inteiro) armazena números inteiros como 5 ou -10, enquanto um tipo de dado string armazena textos como “Microsoft” ou “Power Automate”. Usar o tipo de dado incorreto pode resultar em erros, e muitos fluxos falham devido à má compreensão sobre tipos de dados. Por exemplo, se uma variável destinada a armazenar a idade de uma pessoa for definida como uma string em vez de um inteiro, o usuário receberá um erro ao tentar realizar qualquer operação aritmética, como adição ou subtração.

Quais são os tipos de dados disponíveis em Power Automate?

No Power Automate, os tipos de dados geralmente são semelhantes aos encontrados em linguagens de programação e em softwares de produtividade, como o MS Excel ou Power BI. Atualmente, o Power Automate contém os seguintes tipos de dados:

String

Uma sequência de caracteres, tipicamente usada para dados de texto. Para identificar um valor de string, é necessário colocá-lo entre aspas. Alguns exemplos de valores de tipo string são  “John Smith”, “1234” (entre aspas), “abcdef”, “Power Automate”, ou mesmo textos muito maiores, como o corpo de um e-mail ou o conteúdo de um contrato ou de um relatório de centenas de páginas.

Ao usar strings dentro de expressões, certifique-se de usar aspas simples. Diferentemente de outras ferramentas, o Power Automate não reconhece, para strings, o uso de aspas duplas. Por exemplo, nesta expressão usada para concatenar dois textos (para aprender mais sobre expressões, veja este artigo em inglês), ambos devem ser delimitados por aspas simples:

concatenando strings in power automate

No entanto, ao inicializar uma variável, você não precisará das aspas e poderá simplesmente inserir o texto.

Integer

Número inteiro sem ponto decimal. Por exemplo, um tipo de dado inteiro pode armazenar a idade de uma pessoa, como 30; uma quantidade de unidades vendidas, como 8741; a diferença entre duas datas, como -35, e assim por diante.

Float

Um tipo de dado para números com decimais. Por exemplo, um tipo de dado float pode armazenar o peso de uma pessoa, como 65,5 quilos; ou o preço de um produto, como 19,99.

Você pode atribuir um valor integer a uma variável de tipo float sem gerar erros.

Boolean

Um tipo de dado que representa apenas valores verdadeiro ou falso. É um tipo binário muito utilizado em ações condicionais. Por exemplo, um tipo de dado booleano pode indicar se um e-mail contém anexos ou não, com “true” para sim e “false” para não.

Quando representado dentro de expressões, não é necessário incluir aspas simples, já que este não é um valor do tipo string.

Array

Um tipo de dado que pode armazenar múltiplos valores em uma única variável. É uma lista. Por exemplo, um tipo de dado array pode armazenar uma lista de números, como [1, 2, 3, 4, 5]; uma lista de strings representando e-mails, como [“john@smith.com”, “raphael@digitalmill.net”, “info@gmail.com”]; ou até mesmo uma lista com valores aleatórios e diferentes tipos de dados, como [“Power Automate”, 123.3, true, 58].

Ao inicializar uma variável de array, você precisa colocar os itens do array entre colchetes. Existem várias estratégias para acessar os elementos de um array, e você pode aprender mais sobre elas neste artigo.

Object

Um tipo de dado que pode armazenar múltiplos valores de diferentes tipos e é usado para guardar dados estruturados. Em geral, objetos armazenam características ou propriedades de entidades específicas, como carros, usuários, livros, imóveis, estudantes, dentre outros. Por exemplo, um objeto pode armazenar informações sobre uma pessoa, tais como { “nome”: “Alice”, “idade”: 25, “cidade”: “Nova York” }. Para aprender mais sobre objetos em Power Automate, confira este artigo em inglês.

Todas as operações no Power Automate estão restritas a esses tipos de dados, mesmo as tarefas mais complexas. Por isso, é muito importante compreender o uso e as limitações de cada tipo de dado.

Podemos considerar date/time como um tipo de dado em Power Automate?

Data e hora desempenham um papel significativo nos fluxos do Power Automate, com certas expressões exigindo um “timestamp” como parâmetro. Surpreendentemente, não há um tipo de dado específico para datas; em vez disso, um timestamp é tratado como uma string, mas seguindo um formato específico. Para maiores detalhes em como trabalhar com data e hora no Power Automate, veja este artigo em inglês.

Objetos em Power Automate

Objetos, embora inicialmente confusos, são entidades que armazenam pares de chave-valor (key-value pairs). Cada chave é um identificador único, e cada valor representa dados associados à chave. As chaves devem ser strings (no contexto de objetos, todas as strings devem ser colocadas entre aspas duplas), enquanto os valores podem ser de qualquer tipo de dado, até mesmo outros objetos ou arrays. Objetos são delimitados por chaves (“{}”), sendo seus pares de chave-valor separados por vírgulas.

Aqui está um exemplo de um objeto que representa um usuário com seu ID (tipo de dado integer), seu nome (tipo de dado string) e se está ativo ou não (tipo de dado booleano):

visão de objeto em power automate

As chaves (nomes das propriedades) estão destacadas em verde, enquanto os valores estão destacados em amarelo. Todas as chaves são necessariamente strings, enquanto os valores podem ter diferentes tipos de dados. Para relacionar uma chave a um valor, você precisa utilizar dois pontos (“:”).

Para aprender mais sobre como trabalhar com objetos em Power Automate, verifique este artigo em inglês.

Convertendo números para textos em Power Automate

É possível armazenar números em uma variável de texto, mas há limitações para tanto, uma vez que o Power Automate não permitirá operações aritméticas com esses valores.

Mesmo quando as variáveis têm o mesmo valor, mas tipos de dados diferentes, o Power Automate as considera “não iguais”. Por exemplo, inicializar duas variáveis com o valor 123, sendo uma de tipo integer (destacado em amarelo) e a outra de tipo string (destacado em verde), fará com que sejam consideradas diferentes. Essa compreensão sobre a diferença entre valores idênticos, mas com tipos de dados distintos, é essencial para o uso de condições no Power Automate. Para mais informações sobre como lidar com condições, confira este artigo.

Aqui está um exemplo desta comparação utilizando condições:

comparação de variáveis em power automate

Ao executar o fluxo, a condição retornará falso, pois “123” (string) é diferente de 123 (integer).

resultado de condição em power automate

Em geral, Power Automate é muito flexível para a conversão de um número em uma string. Por exemplo, é perfeitamente possível realizar a seguinte operação ao inserir uma variável numérica como conteúdo dinâmico em uma variável de string:

convertendo variável numérica para texto em power automate

Como resultado, ambos os valores serão concatenados, formando uma única string:

output de variável textual em power automate

Essa lógica também pode ser usada dentro das expressões, e isso é bastante comum quando você está trabalhando com operações de texto em Power Automate.

Normalmente, quando se utiliza números onde uma string é esperada, o Power Automate realiza automaticamente a conversão. No entanto, há uma expressão que faz essa conversão explicitamente: a expressão string(). Essa expressão é útil quando estamos trabalhando com comparações, como fizemos no exemplo anterior. Se usarmos a mesma “Condição” que utilizamos antes, mas agora inserirmos a variável “numérica” dentro da expressão string(), o resultado retornará verdadeiro, pois agora a ação estará comparando “123” com “123”:

utilizando expressao string em power automate
resultado positivo de condição em power automate

A mesma lógica pode ser aplicada para floats e booleanos, simplesmente inserindo esses valores dentro da expressão string().

Convertendo textos para números em Power Automate

Podemos simplesmente atribuir números (ou uma variável numérica) a uma string sem qualquer transformação. No entanto, o oposto não é verdadeiro. Tentar atribuir uma variável de tipo string a uma variável numérica (destacadas em verde e amarelo) resultará em um erro, mesmo que o conteúdo da string possa ser convertido em números:

atribuindo texto para variável numérica em power automate

Este é o resultado após rodar o fluxo:

erro de tipo de dados em power automate

A solução aqui é simples: basta usar a expressão int() (da mesma forma que usamos a expressão string() anteriormente) para converter um texto em um número inteiro:

convertendo texto para número em power automate

Assim a ação será executada sem quaisquer erros:

output de variável numérica convertida

A mesma lógica pode ser aplicada para transformar textos em valores de tipo float, bastando utilizar a expressão float().

Convertendo textos para arrays em Power Automate

Arrays são listas, e você pode facilmente transformar strings em arrays usando a expressão split(). Essa expressão requer dois parâmetros: o texto a ser dividido e o separador a ser utilizado na operação.

No exemplo abaixo, inicializamos uma variável de tipo string chamada “names” e armazenamos 5 nomes separados por vírgula (destacados em verde). Em seguida, inicializamos uma nova variável tipo array chamada “names_list” e atribuímos a ela uma expressão (destacada em amarelo), que conterá a função split(). O primeiro parâmetro é o conteúdo dinâmico da variável “names” (destacado em azul) e o segundo é uma string contendo uma vírgula (destacada em rosa; observe que estamos usando aspas simples), pois esse símbolo será utilizado como separador:

utilizando expressão split em power automate

Após executar o fluxo, os valores serão transformados em um array (observe os colchetes nos resultados da variável “names_list”):

output de array em power automate

Você pode usar qualquer separador nessa operação. Por exemplo, seu texto pode usar “8” como separador ou uma palavra, ou até mesmo uma frase: desde que você esteja usando uma string como separador, qualquer valor é aceito:

utilizando split com outros separadores

Um uso muito comum para a transformação de strings em arrays é a extração de textos de e-mails para documentos. Neste artigo em inglês, você pode encontrar um passo a passo sobre como utilizar expressões em Power Automate para extrair dados de um e-mail e inseri-los em uma tabela de Excel.

Convertendo arrays em strings em Power Automate

Agora, vamos reverter o processo e converter a saída do exemplo anterior (uma lista de nomes em um array) de volta para uma string. O processo é muito semelhante, mas agora usaremos a expressão join() e definiremos o separador que será usado dentro da nova string para separar cada valor. A ordem dos parâmetros permanece a mesma da expressão split(): primeiro o array a ser unido (destacado em azul) e depois o separador (destacado em verde, que, no nosso caso, será um hífen):

utilizando expressão join em power automate

Após rodar o fluxo, este será o resultado:

array convertido em texto em power automate

Conclusão

Entender os tipos de dados pode aumentar significativamente a proficiência na construção de fluxos com o Power Automate. Muitos erros podem ser evitados simplesmente compreendendo qual é o tipo de dado esperado e como obtê-lo.

By Raphael Zaneti

Power Platform Developer