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.