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!