Como organizar script de conexão ao Dataflow no Power Query

Artigo escrito por:Márcio Santos
Com certeza, se você trabalha com vários Dataflows pelo Power BI Serviços, já se deparou com aquela dificuldade de ter que alterar os endereços dos Workspaces e endereços do Dataflow correspondente. Isso além de ser meio chato de fazer, também é um causador de dor de cabeça, se você não fizer as alterações corretas, já que não vai carregar os dados e dar o famoso erro:
Expression.Error: O nome 'caCacACa-bDdB-eFee-gHHi-0j1k2l3m4n' não foi reconhecido. Certifique-se de que ele foi soletrado corretamente. Dessa forma, para facilitar o meu trabalho, eu estudei o script de conexão do Power Query. Como trabalho com vários clientes, estou migrando todo o fluxo de dados dos meu relatórios para o Dataflow, tanto dos antigos clientes, quanto dos novos.
Assim, para transitar de forma mais simples pelas Workspaces variadas, estudei um formato de script adaptável para qualquer que seja o Workspace conectado. Me acompanhe para entender e já colocar em prática.
Entendendo a estrutura para organizar o script de conexão ao Dataflow no Power Query
Todo script no Power Query sempre segue uma lógica de estrutura que facilita nosso entendimento.
O Power Query utiliza uma linguagem de script chamada “Linguagem M”, que é utilizada para definir as transformações que serão aplicadas aos dados.
As etapas são executadas em ordem sequencial, da esquerda para a direita, e podem ser combinadas para criar transformações mais complexas. A estrutura do script do Power Query consiste em uma série de etapas (ou “passos”) que descrevem as transformações a serem realizadas nos dados, sempre uma aninhada a outra, dependente e resultante da etapa anterior.
Cada etapa é composta por uma função M que define a transformação a ser aplicada, e a última é definida como a tabela final, onde todas as transformações são encapsuladas.
Vamos ver um exemplo:
let Fonte = Excel.Workbook(File.Contents("C:Arquivo.xlsx"), null, true), Tabela1 = Fonte{[Item="Tabela1",Kind="Table"]}[Data], Filtro = Table.SelectRows(Tabela1, each [Coluna1] = "Valor1"), ColunasRenomeadas = Table.RenameColumns(Filtro,{{"Coluna1", "NovaColuna1"}, {"Coluna2", "NovaColuna2"}}) in ColunasRenomeadas Neste exemplo, temos as etapas separadas em cada linha, e vamos entender cada uma delas:
- Conexão com um arquivo Excel na pasta C:.
- Usa a função “Tabela” para selecionar a tabela “Tabela1” dentro do arquivo Excel.
- Usa a função “Selecionar linhas” para filtrar as linhas da tabela onde o valor da coluna “Coluna1” é igual a “Valor1”.
- Usa a função “Renomear colunas” para renomear as colunas “Coluna1” e “Coluna2” para “NovaColuna1” e “NovaColuna2”, respectivamente.
- O resultado final é uma tabela com as colunas renomeadas e as linhas filtradas de acordo com o critério especificado.
Criando nosso script para o Power Plataform
Vamos então conectar o nosso Power Query num Fluxo de Dados existentes no Power BI Serviço. Vamos nos conectar ao Workspace Dataflow, e escolher a tabela Orçamento Casais e Vendas.

