1
resposta

Power BI utilizando como base o OMIE

Ola tudo bem?

Não sei se alguém poderia me ajudar, minha empresa contratou o sistema Omie a pouco tempo e estou buscando montar alguns dash's no Power BI para me auxiliar no controle da área. O próprio OMIE demonstra como realizar a integração, porém ele esta limitando a quantidade de linha a serem mostradas. Já fiz alterações, porém ele ainda este limitando.

Segue abaixo o passo a passo que o sistema mostra para realizar a integração, e o query que é utilizada:

Site: https://ajuda.omie.com.br/pt-BR/articles/5412740-configurando-o-power-bi

Já alterei a linha abaixo para 10000, mais ele limita para 50

""param"":[ { ""pagina"": 1, ""registros_por_pagina"": 20, ""apenas_importado_api"": ""N"" } ]

Query:

#let
       body =  "{
                        ""call"":""ListarClientes"",
                        ""app_key"":""2555995110669"",
                        ""app_secret"":""74e2fdd59ac709c4201fe625d07e2f8b "",
                        ""param"":[
                                    {
                                      ""pagina"": 1,
                                      ""registros_por_pagina"": 20,
                                      ""apenas_importado_api"": ""N""
                                    }
                                  ]
                    }",
       Data=Json.Document(Web.Contents(
                "https://app.omie.com.br/api/v1/geral/clientes/", [
                          Headers=[#"Content-Type"="application/json"],
                          Content=Text.ToBinary(body)
                      ])),
        #"Convertido para Tabela" = Record.ToTable(Data),
        #"Linhas Filtradas" = Table.SelectRows(#"Convertido para Tabela", each ([Name] = "clientes_cadastro")),
        #"Colunas Removidas" = Table.RemoveColumns(#"Linhas Filtradas",{"Name"}),
        #"Value Expandido" = Table.ExpandListColumn(#"Colunas Removidas", "Value"),
        #"Value Expandido1" = Table.ExpandRecordColumn(#"Value Expandido", "Value", {"bairro", "bloquear_faturamento", "cep", "cidade", "cidade_ibge", "cnpj_cpf", "codigo_cliente_integracao", "codigo_cliente_omie", "codigo_pais", "complemento", "dadosBancarios", "email", "endereco", "enderecoEntrega", "endereco_numero", "estado", "exterior", "inativo", "info", "inscricao_estadual", "inscricao_municipal", "nome_fantasia", "optante_simples_nacional", "pessoa_fisica", "produtor_rural", "razao_social", "recomendacoes", "tags", "bloquear_exclusao", "telefone1_ddd", "telefone1_numero"}, {"bairro", "bloquear_faturamento", "cep", "cidade", "cidade_ibge", "cnpj_cpf", "codigo_cliente_integracao", "codigo_cliente_omie", "codigo_pais", "complemento", "dadosBancarios", "email", "endereco", "enderecoEntrega", "endereco_numero", "estado", "exterior", "inativo", "info", "inscricao_estadual", "inscricao_municipal", "nome_fantasia", "optante_simples_nacional", "pessoa_fisica", "produtor_rural", "razao_social", "recomendacoes", "tags", "bloquear_exclusao", "telefone1_ddd", "telefone1_numero"}),
        #"dadosBancarios Expandido" = Table.ExpandRecordColumn(#"Value Expandido1", "dadosBancarios", {"agencia", "codigo_banco", "conta_corrente", "doc_titular", "nome_titular", "transf_padrao"}, {"agencia", "codigo_banco", "conta_corrente", "doc_titular", "nome_titular", "transf_padrao"}),
        #"info Expandido" = Table.ExpandRecordColumn(#"dadosBancarios Expandido", "info", {"cImpAPI", "dAlt", "dInc", "hAlt", "hInc", "uAlt", "uInc"}, {"cImpAPI", "dAlt", "dInc", "hAlt", "hInc", "uAlt", "uInc"}),
        #"recomendacoes Expandido" = Table.ExpandRecordColumn(#"info Expandido", "recomendacoes", {"codigo_transportadora", "codigo_vendedor", "email_fatura", "gerar_boletos"}, {"codigo_transportadora", "codigo_vendedor", "email_fatura", "gerar_boletos"}),
        #"tags Expandido" = Table.ExpandListColumn(#"recomendacoes Expandido", "tags"),
        #"tags Expandido1" = Table.ExpandRecordColumn(#"tags Expandido", "tags", {"tag"}, {"tag"})
    in #"tags Expandido1"
1 resposta

Olá, Tadeu! Tudo bem com você? Espero que sim!

Peço perdão pela demora em responder o seu tópico.

No corpo da sua solicitação à API, você mencionou que já alterou o valor de "registros_por_pagina" para 10000, mas ainda está limitado a 50. Isso pode ser devido a uma limitação imposta pela própria API do Omie, que pode ter um número máximo de registros que podem ser retornados por solicitação.

Uma solução possível seria implementar uma lógica de paginação em sua consulta. Basicamente, você faria várias solicitações à API, cada uma retornando uma "página" diferente de registros. Por exemplo, você poderia fazer uma solicitação para a página 1, outra para a página 2, e assim por diante, até ter todos os dados necessários.

No seu caso, você poderia alterar o valor de "pagina" para 2, 3, 4, etc., em solicitações subsequentes, mantendo o valor de "registros_por_pagina" como 50 (ou o máximo permitido pela API do Omie).

Infelizmente, não posso garantir que essa solução funcionará perfeitamente, pois depende de como a API do Omie foi projetada. Mas é uma prática comum em APIs que limitam o número de registros retornados por solicitação.

Espero ter ajudado e caso tenha restado dúvidas a cerca de algo sobre o tópico, estarei à disposição para ajudá-lo.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.