Índice
Índice |
---|
exclude | .*ndice |
---|
printable | false |
---|
|
Objetivo
O objetivo da API de Integração de Visão de Dados do TReports Smart View é promover uma forma de consultar e manipular visões de dados dentro do ERP TOTVS.
Informações |
---|
|
As APIs públicas de Visão de Dados estão disponíveis em qualquer instalação do TReports Smart View a partir da versão 1.7 e suas operações estão documentadas via Swagger. |
Busca de Visões de Dados
A "busca de visões de dados" é uma API que retorna as visões cadastradas no sistema. Através dessa API é possível buscar apenas as visões as quais o usuário possui permissão de acesso, sejam elas de sua própria criação ou que tenham sido compartilhadas com o usuário de forma única ou através de pastas.
A busca possui a funcionalidade de filtro por Nome ou Descrição da visão de dados, onde é necessário enviar no mínimo 3 caracteres para a pesquisa. Dessa forma, as Visões de Dados que tiverem esses caracteres em comum em seu Nome de exibição ou Descrição serão retornados. Existe ainda a funcionalidade de busca através do ID de pasta, dessa forma serão retornadas as visões que estejam vinculadas à pasta informada.
Detalhes da implementação são encontrados no endpoint abaixo:
Abaixo temos um exemplo da lista de visões de dados retornada pela API:
Bloco de código |
---|
theme | RDark |
---|
title | Response Body |
---|
|
[
{
"id": "5de91591-66bb-4615-9e7a-5fe55ccb584d",
"displayName": "Pedidos Realizados",
"description": "Visão de Pedidos Realizados",
"navigationFolderId": null
},
{
"id": "9f6977fa-0e37-43a3-a301-78ca1eeb040a",
"displayName": "Produtos",
"description": "Visão de Produtos Cadastrados",
"navigationFolderId": 1002
}
] |
Hyperlink para Integração com Viewer Externo
A API "Hyperlink para Integração com Viewer Externo" retorna as rotas de integração por interface com as funcionalidades de Visão de Dados. O objetivo dessa API é facilitar a integração com o visualizador do ERP TOTVS ou acesso diretamente pelo navegador, fornecendo a rota a ser acessada para exibir uma Visão de Dados.
A API possui os seguintes parâmetros:
- dataGridId;
- accessToken;
- expiresIn;
- tokenType;
- refreshToken;
- scope;
- parameters;
- licenseContext;
Se algum parâmetro não for informado, a API retornará um valor TEMPLATE. Se os parâmetros forem informados, a API retornará a rota com esses valores preenchidos.
Os detalhes da implementação estão disponíveis no endpoint abaixo:
Abaixo temos um exemplo de hyperlink retornado pela API, sem que nenhum parâmetro tenha sido informado:
Bloco de código |
---|
theme | RDark |
---|
title | Response Body |
---|
|
{
"viewer": "http://localhost:7017/data-grids/{dataGridId}/view?access_token={accessToken}&refresh_token={refreshToken}&scope={scope}&token_type={tokenType}&expires_in={expiresIn}¶meters={parameters}&licenseContext={licenseContext}&hidemenus=true"
} |
Busca de parâmetros e envio
Uma Visão de Dados pode conter parâmetros. Para facilitar a integração, é possível incluir esses parâmetros no hyperlink de integração. Caso não tenha conhecimento dos parâmetros da Visão de Dados selecionada, utilize a API abaixo para consultá-los:
Nota: O resourceType para essa consulta deve ser "data-grid".
Após obter os parâmetros do recurso, eles devem ser enviados em uma estrutura JSON codificada como BASE64 e informados no seguinte formato, que inclui o nome, valor e visibilidade do parâmetro:
Bloco de código |
---|
theme | RDark |
---|
title | Formato da estrutura de Parâmetros |
---|
|
[
{
"name": "nome do parâmetro",
"value": "valor do parâmetro",
"visibility": "Default" | "Hidden" | "Disabled"
},
{
"name": "nome do parâmetro 2",
"value": "valor do parâmetro 2",
"visibility": "Default" | "Hidden" | "Disabled"
}
] |
O campo Visibilidade, possui 3 opções, sendo elas:
- Default: Visibilidade padrão do parâmetro, onde o valor enviado pode ser alterado.
- Hidden: Visibilidade onde o parâmetro não é exibido para o usuário, será enviado com o Valor preenchido no parâmetro.
- Disabled: Visibilidade onde o parâmetro é exibido, mas o valor não pode ser alterado pelo usuário.
O exemplo abaixo contém o envio dos parâmetros com cada uma das visibilidades descritas:
Bloco de código |
---|
theme | RDark |
---|
title | Formato da estrutura JSON de Parâmetros |
---|
|
[
{
"name": "pAplicacao",
"value": ["TReports"],
"visibility": "Default"
},
{
"name": "pPlataforma",
"value": ["Windows"],
"visibility": "Hidden"
},
{
"name": "pVersao",
"value": ["0.0.0+0"],
"visibility": "Disabled"
}
] |
Bloco de código |
---|
title | Envio de Parâmetros em Base64 |
---|
|
WwoJewoJCSJuYW1lIjogInBBcGxpY2FjYW8iLAoJCSJ2YWx1ZSI6IFsiVFJlcG9ydHMiXSwKCQkidmlzaWJpbGl0eSI6ICJEZWZhdWx0IgoJfSwKCXsKCQkibmFtZSI6ICJwUGxhdGFmb3JtYSIsCgkJInZhbHVlIjogWyJXaW5kb3dzIl0sCgkJInZpc2liaWxpdHkiOiAiSGlkZGVuIgoJfSwKCXsKCQkibmFtZSI6ICJwVmVyc2FvIiwKCQkidmFsdWUiOiBbIjAuMC4wKzAiXSwKCQkidmlzaWJpbGl0eSI6ICJEaXNhYmxlZCIKCX0KXQ== |
Com a URL do Viewer configurada, é possível acessar o browser para visualização, onde será apresentada a visão de dados com os parâmetros informados, respeitando os valores e visibilidade enviados.
Abono de licenças
Para visualizar a Visão de Dados usando o hyperlink, é necessário ter uma Licença TOTVS I. Quando o ERP consumir a API de hyperlink de Visão de Dados, ele poderá fornecer o contexto de licença em uma estrutura JSON codificada em BASE64.
Abaixo está um exemplo de contexto de licença em estrutura JSON:
Bloco de código |
---|
theme | RDark |
---|
title | Formato da estrutura JSON do contexto de licença |
---|
|
{
"federalId": "11111111111111",
"mainThreadId": <MainThread do Produto TOTVS>,
"threadId": 999999,
"moduleId": "<Módulo 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
}
} |
Bloco de código |
---|
title | Envio do contexto de licença em base64 |
---|
|
eyJmZWRlcmFsSWQiOiIxMTExMTExMTExMTExMSIsIm1haW5UaHJlYWRJZCI6IjxNYWluVGhyZWFkIGRvIFByb2R1dG8gVE9UVlM+IiwidGhyZWFkSWQiOjk5OTk5OSwibW9kdWxlSWQiOiI8TW9kdWxvIGRvIFByb2R1dG8gVE9UVlM+IiwiYWN0aW9uTmFtZSI6IjxSb3RpbmEgZG8gUHJvZHV0byBUT1RWUz4iLCJsaWNlbnNlU2VydmVyIjp7Imhvc3RuYW1lIjoiPElwIGRvIExpY2Vuc2UgU2VydmVyPiIsInBvcnQiOiI8UG9ydGEgZG8gTGljZW5zZSBTZXJ2ZXI+In0sImNsaWVudCI6eyJob3N0bmFtZSI6IjxJcCBkbyBQcm9kdXRvIFRPVFZTPiIsInBvcnQiOiI8UG9ydGEgZG8gUHJvZHV0byBUT1RWUz4ifSwidXNlciI6eyJuYW1lIjoiPFVzdeFyaW8gZG8gUHJvZHV0byBUT1RWUz4iLCJpc0Z1bGxEZXRlcm1pbmFkbyI6ZmFsc2UsImNyZWRlbnRpYWxzIjpudWxsfX0=== |
O abono se dá 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 o hyperlink de integração com a Visão de Dados para que ocorra o abono pelo License Servermaiores detalhes sobre o como realizar o abono de licenças durante a integração, acesse a documentação no link Consumo de Licenças (página interna).