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:
Erro na consulta ‘’. Expression.Error: O nome 'caCacACa-bDdB-eFee-gHHi-0j1k2l3m4n' não foi reconhecido. Certifique-se de que ele foi soletrado corretamente.
Então, para facilitar o meu trabalho, eu estudei o script de conexão do Power Query, para facilitar meu dia a dia. 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.
Para facilitar todo meu trabalho em transitar pelas Workspaces variados, estudei um formato de script adaptável para qualquer que seja o Workspace conectado. Me acompanha para entender e já colocar em prática.
Entendendo a estrutura
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 ultima é 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:
- A primeira etapa é a conexão com um arquivo Excel na pasta C:.
- A segunda etapa usa a função “Tabela” para selecionar a tabela “Tabela1” dentro do arquivo Excel.
- A terceira etapa usa a função “Selecionar linhas” para filtrar as linhas da tabela onde o valor da coluna “Coluna1” é igual a “Valor1”.
- Finalmente, a quarta etapa 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.