A paginação no Power BI refere-se ao processo de dividir uma grande quantidade de dados em páginas menores, garantindo uma navegação mais ordenada em torno dos dados trazidos.
Confira como realizar a configuração de paginação no Power BI nos passos abaixo! 🚀
Tópicos do Artigo:
Informações importantes
Antes de iniciar seus testes com a nossa API, é fundamental conhecer alguns processos básicos:
✅ Acessando a documentação: Consulte nossa documentação oficial para entender os endpoints disponíveis e seus respectivos parâmetros.
🔑 Chaves de Integração da API: Saiba como obter e utilizar suas credenciais de acesso para autenticar as requisições.
⚙️ Características e Recomendações: Fique por dentro das melhores práticas para otimizar sua experiência com a API da Omie.
🔐 Login no Portal: Para testar suas requisições no Portal do Desenvolvedor é necessário fazer login na plataforma com o mesmo e-mail e senha que você já usa no ERP. Fácil, né? 😉
🧪 Aplicativo Teste: Aprenda a criar um Aplicativo Teste gratuito e descubra, na prática, como utilizar nossas APIs e aproveitar ao máximo os nossos recursos.
Particularidades para Power BI:
Os dados de configuração e códigos passados por aqui são exemplos, pois não prestamos suporte às funcionalidades do Power BI. O tratamento dos dados obtidos deve ser feito pelo desenvolvedor responsável pela integração.
Caso tenha muitos dados, opte por utilizar filtros. Afinal, o tamanho dos dados tem influência direta no desempenho da integração.
Configurando as credenciais
1) Após a instalação e configuração inicial do Power BI, abra o aplicativo e crie um relatório em branco:
2) Clique sobre a opção "Transformar dados", disponível no cabeçalho:
3) No Editor do Power Query, crie grupo específico para guardar as credenciais do seu aplicativo Omie. Para isso, clique com o botão direito no menu esquerdo de Consultas (1) e selecione a opção "Novo Grupo" (2):
4) Defina um nome de sua preferência para o novo grupo (1). E, por fim, clique em "OK" (2) para criar a pasta:
5) Com a pasta criada, clique com o botão direito em cima dela (1) e depois em "Novo Parâmetro" (2):
6) Crie dois parâmetros, sendo eles "app_key" e "app_secret", conforme as imagens abaixo:
(1) Nome: Defina o nome do parâmetro.
(2) Tipo: Defina como "texto".
(3) Valor Atual: Preencha o valor indicando o dado da sua credencial do App Omie, conforme o nome do parâmetro.
(4) OK: Após o preenchimento, confirme a inclusão do novo parâmetro.
Configurando o método
💡 Se você for trabalhar com mais de um método, ou seja, realizar mais de uma requisição, confira este Artigo:
1) Com as credenciais já configuradas, é hora de parametrizar o método utilizado para trabalhar. Para isso, clique com o botão direito no menu esquerdo de Consultas (1) e selecione a opção "Novo Grupo" (2):
2) Defina um nome de sua preferência (1) e clique em "OK" (2):
3) Clique com o botão direito em cima da pasta criada (1), e depois em "Novo Parâmetro" (2):
💡 Dica
Você pode consultar pelo nosso site Developer todas URLs/Endpoints e todas as informações para suas requisições.
Neste exemplo, vamos utilizar o método voltado a listagem de Contas a Receber:
4) Crie dois parâmetros, sendo eles "call"e "relative_path" , conforme as imagens abaixo:
(1) Nome: Defina o nome do parâmetro.
(2) Tipo: Defina como "texto".
(3) Valor Atual: Preencha o valor indicando o nome do método e o final do endpoint, respectivamente.
(4) OK: Após o preenchimento, confirme a inclusão do novo parâmetro.
Configurando as funções
1) Clique com o botão direito no menu esquerdo de Consultas (1) e selecione a opção "Novo Grupo" (2):
2) Defina um nome de sua preferência (1) e clique em "OK" (2):
3) Clique com o botão direito em cima da pasta criada (1), e vá em "Nova Consulta" (2) para selecionar a opção "Consulta Nula" (3):
4) Clique novamente com o botão direito em cima da nova consulta criada (1) e realize dois procedimentos, sendo o primeiro dele renomear a consulta (2) e acessar o Editor Avançado (3):
(2) Renomear: Renomeie a consulta para: get_body.
(3) Editor Avançado: Ao clicar em "Editor Avançado", será necessário colar o código.
5) No Editor Avançado, cole o trecho de código abaixo. Com tudo certo, clique em "Concluído":
(page as number) =>
let
Fonte = Json.FromValue ([
call = call,
app_key = app_key,
app_secret = app_secret,
param = {
[
pagina = page,
registros_por_pagina = 20,
apenas_importado_api = "N"
]
}
])
in
Fonte
💡 Na função get_body, são informado os parâmetros da requisição. Eles podem variar de requisição para requisição, por isso consulte sempre o site do Developer para entender quais são os parâmetros necessários para a sua requisição!
6) Você deve realizar o mesmo procedimento de criação de consulta nula na mesma pasta de funções mais duas vezes, com os seguintes nomes e trechos de código:
get_data
(page as number) =>
let
Data=Json.Document(Web.Contents(
"https://app.omie.com.br/api/v1", [
Headers= get_header(),
Content= get_body(page),
RelativePath= relative_path
]))
in
Data
get_header
() => [#"Content-Type"="application/json"]
7) Sendo assim, a pasta terá três consultas:
Configurando a requisição
1) Com tudo configurado, é chegado o último passo: fazer a chamada da requisição.
Para isso, clique com o botão direito na basta "Outras Consultas" (1) e vá em "Nova Consulta" (2) para selecionar a opção "Consulta Nula" (3):
2) Clique com o botão direito na nova consulta criada (1) e depois em "Editor Avançado" (2):
3) No Editor Avançado, cole o trecho de código abaixo (1). Com tudo certo, clique em "Concluído" (2):
let
totalPages = get_data(1)[total_de_paginas],
listOfPages = List.Generate(
() => [ page = 1, conteudo = get_data(1)],
each [page] <= totalPages,
each [page = [page] +1, conteudo = get_data([page] + 1)]
),
#"Convertido para Tabela" = Table.FromList(listOfPages, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Column1 Expandido" = Table.ExpandRecordColumn(#"Convertido para Tabela", "Column1", {"page", "conteudo"}, {"Column1.page", "Column1.conteudo"}),
#"Column1.conteudo Expandido" = Table.ExpandRecordColumn(#"Column1 Expandido", "Column1.conteudo", {"pagina", "total_de_paginas", "registros", "total_de_registros", "conta_receber_cadastro"}, {"Column1.conteudo.pagina", "Column1.conteudo.total_de_paginas", "Column1.conteudo.registros", "Column1.conteudo.total_de_registros", "Column1.conteudo.conta_receber_cadastro"}),
#"Column1.conteudo.conta_receber_cadastro Expandido" = Table.ExpandListColumn(#"Column1.conteudo Expandido", "Column1.conteudo.conta_receber_cadastro"),
#"Column1.conteudo.conta_receber_cadastro Expandido1" = Table.ExpandRecordColumn(#"Column1.conteudo.conta_receber_cadastro Expandido", "Column1.conteudo.conta_receber_cadastro", {"boleto", "categorias", "codigo_categoria", "codigo_cliente_fornecedor", "codigo_lancamento_integracao", "codigo_lancamento_omie", "codigo_tipo_documento", "codigo_vendedor", "data_emissao", "data_previsao", "data_registro", "data_vencimento", "distribuicao", "id_conta_corrente", "id_origem", "info", "nCodPedido", "numero_documento_fiscal", "numero_parcela", "numero_pedido", "operacao", "retem_cofins", "retem_csll", "retem_inss", "retem_ir", "retem_iss", "retem_pis", "status_titulo", "tipo_agrupamento", "valor_documento", "bloqueado", "bloquear_baixa"}, {"Column1.conteudo.conta_receber_cadastro.boleto", "Column1.conteudo.conta_receber_cadastro.categorias", "Column1.conteudo.conta_receber_cadastro.codigo_categoria", "Column1.conteudo.conta_receber_cadastro.codigo_cliente_fornecedor", "Column1.conteudo.conta_receber_cadastro.codigo_lancamento_integracao", "Column1.conteudo.conta_receber_cadastro.codigo_lancamento_omie", "Column1.conteudo.conta_receber_cadastro.codigo_tipo_documento", "Column1.conteudo.conta_receber_cadastro.codigo_vendedor", "Column1.conteudo.conta_receber_cadastro.data_emissao", "Column1.conteudo.conta_receber_cadastro.data_previsao", "Column1.conteudo.conta_receber_cadastro.data_registro", "Column1.conteudo.conta_receber_cadastro.data_vencimento", "Column1.conteudo.conta_receber_cadastro.distribuicao", "Column1.conteudo.conta_receber_cadastro.id_conta_corrente", "Column1.conteudo.conta_receber_cadastro.id_origem", "Column1.conteudo.conta_receber_cadastro.info", "Column1.conteudo.conta_receber_cadastro.nCodPedido", "Column1.conteudo.conta_receber_cadastro.numero_documento_fiscal", "Column1.conteudo.conta_receber_cadastro.numero_parcela", "Column1.conteudo.conta_receber_cadastro.numero_pedido", "Column1.conteudo.conta_receber_cadastro.operacao", "Column1.conteudo.conta_receber_cadastro.retem_cofins", "Column1.conteudo.conta_receber_cadastro.retem_csll", "Column1.conteudo.conta_receber_cadastro.retem_inss", "Column1.conteudo.conta_receber_cadastro.retem_ir", "Column1.conteudo.conta_receber_cadastro.retem_iss", "Column1.conteudo.conta_receber_cadastro.retem_pis", "Column1.conteudo.conta_receber_cadastro.status_titulo", "Column1.conteudo.conta_receber_cadastro.tipo_agrupamento", "Column1.conteudo.conta_receber_cadastro.valor_documento", "Column1.conteudo.conta_receber_cadastro.bloqueado", "Column1.conteudo.conta_receber_cadastro.bloquear_baixa"}),
#"Column1.conteudo.conta_receber_cadastro.boleto Expandido" = Table.ExpandRecordColumn(#"Column1.conteudo.conta_receber_cadastro Expandido1", "Column1.conteudo.conta_receber_cadastro.boleto", {"cGerado", "cNumBancario", "cNumBoleto", "dDtEmBol", "nPerJuros", "nPerMulta"}, {"Column1.conteudo.conta_receber_cadastro.boleto.cGerado", "Column1.conteudo.conta_receber_cadastro.boleto.cNumBancario", "Column1.conteudo.conta_receber_cadastro.boleto.cNumBoleto", "Column1.conteudo.conta_receber_cadastro.boleto.dDtEmBol", "Column1.conteudo.conta_receber_cadastro.boleto.nPerJuros", "Column1.conteudo.conta_receber_cadastro.boleto.nPerMulta"}),
#"Column1.conteudo.conta_receber_cadastro.categorias Expandido" = Table.ExpandListColumn(#"Column1.conteudo.conta_receber_cadastro.boleto Expandido", "Column1.conteudo.conta_receber_cadastro.categorias"),
#"Column1.conteudo.conta_receber_cadastro.categorias Expandido1" = Table.ExpandRecordColumn(#"Column1.conteudo.conta_receber_cadastro.categorias Expandido", "Column1.conteudo.conta_receber_cadastro.categorias", {"codigo_categoria", "percentual", "valor"}, {"Column1.conteudo.conta_receber_cadastro.categorias.codigo_categoria", "Column1.conteudo.conta_receber_cadastro.categorias.percentual", "Column1.conteudo.conta_receber_cadastro.categorias.valor"}),
#"Column1.conteudo.conta_receber_cadastro.distribuicao Expandido" = Table.ExpandListColumn(#"Column1.conteudo.conta_receber_cadastro.categorias Expandido1", "Column1.conteudo.conta_receber_cadastro.distribuicao")
in #"Column1.conteudo.conta_receber_cadastro.distribuicao Expandido"
4) E pronto! O sistema irá trazer todos os registros de todas as páginas em uma tabela no Power BI! 😉