Á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 objetivo deste documento é detalhar o funcionamento do Consumo consumo de Licenças licenças pelo TReports Smart View, quando os recursos são consumidos por ERPs, e explicar quais informações devem ser enviadas para o TReports de forma a Smart View a fim de permitir o abono das licenças.

Introdução

     Para realizar a pré-visualização e exibição de relatórios, ou o design e visualização dos demais recursos via interface, é necessária a disponibilidade de uma Licença TOTVS I. Essa exigência também ocorre quando é solicitada a geração de relatórios via API pública. Dessa forma, quando os recursos do TReports são consumidos pelo ERP que implementou a integração, é necessário que algumas informações sejam enviadas para o TReports para possibilitar o abono de licenças, evitando assim um consumo duplicado.

Abono de Licença

    O ERP, quando consumir as APIs públicas de geração de Relatórios, deverá passar via cabeçalho da requisição as seguintes informações:


Para possibilitar a integração, o Smart View realiza consultas em APIs públicas dos ERPs, as quais, por padrão, consomem licenças do tipo TOTVS I. Como existem cenários em que o Smart View é chamado diretamente na interface dos ERPs, para que não haja exigência de licença TOTVS I, desenvolvemos uma forma de repasse de contexto de licença para permitir o abono.

De forma resumida, as chamadas do ERP devem enviar um contexto de licença para o Smart View, que por sua vez irá repassá-las no consumo das APIs de integração para que seja realizado o abono.

Caso essas informações não sejam enviadas, o Smart View criará um contexto sob demanda e enviará para o ERP para que seja feito a tratativa de consumo. 

Abono de Licenças


Para realizar o abono de licenças é necessário enviar algumas informações para o Smart View, a fim de evitar consumo duplicado de licenças. Existem duas formas de realizar esse processo: via API e através do Hyperlink de Integração com Viewer Externo.

Representação JSON do contexto de licença

HeaderValueX-License-ContextLicense Context codificado em base64
Bloco de código
languagejs
themeRDark
titleLicense Context
{
      "federalId": "11111111111111",
      "mainThreadId": <MainThread do Produto TOTVS>,
      "threadId": 999999,
      "moduleId": "<Modulo do Produto TOTVS>",
      "actionName": "<Rotina do Produto TOTVS>",
      "licenseServer": {
            "hostname": "<Ip do License Server>",
            "port": <Porta do License Server>
      },
      "client": {
            "hostname": "<Ip do Produto TOTVS>",
            "port": <Porta do Produto TOTVS>
      },
      "user": {
            "name": "<Usuário do Produto TOTVS>",
             "isFullDeterminado": false,
             "credentials": null
    }
}
  O abono se dá pela combinação do

    },
    "annotations": {
		//Informações adicionais que o ERP queira enviar
		"issuer": "Protheus",
        "version": "12.1.2310"
	}
}
Bloco de código
languagejs
themeRDark
titleContexto de Licença em base64
ewogICAgImZlZGVyYWxJZCI6ICIxMTExMTExMTExMTExMSIsCiAgICAibWFpblRocmVhZElkIjogPE1haW5UaHJlYWQgZG8gUHJvZHV0byBUT1RWUz4sCiAgICAidGhyZWFkSWQiOiA5OTk5OTksCiAgICAibW9kdWxlSWQiOiAiPE1vZHVsbyBkbyBQcm9kdXRvIFRPVFZTPiIsCiAgICAiYWN0aW9uTmFtZSI6ICI8Um90aW5hIGRvIFByb2R1dG8gVE9UVlM+IiwKICAgICJsaWNlbnNlU2VydmVyIjogewogICAgICAgICJob3N0bmFtZSI6ICI8SXAgZG8gTGljZW5zZSBTZXJ2ZXI+IiwKICAgICAgICAicG9ydCI6IDxQb3J0YSBkbyBMaWNlbnNlIFNlcnZlcj4KICAgIH0sCiAgICAiY2xpZW50IjogewogICAgICAgICJob3N0bmFtZSI6ICI8SXAgZG8gUHJvZHV0byBUT1RWUz4iLAogICAgICAgICJwb3J0IjogPFBvcnRhIGRvIFByb2R1dG8gVE9UVlM+CiAgICB9LAogICAgInVzZXIiOiB7CiAgICAgICAgIm5hbWUiOiAiPFVzdcOhcmlvIGRvIFByb2R1dG8gVE9UVlM+IiwKICAgICAgICAiaXNGdWxsRGV0ZXJtaW5hZG8iOiBmYWxzZSwKICAgICAgICAiY3JlZGVudGlhbHMiOiBudWxsCiAgICB9LAogICAgImFubm90YXRpb25zIjogewoJCS8vSW5mb3JtYcOnw7VlcyBhZGljaW9uYWlzIHF1ZSBvIEVSUCBxdWVpcmEgZW52aWFyCgkJImlzc3VlciI6ICJQcm90aGV1cyIsCiAgICAgICAgInZlcnNpb24iOiAiMTIuMS4yMzEwIgoJfQp9
Nota
titleannotations

