Como juntar duas tabelas do Dataverse no Power Automate

Por Luiz Antonio Sgargeta
Como juntar duas tabelas do Dataverse no Power Automate

O Dataverse permite que você armazene, de forma segura, dados usados por aplicativos empresariais. Os dados dentro do Dataverse são armazenados dentro de um conjunto de tabelas. Uma tabela é um conjunto de linhas (antes conhecido como registros) e colunas (antes conhecido como campos/atributos). Cada coluna da tabela se destina a armazenar um certo tipo de dados; por exemplo, nome, idade, salário e assim por diante. O Dataverse inclui um conjunto base de tabelas padrão que cobrem cenários típicos, mas você também pode criar tabelas personalizadas específicas de sua organização e preenchê-las com dados usando o Power Query. Os criadores de aplicativos podem usar o Power Apps para criar aplicativos avançados que usam esses dados.

Cenário

Se você já trabalhou com bancos de dados SQL, provavelmente sabe como é simples unir duas tabelas. Mas e o Dataverse? Existe alguma maneira fácil de conectar duas tabelas não relacionadas no fluxo do Power Automate? Sem muitos loops e um fluxo muito lento?

Power Automate conector Dataverse

Mesclando as tabelas

Juntar duas tabelas não é diferente de mesclar dois arrays – afinal, as tabelas são apenas dois arrays com linhas. Você precisa de um valor compartilhado em ambas as tabelas, para este exemplo vamos usar uma coluna de pesquisa (e esquecer por um momento que as tabelas estão realmente conectadas). Uma tabela tem o valor de pesquisa = id da linha, a outra tabela tem a linha real com esse id. Sabendo disso, há um bom artigo de Paul Murana sobre como mesclar matrizes com eficiência.

Para aplicar essa abordagem em tabelas do Dataverse:

Em primeiro lugar, liste as linhas em ambas as tabelas.

Power Automate conector Dataverse

Em segundo lugar, use ‘Selecionar’ para selecionar as colunas relevantes na segunda tabela. Esta etapa é necessária para a eficiência do fluxo.

Power AutomatePower Automate conector Dataverse

Em terceiro lugar, inclua a matriz de saída em elementos adicionais e transforme-a em XML.

Power Automate conector Dataverse

E uma vez que você tenha um XML, você pode usar a expressão xpath(…) , nesta situação em outra ação ‘Select’. Prefiro usar ‘Selecionar’, pois a ação padrão ‘Listar linhas’ fornece muitas colunas quando você geralmente precisa apenas de algumas delas.

Selecione os valores da primeira tabela e, para os valores da segunda tabela, use uma expressão xpath(…) conforme abaixo.

xpath (outputs('XML'),  concat('//Array[<UniqueIDFromSelect>/text()="', <LookupColumn Value>, '"]/<ColumnNameFromSelect>/text()'))?[0]

Observação: < … > são espaços reservados, substitua-os incluindo < e >!

Para minhas tabelas, ficará como abaixo:

xpath (outputs('XML'), concat('//Array[GUID/text()="', item()?['_cr09b_lookupcolumn_value'], '"]/AnotherLookupColumn/text()'))?[0]

E pronto, você acabou de selecionar os dados de duas tabelas do Dataverse e transformá-los em um único array de objetos.

Resumo

Ao mesclar duas tabelas do Dataverse, o Power Automate oferece várias opções de como uni-las. Você pode fazê-lo linha por linha, usando um ‘Aplicar a cada’, e esperar para sempre que o fluxo termine, ou você pode usar um pouco de código. Com algumas ações para preparar os dados, você pode usar um ‘Select’ com a expressão xpath(…) que juntará tudo.

Para mais artigos como este continue acessando o blog da Trinapse.

Ver mais artigos

Entre em Contato

Vamos juntos transformar sua dor
em solução!

#moveFast