Passo a Passo
Inicie o Power BI Desktop e abra um novo relatório ou um relatório existente.
1. Obter Dados
No menu em Página Inicial
navegue através da opção Obter dados > Consulta em branco
2. Inserir o código
No menu em Página Inicial
clique em Editor Avançado
copie o código abaixo e cole no Editor Avançado
:
(Url as text, Token as text, QuantidadeRegistrosPorPagina as number, OrderBy as text) =>
let
// Verificação da quantidade máxima de registros por página
maxRegistrosPorPagina = 500,
registrosPorPaginaValidos = QuantidadeRegistrosPorPagina <= maxRegistrosPorPagina,
// Verificação das condições antes de prosseguir
resultado = if not registrosPorPaginaValidos then
error "A quantidade máxima de registros por página é 500."
else
let
// Visualização de registros
top = QuantidadeRegistrosPorPagina,
// Função para buscar os registros de uma página específica
request = (skip as number, top as number) =>
let
baseURL = Url,
url = baseURL & "?$skip=" & Text.From(skip) & "&$top=" & Text.From(top) & "&$orderby=" & Text.From(OrderBy),
Fonte = Json.Document(Web.Contents(url, [Headers=[apitoken=Token]]))
in
Fonte,
// Definindo a URL base
baseURL = Url,
Fonte = Json.Document(Web.Contents(baseURL, [Headers=[apitoken=Token]])),
totalCount = Fonte[count], // Total de registros
totalPages = Number.RoundUp(totalCount / top),
// Gerar lista de páginas, incluindo o número da página em cada registro
listOfPages = List.Generate(
() => [page = 1, skip = 0, data = request(0, top)], // Estado inicial
each [page] <= totalPages, // Condição de repetição
each [page = [page] + 1, skip = [skip] + top, data = request([skip] + top, top)]
),
// Converter para tabela
tabelaInicial = Table.FromList(listOfPages, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
// Expandir os campos 'page' e 'data'
tabelaExpandida = Table.ExpandRecordColumn(tabelaInicial, "Column1", {"page", "data"}, {"page", "data"}),
// Expandir a coluna 'data' para obter 'items'
tabelaComItems = Table.ExpandRecordColumn(tabelaExpandida, "data", {"items"}, {"items"}),
#"items Expandido" = Table.ExpandListColumn(tabelaComItems, "items"),
// Obter dinamicamente os nomes das colunas dos registros dentro de 'items'
colunasItems = List.Distinct(List.Combine(List.Transform(#"items Expandido"[items], Record.FieldNames))),
// Expandir dinamicamente os campos de cada registro dentro de 'items'
tabelaFinal = Table.ExpandRecordColumn(#"items Expandido", "items", colunasItems, colunasItems)
in
tabelaFinal
in
resultado
3. Utilize os parâmetros
Após inserir o código, será possível definir na consulta os valores dos parâmetros URL, Token, QuantidadeRegistrosPorPagina, e OrderBy
na caixa de diálogo de parâmetros.
Nota: Nem todas as URLs estão disponíveis para uso. Apenas os endpoints que utilizam o oData são permitidos.
4. Expandir Colunas Manualmente:
Após a consulta inicial, algumas colunas que exibem os registros com o nome "record" e/ou "list", deverá ser expandidas caso seja importante um dado importante para o relatório.
Clique nos ícones de expansão (pequenas setas duplas) ao lado desses nomes para expandir os registros e visualizar os dados completos. Depois de ajustar e expandir as colunas conforme necessário, clique em Fechar e Aplicar
na barra superior do editor de consultas.
O Power BI aplicará as mudanças e carregará os dados na interface principal para que você possa criar seu relatório.

Adicione no Relatório as colunas que deseja exibir. Caso tenha algum dado faltando ou que foi exibido de maneira errada, será necessário ajustar nas Etapas aplicadas ou pelo "Editor Avançado" .