Ir para conteúdo
  • 0

API Granatum - Atualização automática indisponível no BI Serviços.


André Linhares

Pergunta

  • Membros

Boa tarde a todos!!!

Alguém já fez integração com o site granatum.com.br e conseguiu funcionar a atualização automática?

Consigo atualizar via desktop, mas online não funciona. Tentei utilizar o relativepath, porém sem sucesso.

O código que consta no editor avançado é o seguinte:

let
 getData = (token as text, data_inicio as date, data_fim as date) => 
 let 
 tmp = Json.Document(Web.Contents("https://api.granatum.com.br", [ReltivePath ="/v1/lancamentos"] & "?access_token=" & token & "&regime=caixa&conta_id=all" & "&tipo_view=count" & "&data_inicio=" & Date.ToText(data_inicio, "yyyy-MM-dd") & "&data_fim=" & Date.ToText(data_fim, "yyyy-MM-dd"), [Headers=[#"Content-Type"="application/x-www-form-urlencoded"]])),
 total = tmp[0],
 start = List.Generate(() => 0, each _ < Number.RoundUp(total/100 * 100), each _ +100),
 pages = List.Union(List.Transform(start, each getApiPaginated(_, token, data_inicio, data_fim)))
 in 
 pages,

getApiPaginated = (page, token as text, data_inicio as date, data_fim as date) =>
 let
 query = Web.Contents("https://api.granatum.com.br/v1/lancamentos" & "?access_token=" & token & "&start=" & Number.ToText(page) & "&limit=100" & "&regime=caixa&conta_id=all" & "&data_inicio=" & Date.ToText(data_inicio, "yyyy-MM-dd") & "&data_fim=" & Date.ToText(data_fim, "yyyy-MM-dd"), [Headers=[#"Content-Type"="application/x-www-form-urlencoded"]]),
 result = Json.Document(query)
 in
 result
in
 getData

 

-

Ele me retorna com o seguinte erro:

Erro na consulta ‘Consulta1’. Expression.Error: Não conseguimos aplicar o operador & aos tipos Record e Text.
Detalhes:
    Operator=&
    Left=
        ReltivePath=/v1/lancamentos
    Right=?access_token=

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 1
  • Membros

Deu certo, @Rafa Lemos!!!

Muito obrigado, de verdade!!

Segue como ficou para dar certo:
let
  getData = (token as text, data_inicio as date, data_fim as date) =>
    let
      tmp = Json.Document(
    Web.Contents(
        "https://api.granatum.com.br",
            [
                RelativePath = "/v1/lancamentos",
                Query = [
                    access_token= token,
                    regime = "caixa",
                    conta_id = "all",
                    tipo_view= "count",
                    data_inicio = Date.ToText(data_inicio, "yyyy-MM-dd"),
                    data_fim = Date.ToText(data_fim, "yyyy-MM-dd")
                        ],
                Headers=
                    [
                    #"Content-Type"="application/x-www-form-urlencoded"
                    ]
                ]
            )
        ), 
      total = tmp[0], 
      start = List.Generate(() => 0, each _ < Number.RoundUp(total / 100 * 100), each _ + 100), 
      pages = List.Union(
        List.Transform(start, each getApiPaginated(_, token, data_inicio, data_fim))
      )
    in
      pages, 
  getApiPaginated = (page, token as text, data_inicio as date, data_fim as date) =>
    let
      query = Web.Contents(
        "https://api.granatum.com.br" , [RelativePath = "/v1/lancamentos"
          & "?access_token="
          & token
          & "&start="
          & Number.ToText(page)
          & "&limit=100"
          & "&regime=caixa&conta_id=all"
          & "&data_inicio="
          & Date.ToText(data_inicio, "yyyy-MM-dd")
          & "&data_fim="
          & Date.ToText(data_fim, "yyyy-MM-dd"), 
        Headers = [#"Content-Type" = "application/x-www-form-urlencoded"]]
      ), 
      result = Json.Document(query)
    in
      result
in
  getData

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

Código original sem relativepath:

let
 getData = (token as text, data_inicio as date, data_fim as date) => 
 let 
 tmp = Json.Document(Web.Contents("https://api.granatum.com.br/v1/lancamentos" & "?access_token=" & token & "&regime=caixa&conta_id=all" & "&tipo_view=count" & "&data_inicio=" & Date.ToText(data_inicio, "yyyy-MM-dd") & "&data_fim=" & Date.ToText(data_fim, "yyyy-MM-dd"), [Headers=[#"Content-Type"="application/x-www-form-urlencoded"]])),
 total = tmp[0],
 start = List.Generate(() => 0, each _ < Number.RoundUp(total/100 * 100), each _ +100),
 pages = List.Union(List.Transform(start, each getApiPaginated(_, token, data_inicio, data_fim)))
 in 
 pages,

getApiPaginated = (page, token as text, data_inicio as date, data_fim as date) =>
 let
 query = Web.Contents("https://api.granatum.com.br/v1/lancamentos" & "?access_token=" & token & "&start=" & Number.ToText(page) & "&limit=100" & "&regime=caixa&conta_id=all" & "&data_inicio=" & Date.ToText(data_inicio, "yyyy-MM-dd") & "&data_fim=" & Date.ToText(data_fim, "yyyy-MM-dd"), [Headers=[#"Content-Type"="application/x-www-form-urlencoded"]]),
 result = Json.Document(query)
 in
 result
in
 getData

Neste modo ele não gera nenhum erro, porém a atualização automática do BI Service não está disponível.

Editado por André Linhares
Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

@André Linhares boa tarde!

Você precisa informar o RelativePath para "ativar" a atualização no Serviços.

Seria algo assim:

Json.Document(
	Web.Contents(
		"https://api.granatum.com.br",
			[
				RelativePath = "/v1/lancamentos",
				Query = [
					access_token= token,
					regime = caixa
					conta_id = all,
					tipo_view= count,
					data_inicio = Date.ToText(data_inicio, "yyyy-MM-dd"),
					data_fim = Date.ToText(data_fim, "yyyy-MM-dd")
					    ],
				Headers=
					[
					#"Content-Type"="application/x-www-form-urlencoded"
					]
				]
			)
		)

 

No meu canal do youtube youtube.rafalemos.com tem mais exemplos de como realizar esse processo.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

@Rafa Lemos
Segue o código como ele ficou: 

let
  getData = (token as text, data_inicio as date, data_fim as date) =>
    let
      tmp = Json.Document(
    Web.Contents(
        "https://api.granatum.com.br",
            [
                RelativePath = "/v1/lancamentos",
                Query = [
                    access_token= token,
                    regime = "caixa",
                    conta_id = "all",
                    tipo_view= "count",
                    data_inicio = Date.ToText(data_inicio, "yyyy-MM-dd"),
                    data_fim = Date.ToText(data_fim, "yyyy-MM-dd")
                        ],
                Headers=
                    [
                    #"Content-Type"="application/x-www-form-urlencoded"
                    ]
                ]
            )
        ), 
      total = tmp[0], 
      start = List.Generate(() => 0, each _ < Number.RoundUp(total / 100 * 100), each _ + 100), 
      pages = List.Union(
        List.Transform(start, each getApiPaginated(_, token, data_inicio, data_fim))
      )
    in
      pages, 
  getApiPaginated = (page, token as text, data_inicio as date, data_fim as date) =>
    let
      query = Web.Contents(
        "https://api.granatum.com.br/v1/lancamentos"
          & "?access_token="
          & token
          & "&start="
          & Number.ToText(page)
          & "&limit=100"
          & "&regime=caixa&conta_id=all"
          & "&data_inicio="
          & Date.ToText(data_inicio, "yyyy-MM-dd")
          & "&data_fim="
          & Date.ToText(data_fim, "yyyy-MM-dd"), 
        [Headers = [#"Content-Type" = "application/x-www-form-urlencoded"]]
      ), 
      result = Json.Document(query)
    in
      result
in
  getData


Agora no BI Serviços:
image.thumb.png.2c0ba207cd4f611303370f78003abbfc.png

Editado por André Linhares
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...