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
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.
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".
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 & "®ime=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®ime=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:
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"
Após isso selecione o ícone de expansão conforme a imagem abaixo e clique em Ok.
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.