Versões comparadas

Chave

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

Índice:


       

Índice
exclude.*ndice:

Objetivo:


       Realizar a integração de um Produto com o TReports e entender o fluxo da autenticação entre Produto X TReports X Provedor Integrado.

Definições Gerais:


       Para exemplificar a integração, será utilizado o projeto TReportsServerClient (https://github.com/totvs/treports-server-client)

       O TReports utiliza o Rac para gerenciamento dos usuários e permissões configurados por Tenant.

Recuperando Access Token:


       Para realizar a integração do produto com o TReports, é utilizado o Fluxo Resource Owner (password). Este fluxo necessita de um usuário e senha válidos no Tenant configurado para o TReports para que a autenticação seja realizada.

       Este usuário precisa conter a permissão de execução de relatório (ExecuteReport).

       POST
       Host: {Endereço do Rac}
       Content-type: application/x-www-form-urlenconded

       grant_type=password
       &username=exampleuser
       &password=1234luggage
       &client_id=xxxxxxxxxx
       &client_secret=xxxxxxxxxx

       Para mais informações: https://developer.okta.com/blog/2018/06/29/what-is-the-oauth2-password-grant

Autenticação Externa - Rac:


       O Tenant pode ser configurado para realizar a autenticação externa, onde a validação do usuário e senha serão realizadas em um endpoint do produto.

       Será realizado uma chamada no endpoint do Produto configurado no Tenant do Rac para que o usuário e senha sejam validados pelo Produto, em casso de sucesso, o Access Token é retornado para o Produto.

Executando um relatório:


       Com o Access Token gerado, ele deve ser enviado no Header Authorization em todas as requisições da Api do Reports.
       Ex. “Authorization: Bearer {access_token}”
       O fluxo de toda a execução pode ser visto abaixo:

       A seguinte chamada deve ser realizada na api do TReports:

              POST
              Authorization: Bearer {access_token}
              Host: {Endereço do TReports}/api/trep/v1/reports/{UidReports}/execute
              Content-type: application/json

              ... {Consultar o Swagger para obter lista completa de parâmetros}
              UserName: Nome do Usuário que será enviado ao Provedor Integrado para aplicação de segurança.


Informações
titleCustom Data

Foi criada uma propriedade no objeto "GenerateParams" chamada "CustomData". Trata-se de um propriedade do tipo string que receberá qualquer valor customizado a ser enviado na chamada do endpoint.

O valor incluído no enviado na propriedade "CustomData" será adicionado na propriedade "ProviderParams" lista de parâmetros do provedor (ProviderParams) que chegará em todos os endpoints definidos na API de "provedores integrados".

ExExemplo:

Usuários do Protheus poderão enviar o "grupo de empresas" nessa propriedade para ser utilizada em filtros localizados nos provedores integrados do Protheus,

       Esta requisição gera uma solicitação de execução do relatório, mas não o executa imediatamente. Ele será executado pelo jog do TReports. O retorno será um identificador único da requisição de execução (UidRequest)

       Para acompanhamento da execução do relatório, execute a seguinte chamada:

              GET
              Authorization: Bearer {access_token}
              Host: {Endereço do TReports}/api/trep/v1/Generateds/{uIdRequest}/info
              Content-type: application/json

              {Consultar o Swagger para obter lista completa de parâmetros}


       Nesta chamada será retornado o identificador da geração do relatório {id} e o status da execução {status} dentre outras informações. Caso o status seja finalizado, podemos realizar a chamada para obter o relatório gerado no formato desejado:

              GET
              Authorization: Bearer {access_token}
              Host: {Endereço do TReports}/api/trep/v1/Generateds/{id}/file
              Content-type: application/json

              ExportFileType=0 {Consultar o swagger para uma lista completa das opções de arquivo para download}

       Será retornado o binário do arquivo gerado no formato solicitado.

Provedor Integrado:


       O fluxo completo utilizando provedor integrado pode ser visto abaixo:

      O provedor de dados integrado suporta os seguintes tipos de autenticação:

    Basic

      É informado o usuário e senha para acesso ao provedor de dados. Essa informação será enviada no cabeçalho da requisição como autenticação Basic


    OpenID

       O Provedor de dados integrado receberá o access_token do TReports. O token contém o usuário logado no sistema, mas para o caso do fluxo Resource Owner sem a autenticação externa configurada, o usuário do token será sempre o usuário criado para realizar o fluxo Resource Owner. Desta forma, foi criado no Header da requisição a propriedade UserName contendo o nome do usuário informado nos parâmetros da requisição do Execute Request (endPoint: /api/trep/v1/reports/{UidReport}/execute). Caso não seja informado o usuário nos parâmetros do Execute Request, o UserName conterá o usuário do Token.

Informações
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

Versão: 12.1.22 ou Superiores

Informações
iconfalse

Processo: Integração TReports

Informações
iconfalse
Informações
iconfalse

Status: Pendente

Informações
iconfalse

Data:  

Informações
iconfalse

Autores:

Erlon Cesar Lima De Freitas

Flavio Henrique Pereira Campelo

Gustavo Naves De Castro

Philippe Fernandes Lima Gonçalves

SARAH ROLAND CAMPOS LISBOA

Wesley Avelino De Carvalho