Índice | ||||
---|---|---|---|---|
|
O TReports conta com sua interface para listar, buscar, gerar e fazer o download dos relatórios produzidos, agora com a introdução às APIs de Integração, será possível que os produtos que precisarem se integrar com o sistema tenham novas formas de executar relatórios dentro do produto, tendo acesso a um visualizador e/ou ao relatório gerado em diversos formatos. Promovendo uma nova e melhor experiência para o usuário da linha de produto que precisar acessar suas informações por meio de relatórios.
A baixo demonstraremos dois modelos de uso da integração, onde o primeiro direciona para o download de um arquivo e o segundo para utilização do viewer externo.
Neste modelo iremos demonstrar com o fluxo onde é solicitado a geração de um relatório para o sistema.
É apresentado um cenário em que o relatório já esteja previamente cadastrado, e para prosseguirmos com o fluxo é necessário que tenhamos a informação do identificador do relatório.
Iniciaremos o fluxo buscando pelo identificador do relatório (id) na api de busca de relatório onde seguiremos nas etapas de busca de parâmetros, solicitação de geração finalizando na api de download do arquivo gerado.
A "busca de relatório" é uma api que retorna os relatórios cadastrados no sistema, é possível buscar apenas os relatórios em que o usuário tem permissão de acesso, sejam eles de sua própria criação, compartilhados via pasta ou compartilhamento único. Assim como na interface do sistema, a busca possui a funcionalidade de filtro onde é necessário enviar no mínimo 3 caracteres para pesquisa, dessa forma, os relatórios que tiverem esses caracteres em comum serão retornados.
Detalhes da implementação são encontrados no endpoint abaixo:
Abaixo temos um exemplo da lista de relatórios retornados pela api, utilizaremos o relatório com id: a4127383-3229-420f-bd47-c795c2af5ebd como exemplo para dar continuidade em nosso fluxo de uso na próxima etapa.
Bloco de código | ||||
---|---|---|---|---|
| ||||
[ { "id": "a4127383-3229-420f-bd47-c795c2af5ebd", "displayName": "Recibo de Fatura (JU203b) ", "description": "Recibo de Fatura (JU203b) - Grupo de Estudos", "navigationFolderId": 1 }, { "id": "cd767d3f-ec71-4c1a-8143-c6645dd8f63c", "displayName": "Recibo de Fatura\"", "description": "Recibo de Fatura\"", "navigationFolderId": null }, { "id": "e30288af-6989-4a30-9792-3c7f5735db56", "displayName": "Relatorio sem fitro de casos", "description": null, "navigationFolderId": null } ] |
É importante lembrar que um relatório pode conter parâmetros para sua geração, caso não tenha conhecimento da existência de parâmetros para o relatório selecionado, basta consultar a api abaixo.
A "busca de parâmetros" lista todos os parâmetros necessários para que o relatório posso ser executado, utilizaremos o valor do campo "name" de cada parâmetro para a próxima etapa.
Bloco de código | ||
---|---|---|
| ||
[ { "name": "pCodEscr", "displayName": "Código do Escritório", "type": "string", "multiValue": true }, { "name": "pCodFatura", "displayName": "Código da Fatura", "type": "string", "multiValue": false }, { "name": "pNomeSocio", "displayName": "Nome do Sócio da Fatura", "type": "string", "multiValue": false } ] |
O endpoint "Solicitar Geração de um Arquivo" é uma api utilizada para solicitar a geração de um arquivo para o relatório escolhido, desde o início do fluxo coletamos informações importantes para utilização deste endpoint. Utilizaremos o identificador do relatório id: a4127383-3229-420f-bd47-c795c2af5ebd e o valor da propriedade "name" de cada parâmetro necessário para geração "pCodEscr", "pCodFatura" e "pNomeSocio".
É importante destacar que alguns parâmetros podem ser do tipo Multivalorado, ou seja, podem receber mais de um valor. Este tipo de parâmetro é reconhecido quando sua propriedade "multiValue" está definida como "true".
No caso do exemplo, é possível perceber que o parâmetro "pCodEscr" é multi valorado "multiValue: true", ou seja, o parâmetro recebe uma lista de valores.
Detalhes da implementação são encontrados no endpoint abaixo:
Cada solicitação é exclusiva de acordo com os parâmetros necessários, neste caso serão enviados no corpo da requisição "body" os parâmetros e seus respectivos valores conforme abaixo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "pCodEscr": ["SP001", "SP001"], "pCodFatura": "000000180", "pNomeSocio": "Isabelle Silva" } |
Caso a requisição seja feita corretamente, será apresentado como retorno o identificador de geração "generationId" que utilizaremos na proxima etapa.
Bloco de código | ||||
---|---|---|---|---|
| ||||
"3b845650-3972-49ae-9b5c-32f02423782b" |
Em nossa última etapa do fluxo utilizaremos o identificador da geração "3b845650-3972-49ae-9b5c-32f02423782b" da etapa anterior para requerer o download do arquivo.
Detalhes da implementação são encontrados no endpoint abaixo:
Este endpoint define o formato em que o arquivo será retornado. Os formatos disponíveis para download são:
Formato | Descrição |
---|---|
Portable Document Format | |
XLS | Excel até 2012 |
XLSX | Excel a partir de 2010 |
RFT | Rich Text Format |
DOCX | Documento de processamento de texto |
MHT | Armazenamento de um arquivo de página da web |
HTML | Linguagem de Marcação de Hipertexto |
TXT | Arquivo de Texto |
CSV | Comma-Separated-Values |
JPEG | Arquivo de imagem comprimido |
PNG | Portable Network Graphics |
Nota |
---|
Podem acontecer situações em que o relatório solicitado ainda não tenha sido gerado, sendo assim, a retornará um erro de 'não encontrado'. Basta refazer a requisição até que o arquivo seja disponibilizado. |
CONTINUAR COM MODELO DE EXPLICAÇÃO E FORMATAÇÃO A PARTIR DAQUI
Depois que o cadastro de um relatório foi feito, para que ele seja disparado em alguma extensão do produto é preciso fazer a integração para ativar a geração do mesmo, sendo assim, é preciso utilizar o hyperlink que monta os links disponíveis para integração com visualizador.
O endpoint que utilizaremos para esse fluxo:
Para utilizar essa requisição vamos precisar de um ID de um relatório existente: e6d724bd-8505-4702-9fa8-a2672c3b9c94
Os demais parâmetros podem ser informados por meio de QueryString ou diretamente na URL retornada.
Exemplo de URL pronta:
Bloco de código |
---|
http://localhost:7017/reportsV2/myreports/document-view/e6d724bd-8505-4702-9fa8-a2672c3b9c94?access_token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InBKd3RQdWJsaWNLZXlGb3IyNTYifQ.eyJpc3MiOiJUT1RWUy1BRFZQTC1GV0pXVCIsInN1YiI6IkFkbWluaXN0cmFkb3IiLCJpYXQiOjE2NDMyOTExMDAsInVzZXJpZCI6IjAwMDAwMCIsImV4cCI6MTY0MzI5NDcwMCwiZW52SWQiOiJFTUFURVIifQ.dixgHfk_lQs0hgK_L-rn4iEw5n2ohOI-WLGSQxv8w_3FzJk4raExheqzkyRvAhl7dZ73nlrha2FfCoVAeticsu9wz-Eg81-snRQnZoQdV9-ogOb0j_pIH2FYAx3cnIOZmYNCpDdJuWFnsZjZ3BpxB2Acee8cna9y4tEpKMuPLjswBn5TMz68N5-gSn2MIYx--HmH1sFx6BqkZNa8URJKmAsuBzcPFNOzgUkyGEYfG2PaFJ583lBi8_9sIWAiusuDmX1mKle3s72T8yrGGDNPS01Q_PTunR4tJ6QDZUy361fhYabhMm0twN_Wt0FmMvyRCUbeExDzMelx6pV9GIzKhQ&refresh_token=gQJam9xwxyHm8SCysuAb_TZe.nQFR3_Bdv2LLuCe8pvZ0tgl3_sPSLVWwKXsMPCKH7GdRAruVsM-I8ZTyczYugcYP5Yb8hlycFKXzfaButyF1FZO3_poac04lEfdNMbN6vfBlw_svjX-sn1jgDerD4Bi9M8SMSX9r6TWLLCfxIyyk6t_uBbDersqYGlr-A_Ity4EJpTAd2TG1AUzqFMi_H_stVmfWfgEP.OUZKAm0xRSNey0_6bMubPodgVjKpmb7FHgKHoizXPM8tuCvOTrl4oJwGg28jsFOa5S8fpCNEPGxIxOKSMMfH4MJgX1wSRTbwB7VfO17h4RKkPnSTlH9x3ojohIKJs0s2iddOVjMxwtxwqbqmZic62mV_sYjPC9ZeR9xWX7NdnIAmxIIFLuhBDguydHe3CfBcDGL9ORzibWiyG1XsVF6s8G0sZdfd2ahoopzhULjgbvp5T57JTzf7wrzSUyS4nFS6lecGb5jVkXr79enzxEJUSkUryX3x9NO6dKxzhQjrLbHkn0msDcnC0gygw5DV3TI1qVqZp8WmPojtJmb3CNScpA&scope=default&token_type=Bearer&expires_in=3600&hidemenus=true |
Com a URL configurada vamos acessar um browser para visualização da mesma, é apresentado o relatório informado e após a conclusão da geração podem ser utilizados os recursos da inteface para fazer, por exemplo, o download do relatório.
Informações | ||
---|---|---|
| ||
|