Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice


       

Índice
exclude.*ndice
printablefalse

Objetivo


       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 integrarem 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 ao precisar acessar suas informações por meio de relatórios.

ABaixo demonstramos dois cenários de uso dessa integração:

  • No primeiro modelo iremos demonstrar com o fluxo onde é solicitado a geração de um relatório para o sistema. As premissas a serem seguidas são: É preciso pesquisar o relatorio a ser gerado, posteriormente aplicaremos um filtro nessa busca de relatórios.

busca de relatório 

A busca é utilizada para encontrar o relatório desejado, sendo possível buscar aqueles que o usuário tem permissão de acesso, sejam eles criados pelo próprio usuário, compartilhados via pasta ou via compartilhamento único. Assim como é feito na interface, a busca já pode ser realizada ao enviar no mínimo 3 caracteres para pesquisa, todos os relatórios que tiverem esses caracteres em comum serão retornados.

Para detalhes procure pelo endpoint abaixo:

O retorno apresentado lista os relatórios do sistema.

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
    }
]


Para seguirmos o fluxo apresentado iremos utilizar o relatório de ID: a4127383-3229-420f-bd47-c795c2af5ebd.


busca de parâmetros 

É importante lembra que um relatório pode conter parâmetros para sua geração, caso não tenha domínio dessa informação basta consultar o endpoint  "Busca de Parâmetro"

 

O endpoint irá retornar os parâmetros necessários para solicitação do relatório. Iremos utilizar o campo "Nome" do parâmetro associado o tipo de valor exigido pelo mesmo.

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
    }
]


Gerando um Relatório

Neste momento temos o id do relatório e o name do parâmetros necessários para geração (pCodEscr, pCodFatura e pNomeSocio). Podemos perceber que o parâmetro "pCodEscr" é multi valorado (multiValue: true), isso significa que o parâmetro recebe uma lista de valores.

Para solicitar a geração utilizamos o endpoint abaixo:

Nesta requisição, como mencionado anteriormente, utilizaremos todos os dados reunidos até o momento. Cada solicitação é exclusiva de acordo com os parâmetros necessários, neste caso apresentamos a forma em que os parâmetros serão enviados no corpo (body) da requisição conforme o cenário apresentado.

Bloco de código
{
  "pCodEscr": ["SP001", "SP001"],
  "pCodFatura": "000000180",
  "pNomeSocio": "Fulano de Tal"
}


O retorno dessa requisição é o ID de geração que nós guiara na proxima etapa.

Bloco de código
themeRDark
titleResponde Body
"3b845650-3972-49ae-9b5c-32f02423782b"


Download do Relatório gerado

O download nada mais é do que uma forma de salvar o relatório gerado localmente em um formato especifico desejado, para fazer o download será preciso informar o ID da geração do relatório e o formato para download desejado.

GET: /api​/reports​/v1​/generated​/{id-da-geração}​/{formato}

  • Formatos disponíveis: PDF, XLS, XLSX, RTF, DOCX, MHT, HTML, TXT, CSV, JPEG e PNG.

Ao fim da requisição será possível visualizar o relatório no formato escolhido e fazer o seu download.








As APIs publicas estão disponíveis em qualquer instalação do TReports e suas operações estão documentadas via Swagger.

Informações

Documentação no swagger: Api publica para integração;

Para realizar testes é necessário o uso de alguma aplicação que simule requisições http


Geração de relatório para download 


Tendo um relatório previamente cadastrado é possível fazer sua busca pelo sistema, ela pode ser feita pelo seu id, nome ou descrição do relatório ou pela pasta que ele pertence, sendo necessário apenas especificar corretamente qual tipo da busca desejada conforme mostra na documentação, também é possível fazer a procura dos parâmetros do relatório, parâmetros esses que serão necessários atribuir valor no momento da geração para se concluir com sucesso, feito isso, o download desse relatório ficará disponibilizado em diversos formatos no tempo que foi especificado.

Geração de relatório via visualizador


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 geração do mesmo, sendo assim, é preciso utilizar o hyperlinkque monta os links disponíveis para integração com visualizador, definindo qual a rota será utilizada e nela, a geraçãodo relatório, que é indicado pelo seu ID na rota, é mostrado na interface do TReports, com essa interface, além definir os parâmetrosque são necessários para fazer essa geração, é possível visualizar o relatório e fazer o seu download.

Verificação de disponibilidade


 A requisição de Issuer é utilizada para fazer a verificação de disponibilidade da segurança através do produto. Com isso o produto pode validar se o TReports utilizado está devidamente configurado para receber as requisições que serão feitas.

GET: /api/security/v1/issuers

  • O retorno dessa requisição é o provider utilizado e o Issuer.

Buscando um Relatório existente