O preenchimento da propriedade annotations no JSON de Contexto de Licença é opcional. Contextos gerados pelo próprio Smart View não possuem essa propriedade.

Informações
titleComo é concedido o abono?

O abono é concedido pela combinação do mainThreadId + moduleId + client:hostname + client:port + user:name. Esses valores devem ser preenchidos com os mesmos valores utilizados pelo ERP que está solicitando a geração/visualização do

relatório

recurso para que ocorra o abono pelo License Server

.

no consumo das APIs de integração.

Abono de licenças via API


Quando o ERP consumir as APIs públicas de geração de relatórios, deverá passar as seguintes informações via cabeçalho da requisição:

HeaderValue
X-License-ContextLicense Context codificado em base64
Exemplo

Abaixo um exemplo de envio de requisição de geração de relatório (/api/reports/v1/resources/{UidReport}/v2/generate) via Postman, repassando com as informações de License Context (do contexto de licença em formato JSON convertido para base64) conforme detalhado no item anterior:

Image RemovedImage Added

Abono

de Licenças em Relatório Legado

de licenças via Hyperlink de Integração com Viewer Externo


O Smart View disponibiliza uma API para cada recurso (Relatório, Tabela Dinâmica e Visão de dados) que retorna as rotas de integração por interface com as funcionalidades de cada recurso. A seguir está o link para mais detalhes sobre a integração usando hyperlink de cada recurso:

Todas essas APIs tem o parâmetro "licenseContext" para ser informado seguindo a estrutura JSON do contexto de licença codificado em base64. Quando o contexto de licença é incluído na chamada de API para obter as rotas de integração, ele será devolvido em todas as chamadas subsequentes das APIs de integração do ERP, possibilitando o abono de licenças utilizando a licença fornecida pelo ERP.

Segue um exemplo da requisição à API para obter a rota de integração com o recurso Relatório informando o licenseContext e sua respectiva resposta:

Nota
iconfalse
titleNota

Os demais parâmetros foram omitidos para destacar o licenseContext.

Image Added

Informações
titleAusência do Contexto de Licença

É importante entender que a API de Hyperlink de Integração com Viewer Externo foi criada para facilitar a integração com o visualizador do ERP TOTVS ou o acesso direto pelo navegador. Seus parâmetros são opcionais e, se omitidos, a API retornará apenas a máscara do parâmetro da query string, conforme exibido na imagem acima.
Caso o contexto de licença não seja enviado, um novo contexto será criado sob demanda ao executar a busca de dados para o recurso selecionado, não ocorrendo o abono.

     O fluxo de geração de relatório legado via API pública (/api/trep/v1/reports/{UidReports}/execute) permite também o envio das informações de License Context diretamente no corpo da requisição no campo licenseContext (também em base64) do objeto GenerateParams , conforme mostrado abaixo:

Bloco de código
languagejs
themeRDark
titleBody da requisição
{ "user": "", "notificationParams": {}, "generateParams": { "CustomData": "", "stopExecutionOnError": true, "licenseContext": "eyJmZWRlcmFsSWQiOiAiICAgICAgICAgICAgICAiLCJtYWluVGhyZWFkSWQiOiA1MTMwOCwidGhyZWFkSWQiOiA1MTMwOCwibW9kdWxlSWQiOiAiMiIsImFjdGlvbk5hbWUiOiAiVFJFUE9SVFNfMSIsImxpY2Vuc2VTZXJ2ZXIiOiB7Imhvc3RuYW1lIjogImxvY2FsaG9zdCIsInBvcnQiOiA1NTU1IH0sImNsaWVudCI6IHsiaG9zdG5hbWUiOiAiMTI3LjAuMC4xIiwicG9ydCI6IDEyMzUgfSwidXNlciI6IHsibmFtZSI6ICIwMDAwMDAiLCJpc0Z1bGxEZXRlcm1pbmFkbyI6IGZhbHNlLCJjcmVkZW50aWFscyI6IG51bGx9fQ==", "exportFileType": 0, "isView": false, "parameters": [ { "type": "String", "name": "codigo", "value": "000839", "description": "informe o codigo do produto" } ], "filters": [] }, "id": 0, "scheduleParams": { "repeat": false, "type": 0, "repeatType": 0, "repeatMonthPattern": { "last": false, "day": 0 }, "repeatTime": "string", "repeatWeekPattern": { "sunday": false, "monday": false, "thursday": false, "friday": false, "tuesday": false, "wednesday": false, "saturday": false } } }



Informações
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

Processo: TReports  Smart View

Informações

Versão: 1.1 e superiores

Informações
iconfalse
Informações
iconfalse

Status: Rascunho

Informações
iconfalse

Data:  

Informações
iconfalse

Autores
 Aline Cristina Braz de Oliveira 

Carlos Philippe de Farias Marques 

Cesar Henrique Silva Rodrigues_ 

Diogo Damiani Ferreira 

Usuário desconhecido (fernando.souza)

Usuário desconhecido (samuel.frederico) 

Wemerson Marcelo Martins Guimarães 


Page Tree