BLOG DOS
INCOMPARÁVEIS

Publicações

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

Artigo escrito por: Márcio Santos


Linkedin

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:

 

  1.  Conexão com um arquivo Excel na pasta C:.

     

  2. Usa a função “Tabela” para selecionar a tabela “Tabela1” dentro do arquivo Excel.

     

  3. Usa a função “Selecionar linhas” para filtrar as linhas da tabela onde o valor da coluna “Coluna1” é igual a “Valor1”.

     

  4. Usa a função “Renomear colunas” para renomear as colunas “Coluna1” e “Coluna2” para “NovaColuna1” e “NovaColuna2”, respectivamente.

     

  5. 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.

script para o Power Plataform

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

Leia também

Assista agora o Minicurso gratuito de Power BI:

Publicações recentes:
Assuntos:
Xperiun