A busca é utilizada para encontrar o relatório desejado, sendo possível buscar aqueles que o usuário tem permissão de acesso, sejam eles criados pelo próprio usuário, compartilhados via pasta ou via compartilhamento único. Assim como é feito na interface, a busca já pode ser realizada ao enviar no mínimo 3 caracteres para pesquisa, todos os relatórios que tiverem esses caracteres em comum serão retornados.

GET: /api/reports/v1/resources

  • O filtro de relatórios é passado dessa forma ao final da URL:
    ?q={nome-do-Relatorio}

  • O filtro de Pastas é passado dessa forma ao final da URL:
    ?NavigationFolderId={ID-da-Pasta}

    Informações

    O filtro funciona assim como a própria busca via interface, ou seja, digitando no mínimo 3 caracteres já é possível buscar o nome de relatórios baseados naquilo que foi escrito. 

    A resposta dessa chamada retornará um código HTTP 200 e o ID do(s) relatório(s) pesquisado(s), o displayName que é o nome de criação, a description e o navigationFolderId que informa se aquele relatório pertence a alguma pasta, se pertencer é mostrado o ID da pasta, se não, é mostrado 'Null'.

    Exemplo de Resposta:

    Bloco de código
    themeRDark
    titleResponde Body
    linenumberstrue
    [
        {
            "id": "1aa11111-1aa1-1aaa-1a1a-aa1aa1a11a11",
            "displayName": "Relatorio",
            "description": "Relatório utilizado para exemplificar",
            "navigationFolderId": 1
        }
    ]

Buscando parâmetros cadastrados


Nessa requisição é possivel visualizar os parâmetros necessários para a execução de um relatório.

OPTIONS: /api/reports/v1/resources/{id-do-relatório}/generate

O retorno informa o name do parâmetro, que nada mais é do que o nome dado ao parâmetro, displayName que é a descrição, type que indica o tipo do parâmetro (string, number, alfanumerico e etc...) e se ele é multiValue, ou seja, se ele possui mais de um valor ou não.

Exemplo de resposta:

Bloco de código
themeRDark
titleResponde Body
[
  {
    "name": "parametro",
    "displayName": "parametro",
    "type": "string",
    "multiValue": true
  }
]

Gerando um Relatório


Para fazer a geração é necessário informar o ID do Relatório, o tempo que a geração ficara disponível para consultas e seu parâmetro, caso já tenha sido previamente cadastrado.

POST: /api/reports/v1/resources/{id-do-relatório}/generate?ttl=1440

  • O 'generate?ttl=' é o tempo em minutos em que o documento gerado ficará disponível, vindo por padrão o valor 1440 e sendo o mínimo aceitável 1 minuto. 
  • Caso o relatório possua parâmetros cadastrados é necessário informar no body da requisição:

    Bloco de código
    themeEclipse
    titleBody
    {
      "nome-do-parâmetro":"valor-desejado-do-parâmetro"
    }


    O retorno dessa requisição é um código HTTP 200 e informa o ID de geração que será utilizado para fazer o download do relatório desejado.

    Exemplo de resposta:

    Bloco de código
    themeRDark
    titleResponde Body
    "3b845650-3972-49ae-9b5c-32f02423782b"

Download do Relatório gerado


O download nada mais é do que uma forma de salvar o relatório gerado localmente em um formato especifico desejado, para fazer o download será preciso informar o ID da geração do relatório e o formato para download desejado.

GET: /api​/reports​/v1​/generated​/{id-da-geração}​/{formato}

  • Formatos disponíveis: PDF, XLS, XLSX, RTF, DOCX, MHT, HTML, TXT, CSV, JPEG e PNG.

Ao fim da requisição será possível visualizar o relatório no formato escolhido e fazer o seu download.

Hyperlinks para integração com o visualizador


O Hyperlink permite que o produto integrador tenha acesso a um template de rota para acesso ao visualizador de um relatório sem utilizar o sistema como um todo.

 GET: /api/reports/v1/hyperlinks

  • A resposta é preenchida com as informações do relatório desejado e com as informações retiradas do token.


    Exemplo de resposta:

    Bloco de código
    themeRDark
    titleResponde Body
    linenumberstrue
    {
        "viewer": "http://localhost:7017/reportsV2/myreports/document-view/{reportId}?access_token={accessToken}&refresh_token={refreshToken}&scope={scope}&token_type={tokenType}&expires_in={expiresIn}&hidemenus=true"
    }
    
    

    Os parâmetros do template podem ser inseridos de acordo com a necessidade do produto, sendo preenchido via QueryString, dessa forma, as URLs retornadas no hyperlink já virão com os parâmetros preenchidos de acordo com as informações colocadas.

    Exemplo de URL enviando QueryString:

    Bloco de código
    http://localhost:7017/api/reports/v1/hyperlinks?reportId={ID DO RELATORIO}&accessToken={MEU TOKEN}&refreshToken={MEU REFRESH TOKEN}&scope=default&tokenType=bearer&expiresIn={TEMPO DE EXPIRAÇÃO}