Ao nos conectar a essa tabela, iremos abrir o editor avançado no Power Query, e teremos o script abaixo:
let Fonte = PowerPlatform.Dataflows(null), Workspaces = Fonte{[Id="Workspaces"]}[Data], #"aAaAaAaA-bBbBbB-cCcC-dDdDdDdD-eEeEeEeE" = Workspaces{[workspaceId="2a2A2a2A2a2A-bbb-3c3C-4d4DD-5efgHi"]}[Data], #"2a2A2a2A2a2A-bbb-3c3C-4d4DD-5efgHi" = #"aAaAaAaA-bBbBbB-cCcC-dDdDdDdD-eEeEeEeE" {[dataflowId="caCacACa-bDdB-eFee-gHHi-0j1k2l3m4n"]}[Data], #"Orçamento Casais e Vendas" = #"caCacACa-bDdB-eFee-gHHi-0j1k2l3m4n"{[entity="Orçamento Casais e Vendas",version=""]}[Data] in #"Orçamento Casais e Vendas" Dessa forma podemos observar a mesma lógica de estrutura, onde em cada linha temos uma etapa. Como já definimos anteriormente, as etapas (ou “passos”) que descrevem as transformações a serem realizadas nos dados, sempre uma aninhada a outra, dependente e resultante da etapa anterior.
Seguindo essa lógica, podemos construir um código mais limpo, e legível. Você vai entender a estruturar desse código abaixo, onde iremos definir variáveis, para facilitar nossa conexão, e renomear as etapas.
Siga o código abaixo com as etapas:
let // Declarando os códigos do Workspace e Dataflow // importante saber os códigos de cada, para fazer a substituição WorkSpace = "2a2A2a2A2a2A-bbb-3c3C-4d4DD-5efgHi", //O nome do Workspace criado DataFlow = "caCacACa-bDdB-eFee-gHHi-0j1k2l3m4n", // Nome do Dataflow criado NomeEntidade = "Orçamento Casais e Vendas", //Nome da Entidade, ou seja, nome da tabela //----------------- Fonte = PowerPlatform.Dataflows(null), Workspace_PBI = Fonte{[Id="Workspaces"]}[Data], Workspace_ID = Workspace_PBI{[workspaceId=WorkSpace]}[Data], Dataflow_ID = Workspace_ID{[dataflowId=DataFlow]}[Data], Entidade_Nome = Dataflow_ID{[entity=NomeEntidade ,version=""]}[Data] in Entidade_Nome 1) Troque o nome Workspaces, por Workspace_PBI. Substitua esse nome em todas as etapas onde ele aparecer.
2) Troque o nome #”aAaAaAaA-bBbBbB-cCcC-dDdDdDdD-eEeEeEeE”, por Workspace_ID. Substitua esse nome em todas as etapas onde ele aparecer.
3) Troque o nome #”2a2A2a2A2a2A-bbb-3c3C-4d4DD-5efgHi”, por Dataflow_ID. Substitua esse nome em todas as etapas onde ele aparecer.
4) Troque o nome #”Orçamento Casais e Vendas”, por Entidade_Nome. Substitua esse nome em todas as etapas onde ele aparecer.
5) Crie a variável com o nome WorkSpace, e declare a variável “2a2A2a2A2a2A-bbb-3c3C-4d4DD-5efgHi”. Esse é o nome código do nosso Workspace.
6) Crie a variável com o nome DataFlow, e ****declare a variável “caCacACa-bDdB-eFee-gHHi-0j1k2l3m4n”. Esse é o nome código do nosso Dataflow.
7) Por último, crie a variável com o nome: NomeEntidade, e ****declare a variável “Orçamento Casais e Vendas”. Esse é o nome da nossa tabela no Dataflow.
Se você seguiu as etapas, percebeu como fica muito mais fácil ler o script, e como fica mais fácil de trabalhar com o Dataflow. Basta alterar as variáveis e seu código irá funcionar perfeitamente. Sem risco de erros ou bugs.
Espero ter ajudado na sua caminhada com a Linguagem M. Use e abuse desse script.
Aproveite a oportunidade para seguir a Power BI Experience nas redes sociais e continuar se informando.
Agora se desejar se tornar um analista de dados acima da média, clique no link abaixo e conheça o Curso Completo de Power BI!
Quer aprender mais sobre essa ferramenta incrível?
Conheça o curso completo de Power BI.
Clique aqui
Instagram
Facebook
Youtube
Continue por aqui
Como obter dados de APIs e atualizar automaticamente
Fala galera!! Tudo bem com vocês?? O assunto de hoje é como obter dados de APIs (um assunto que sempre me pedem) e atualizar automaticamente , que...
How to avoid the need for GATEWAY to refresh data in Power BI?
Do you work with local files? Does your company use Office 365 (OneDrive and SharePoint)? In our last Youtube Live we showed how to refresh data on...
Como evitar a necessidade de GATEWAY para atualizar dados no Power BI?
Você trabalha com arquivos locais ? Sua empresa utiliza o Office 365 (OneDrive e SharePoint)? A última live mostrou como podemos atualizar os dados...
Starting from ZERO? You’re not from IT? Your problems are over! Let’s go!
Today the content is dedicated to those who are really starting or want to start learning about Power BI and got any kinds of fears, a topic I talked about at Live #12. Do you think you won't make it? Can it be too difficult? Not sure if it will be worth it? Forget those doubts, follow this post until the end and your problems are over!


