Histórico da Página
NOME DO REQUISITO
...
Linha de Produto:
...
T-Reports
...
Segmento:
...
T-Reports
...
Módulo:
...
T-Reports.
...
Os retornos dos serviços REST devem estar encapsulados dentro de um objeto JSON com a seguinte especificação:
Mensagens de erro (códigos HTTP 4xx e 5xx)
Mensagens de erro devem-se retornar obrigatoriamente os campos a seguir:
...
{
code:
""
,
message:
""
,
detailedMessage:
""
}
Exemplo:
POST http:
//totvs.com.br/api/trep/v1/dbdataproviders/testeconnection
{
code:
""
,
message:
"Erro ao testar conexão com o banco de dados"
,
detailedMessage:
"Banco de dados oracle não disponível"
}
...
Mensagens de sucesso devem-se retornar diretamente a entidade que representa o objeto resultado da operação do endpoint.
Exemplo:
...
...
...
...
Todas as linhas de produto devem estabelecer uma URL base, a partir da qual os serviços REST de provedor integrado serão disponibilizados.
...
...
Os serviços REST descritos a seguir estão divididos em:
- Serviço de leitura de parâmetros gerais;
- Serviço de teste de conexão;
- Serviço de teste de sentenças sql;
- Serviço de leitura de schema de tabelas físicas;
- Serviço de leitura de schema de sentença sql;
- Serviço de leitura de dados;
Na descrição de cada serviço podemos encontrar os seguintes elementos:
...
GET /api/trep/v1/dbdataproviders/parameters
Recebe | Não recebe parâmetros |
Retorna | Application/JSON |
Esse método é utilizado para obtenção dos parâmetros do provedor integrado. A necessidade e definição desses parâmetros é de responsabilidade do dono do provedor.
No JSON de retorno, deve constar as seguintes informações:
...
name: Nome do parâmetro;
...
name: Nome do parâmetro;
...
Informações | ||
---|---|---|
| ||
{ “providerParams” : [{ “name” : “aliasName”, “description” : “Nome do alias do RM”, “value” : “CorporeRM”, “isPassword” : false, }] } |
Informações |
---|
Os parâmetros retornados por esse serviço aparecerão na grid de parâmetros localizada no "cadastro de provedores de dados" do front-end do T-Reports, conforme abaixo: |
Serviço de teste de conexão do provedor
...
Recebe
...
Application/JSON
...
Retorna
Informações |
---|
Com o objetivo de facilitar o entendimento do documento, a URL base do RM descrita acima será utilizada no restante do documento para definição dos endpoints. |
...
...
No Json de entrada devem ser enviados os parâmetros cadastrados na tela de "Provedores de dados". Esses parâmetros são os mesmos recuperados pelo serviço definido acima "GET /api/trep/v1/dbdataproviders/parameters".
Informações | ||
---|---|---|
| ||
{ “providerParams” : [{ “name” : “aliasName”, “description” : “Nome do alias do RM”, “value” : “CorporeRM”, “isPassword” : false, }] } |
...
...
...
}
...
...
...
...
...
...
...
...
- paramName: Nome do parâmetro da sentença sql;
- paramValue: Valor do parâmetro da sentença sql;
- paramType: Tipo do parâmetro;
...
...
...
...
...
“value” : “CorporeRM”,
“isPassword” : false,
...
...
...
...
...
"paramName": "codcol",
"paramValue": "1",
"paramType": "system.Int32"
}]
}
...
...
d) Serviço de leitura de schema de tabelas físicas;
...
...
...
...
...
tablesSourceGetRelations: Lista contendo informações de todas as tabelas físicas cadastradas no dicionário de dados do relatório.
Informações |
---|
Através dessa lista todos os relacionamentos entre essas tabelas poderão ser recuperados automaticamente no dicionário de dados do ERP em questão, evitando assim, o cadastro manual dos relacionamentos. |
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
schemaTable: Objeto contendo as seguinte informações:
...
...
- columnName
...
...
...
...
...
...
...
...
...
...
...
...
...
{"columnName": "CHAPA", "columnDescription": "Chapa do funcionario", "columnType": "System.string"},
{"columnName": "SALARIO", "columnDescription": "Salario do funcionário", "columnType": "System.double"}]
“relations” : [{
"relationName": "PFUNC_PFDEPEND",
"parentSourceName": "PFUNC",
"childSourceName": "PFDEPEND",
"parentColumns": [{"columnName": "CODCOLIGAGA"}, {"columnName": "CHAPA"}],
"childColumns": [{"columnName": "CODCOLIGAGA"}, {"columnName": "CHAPA"}],
...
"relationName": "PFUNC_PSECAO
"parentSourceName": "PFUNC",
"childSourceName": "PSECAO,
"parentColumns": [{"columnName": "CODCOLIGAGA"}, {"columnName": "CODSECAO}],
"childColumns": [{"columnName": "CODCOLIGAGA"}, {"columnName": "CODIGO"}]
...
}
Esse método é utilizado na tela de cadastro de entidade do tront-end do reports, ao escolher uma fonte de dados ligada a uma tabela física:
e) Serviço de leitura de schema de sentenças sql;
...
...
...
...
sqlParameters: Lista de objeto contendo informações dos parâmetros da sentença sql:
...
paramName: Nome do parâmetro da sentença sql;
...
...
{
“providerParams” : [{
“description” : “Nome do alias do RM”,
“value” : “CorporeRM”,
“isPassword” : false,
}],
"sqlText": "select * from pfunc where codcoligada = :codcol",
"sqlParameters": [{
"paramName": "codcol",
"paramValue": "1",
"paramType": "system.Int32"
}]
}
...
...
schemaSql: objeto contendo as seguinte informações:
- columns: lista contendo as seguinte informações:
- columnName: Nome da coluna;
- columnType: tipo da coluna;
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Esse método é utilizado na tela de cadastro de entidade do tront-end do reports, ao escolher uma fonte de dados ligada a uma sentença sql:
f) - Serviço de leitura de dados;
...
Recebe | Application/JSON |
Retorna | Application/JSON |
...
- providerParams: Parâmetros do provedor de dados.
- sentenceMember: Objeto contendo as seguinte informações:
entityName: Nome da entidade cadastrada no reports que receberá os dados.
- sqlText: sentença sql a ser disparada no banco de dados;
sqlParameters: Lista de objeto contendo informações dos parâmetros da sentença sql:
paramName: Nome do parâmetro da sentença sql;
- paramValue: Valor do parâmetro da sentença sql;
- paramType: Tipo do parâmetro;
- maxRecords: número máximo de registros a serem retornados. Se o valor for < 0 (default), serão retornados todos os registros.
Informações title Exemplo de json de entrada {
“providerParams” : [{
“description” : “Nome do alias do RM”,
“value” : “CorporeRM”,
“isPassword” : false,
}],
"sentenceMember": {
"entityName": "Funcionarios",
"sqlText": "select * from pfunc where codcoligada = :codcol",
"sqlParameters": [{
"paramName": "codcol",
"paramValue": "1",
"paramType": "system.Int32"
}],
maxRecords: 10}
}
No JSON de retorno, deve constar as seguintes informações:
entityName: Nome da entidade enviada no parâmetros "entityName" do objeto de request;
- data: Dados recuperadas no banco de dados através da execução da sentença sql enviada no objeto de request:
Informações Os dados recuperados devem ser retornados no formato xml ou no formato json. É necessário enviar no cabeçalho da resposta o tipo de conteúdo enviado. Content-type = application/xml ou Content-type = application/json
...
title | Exemplo de json de retorno |
---|
{
“entityName” :"Funcionarios",
"data": "xml ou json contendo o resultado da execução da sentença sql"
...