O Granatum fornece uma API pública para ser utilizada nas mais diversas integrações que o cliente necessite. Uma delas é o Microsoft PowerBI, e neste artigo daremos um exemplo de como fazer uma integração entre as duas plataformas.

Nesse exemplo iremos mostrar como buscar a lista de lançamentos buscando entre duas datas e transformando em uma tabela do PowerBI.

Antes de mais nada será necessário que você possua o token de autenticação da API do Granatum, você pode ver como obtê-lo em: https://www.granatum.com.br/financeiro/api/#autenticacao


Ao abrir o seu PowerBI, selecione a opção "Transformar Dados", conforme a figura abaixo

mceclip1.png 

Ao selecionar essa opção uma nova janela será aberta, nela ao clicar em "Nova Fonte" -> "Consulta Nula", será criada uma nova consulta em branco.

mceclip2.png

 

Ao ser criada a nova consulta chegamos na parte em que feita a integração entre as duas plataformas, clique com o botão direito em cima da consulta e selecione a opção "Editor Avançado".

mceclip5.png


Será aberto na tela um editor de texto com algumas informações padrões, você pode apagar essas informações e substituir pelo trecho de código abaixo e clicar em concluído.

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" & "&tipo_view=detail&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

Dando tudo certo você verá a seguinte tela:

mceclip6.png


Nela você deve informar o token de integração da API, a data de inicio e fim dos lançamentos que você deseja filtrar e clicar no botão "Invocar".

Após isso, você receberá a listagem de acordo com os lançamentos que se encaixam na data desejada.

Clique com o botão direito em cima de "Lista" e selecione a opção "Para a Tabela" e depois clique em "Ok"

mceclip15.png


Após isso selecione o ícone de expansão conforme a imagem abaixo e clique em Ok.

mceclip16.png 

Fazendo isso você verá os dados sendo apresentados em forma de tabela.

A partir daí você já pode aplicar os dados no seu modelo e manipular da maneira que desejar.