Ir para conteúdo
  • 0

Conectar API omie


Beatriz Oliveira

Pergunta

  • Alunos

Boa tarde pessoa! Tudo bem?

Tenho esse código para integrar a API do omie (com paginação reformulada, fazendo um looping, analisando todas as páginas), mas ele não funciona. Acredito que seja pelas várias funções, mas não consigo integrar elas em um único escopo.

Se alguém puder me ajudar, eu agradeço. Deixo o código abaixo.

 

* CÓDIGO:

(page as number) =>
    let
        Body = Json.FromValue(
            [
                call = "ListarContasReceber", 
                app_key = #"app_key", 
                app_secret = #"app_secret",
                param = 
                    [
                        "pagina" = page,
                        "apenas_importado_api" = "N",
                        "filtrar_por_registro_de" = "01/01/2023",
                        "filtrar_por_registro_ate" = "30/09/2023"
                    ]
            ]
        )
    in
        Body

(page as number) =>
    let
        Request = 
            Json.Document(
                Web.Contents(
                    "https://app.omie.com.br", 
                    [
                        RelativePath = "api/v1/financas/contareceber/", 
                        Headers = [#"Content-Type" = "application/json"], 
                        Content = Body(page)
                    ]
                )
            )
    in
        Request

() => [#"Content-Type" = "application/json"]

() =>
    let
        totalPages = Request(1)[total_de_paginas], // Buscando o total de páginas
        listaDePaginas = List.Generate(
            () => [page = 1, date = Request(1)],
            each [page] <= totalPages,
            each [page = [page] + 1, date = Request([page] + 1)]
        )
    in
        listaDePaginas

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos

Bom dia, @Beatriz Oliveira

você criou outra função anônima que tenta gerar uma lista de páginas. No entanto, há um problema aqui, não está claro de onde vem o valor Request(1), pois Request é uma função anônima que requer um argumento page.
Você está tentando chamar Request([page] + 1), mas page não está definido neste escopo e não está claro de onde ele deveria vir.

Para corrigir isso, você deve reestruturar seu código, conforme a sugestão abaixo, para que as funções tenham acesso aos dados necessários para funcionar corretamente. 

 

* CÓDIGO:

(page as number) =>

let
    // Define uma função para fazer a solicitação à API
    GetOmieData = (page as number) =>
        let
            Body = Json.FromValue(
                [
                    call = "ListarContasReceber", 
                    app_key = #"app_key", 
                    app_secret = #"app_secret",
                    param = 
                        [
                            "pagina" = page,
                            "apenas_importado_api" = "N",
                            "filtrar_por_registro_de" = "01/01/2023",
                            "filtrar_por_registro_ate" = "30/09/2023"
                        ]
                ]
            ),
            Request = 
                Json.Document(
                    Web.Contents(
                        "https://app.omie.com.br/api/v1/financas/contareceber/", 
                        [
                            RelativePath = "",
                            Headers = [#"Content-Type" = "application/json"], 
                            Content = Body
                        ]
                    )
                )
        in
            Request,

    // Define uma função para obter o total de páginas
    GetTotalPages = () =>
        let
            Request = GetOmieData(1),
            totalPages = Request[total_de_paginas]
        in
            totalPages,

    // Define uma função para gerar uma lista de páginas
    GeneratePageList = () =>
        let
            totalPages = GetTotalPages(),
            listaDePaginas = List.Generate(
                () => [page = 1, data = GetOmieData(1)],
                each [page] <= totalPages,
                each [page = [page] + 1, data = GetOmieData([page] + 1)]
            )
        in
            listaDePaginas
in
    GeneratePageList()



 

Veja se te atende estas sugestões...
 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 01/11/2023 em 09:37, Emerson Alencar disse:

Bom dia, @Beatriz Oliveira

você criou outra função anônima que tenta gerar uma lista de páginas. No entanto, há um problema aqui, não está claro de onde vem o valor Request(1), pois Request é uma função anônima que requer um argumento page.
Você está tentando chamar Request([page] + 1), mas page não está definido neste escopo e não está claro de onde ele deveria vir.

Para corrigir isso, você deve reestruturar seu código, conforme a sugestão abaixo, para que as funções tenham acesso aos dados necessários para funcionar corretamente. 

 

* CÓDIGO:

(page as number) =>

let
    // Define uma função para fazer a solicitação à API
    GetOmieData = (page as number) =>
        let
            Body = Json.FromValue(
                [
                    call = "ListarContasReceber", 
                    app_key = #"app_key", 
                    app_secret = #"app_secret",
                    param = 
                        [
                            "pagina" = page,
                            "apenas_importado_api" = "N",
                            "filtrar_por_registro_de" = "01/01/2023",
                            "filtrar_por_registro_ate" = "30/09/2023"
                        ]
                ]
            ),
            Request = 
                Json.Document(
                    Web.Contents(
                        "https://app.omie.com.br/api/v1/financas/contareceber/", 
                        [
                            RelativePath = "",
                            Headers = [#"Content-Type" = "application/json"], 
                            Content = Body
                        ]
                    )
                )
        in
            Request,

    // Define uma função para obter o total de páginas
    GetTotalPages = () =>
        let
            Request = GetOmieData(1),
            totalPages = Request[total_de_paginas]
        in
            totalPages,

    // Define uma função para gerar uma lista de páginas
    GeneratePageList = () =>
        let
            totalPages = GetTotalPages(),
            listaDePaginas = List.Generate(
                () => [page = 1, data = GetOmieData(1)],
                each [page] <= totalPages,
                each [page = [page] + 1, data = GetOmieData([page] + 1)]
            )
        in
            listaDePaginas
in
    GeneratePageList()



 

Veja se te atende estas sugestões...
 

Bom dia @Emerson Alencar! O identificador página não está sendo reconhecido.

knkjb.PNG

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...