Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Especificação | |||
Produto | TOTVS | Módulo | EAI |
Segmento Executor | Framework | ||
Projeto1 | FRWJOI01 | IRM1 | Evolução EAI |
Requisito1 | FRWJOI01-3 | Subtarefa1 | FRWJOI01-84 |
País | ( X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Descrever os serviços WEB que devem ser disponibilizados pelos produtos TOTVS para monitoramento do EAI (status do serviço, mensagens e configurações).
Os serviços de monitoramento de EAI disponibilizados pelos produtos deverão atender os seguintes pré-requisitos:
Todas as linhas de produto deverão definir uma URL base, a partir da qual os serviços REST do monitor de EAI serão disponibilizados. Todos os caminhos descritos neste documento serão relativos a esta URL base.
As URLs dos serviços - por exemplo, /totvseai/monitor/v1/admin - são compostas pelos seguintes elementos:
Os retornos dos serviços REST devem estar encapsulados dentro de um objeto JSON com a seguinte especificação:
Bloco de código | ||
---|---|---|
| ||
{ “messages” : [ { ... }, { ... }, ... ], “length” : 999, “data” : [{ ... }] } |
Conteúdos de negócio, listas, dados e objetos devem estar contidos dentro do atributo data. O atributo length especifica o tamanho da lista ou a quantidade de dados contida no atributo data; No caso das listas, o atributo length, quando aplicável, contém a quantidade total de itens correspondentes aos parâmetros de pesquisa, e não apenas os que estão contidos no retorno, o que é comum quando há paginação de dados. O atributo messages contém uma lista de mensagens para exibir ao usuário (mensagens de erro ou de negócio). Cada elemento do array será um objeto que obedece a seguinte estrutura:
Bloco de código | ||
---|---|---|
| ||
{ “code” : “string”, “type” : “danger|error|warning|info|success”, “detail” : “string” } |
O atributo code representa o código da mensagem. Caso a mensagem possua um detalhamento técnico, este deve constar no atributo detail. O atributo type identifica o tipo de mensagem a ser exibida ao usuário: danger (perigo), error (erro), warning (aviso), info (informação) ou success (sucesso).
Os serviços de monitoramento que serão descritos a seguir estão divididos nas seguintes categorias:
Na descrição de cada serviço podemos encontrar os seguintes elementos:
Âncora | ||||
---|---|---|---|---|
|
GET /totvseai/monitor/v1/admin/context
Recebe | Não recebe parâmetros |
Retorna | Application/JSON |
O método /totvseai/monitor/v1/admin/context é utilizado para obter informações de contexto de EAI do aplicativo, seja ele interno ou externo. No JSON de retorno, no atributo data, deve constar as seguintes informações:
Informações |
---|
Importante: Em relação ao acesso, este será o único serviço que um usuário não autorizado poderá acessar e obter retorno. Os demais serviços retornarão código HTTP 403 (Forbidden) caso não tenham permissão (userCanMonitor = “false”). |
Exemplo de JSON de retorno:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ “messages” : [], “length” : 1, “data” : [{ “hostAppID” : “app1”, “databaseType” : “ORACLE”, “productName” : “PROTHEUS”, “productVersion” : “12.1.11”, “userCode” : “jose.silva”, “userName" : “Jose da Silva”, “userEmail” : “[email protected]”, “userDialect” : “pt-BR”, “userCanMonitor” : true }] } |
GET /totvseai/monitor/v1/apps/{appID}?page={page}&perPage={perPage}
Recebe | appID – string – path parameter |
| page - int - query parameter |
| perPage – int – query parameter |
Retorna | Application/JSON |
Este método lista os detalhes do aplicativo solicitado, seja ele interno ou externo. Quando o parâmetro appID é omitido, todos os aplicativos serão considerados. O serviço suporta ainda suporta os seguintes parâmetros:
Para melhor compreensão do uso dos parâmetros acima, : quando for informado algo como ?page=2&perPage=20, o JSON de retorno conterá, no atributo data, os elementos de nr. 21 a 40.
Os dados retornados para um aplicativo são:
O JSON de retorno terá o seguinte formato:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ |
“messages” : [], |
“length” : 2, // total de registros, considerando page=1, perPage=10 |
“data” : [{
“appID“ : “app1”,
“name” : “Aplicativo 1”,
“description” : “Nome do aplicativo 1”,
“productCode” : “DATASUL”,
“productVersion” :“data” : [{ “appID“ : “app1”, “name” : “Aplicativo 1”, “description” : “Nome do aplicativo 1”, “productCode” : “DATASUL”, “productVersion” : “12.1.11”, |
“isHost” : true,
“msgValidation” : “skip”,
“wsdlUrl” : “http“isHost” : true, “msgValidation” : “skip”, “wsdlUrl” : “http://localhost:8080/eai2-ws/EAIService? |
“portName” : “EAI”,
“monitorUrl” : “httpwsdl”, “portName” : “EAI”, “monitorUrl” : “http://localhost:8080/” |
}, |
“appID“ : “app2”,
“name” : “Aplicativo 2”,
“description” : “Nome do aplicativo 2”,
“productCode” : “PROTHEUS”,
“productVersion” :{ “appID“ : “app2”, “name” : “Aplicativo 2”, “description” : “Nome do aplicativo 2”, “productCode” : “PROTHEUS”, “productVersion” : “12.1.9”, |
“isHost” : false,
“msgValidation” : “sendOnly”,
“wsdlUrl” : “http“isHost” : false, “msgValidation” : “sendOnly”, “wsdlUrl” : “http://localhost:8180/ws/EAIService.apw? |
“portName” : “EAISERVICESOAP”,
“monitorUrl” : “httpwsdl”, “portName” : “EAISERVICESOAP”, “monitorUrl” : “http://localhost: |
8182” }] |
} |
O exemplo abaixo demonstra o uso dos parâmetros page e perPage.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ |
“messages” : [], |
“length” : 0, |
// não há registros dentro dos critérios informados |
“data” : [] } |
}
GET /totvseai/monitor/v1/apps/app1
{
“messages” : [],
“length” : 1, # Para requisições de um item, não há o que paginar
“data” : [{
“appID“ : “app1”,
“name” : “Aplicativo 1”,
“description” : “Nome do aplicativo 1”,
“productCode” : “DATASUL”,
“productVersion” : “12.1.11”,
“isHost” : true,
“msgValidation” : “skip”,
“wsdlUrl” : “http://localhost:8080/eai2-ws/EAIService?wsdl”,
“portName” : “EAI”,
“monitorUrl” : “http://localhost:8080/”
}]
}
GET /totvseai/monitor/v1/apps/inspect-new-app
Recebe | Application/JSON – form parameters |
Retorna | Application/JSON |
Este método permite obter dados de um novo aplicativo a partir das propriedades de conexão fornecidas (URL do WSDL, porta WSDL, usuário e senha).
O JSON a ser enviado no corpo da requisição REST (payload), contendo os dados de conexão ao aplicativo, deve ter os seguintes atributos:
Exemplo de JSON de envio:
{
“wsdlUrl” : “http://localhost:8480/EAISERVICE.apw?wsdl”,
“portType” : “EAISERVICESOAP”,
“user” : “”,
“password” : “”
}
O JSON de retorno conterá os dados do aplicativo (código, nome, descrição, entre outros) e suas respectivas transações.
Os dados relativos ao aplicativo seguem o formato definido para o serviço GET /totvseai/monitor/v1/apps, ao qual é adicionado o atributo transactions, um array com as transações disponíveis no aplicativo em questão.
Cada objeto dentro do array transactions terá os seguintes atributos:
Veja exemplo completo do JSON de retorno:
{
“messages” : [],
“length” : 1,
“data” : [{
“appID“ : “app3”,
“name” : “Aplicativo 3”,
“description” : “Nome do aplicativo 3”,
“productCode” : “LOGIX”,
“productVersion” : “12.1.8”,
“isHost” : false,
“msgValidation” : “always”,
“wsdlUrl” : “http://localhost:8480/EAISERVICE.apw?wsdl”,
“portName” : “EAISERVICESOAP”,
“monitorUrl” : “http://localhost:8481/”,
“transactions” : [{
“transactionID” : “AccountPayable”,
“version” : “1.000”,
“supportedMode” : “both_enabled”,
“enabledMode” : “both_enabled”,
“allowAnonymous” : false,
“includeOriginalMsg” : false
}, {
“transactionID” : “AccountReceivable”,
“version” : “1.003”,
“supportedMode” : “both_enabled”,
“enabledMode” : “receive_enabled”,
“allowAnonymous” : false,
“includeOriginalMsg” : false
}]
}]
}
GET /totvseai/monitor/v1/apps/{appID}/transactions?page={page}&perPage={perPage}
Recebe | appID - string – path parameter |
| page - int - query parameter |
| perPage – int – query parameter |
Retorna | Application/JSON |
Este serviço retorna a lista de transações para um aplicativo fornecido. O parâmetro de entrada – appID – deve ser informado na URL da requisição. Adicionalmente outros dois parâmetros podem ser informados:
O JSON de retorno conterá, no atributo data, um array com as transações do aplicativo. A definição dos atributos presentes no retorno é a mesma do serviço anterior, exceto pelo fato que será retornado apenas as transações do aplicativo, não suas propriedades.
Segue JSON de exemplo para o retorno:
GET /totvseai/monitor/v1/apps/app1/transactions
{
“messages” : [],
“length” : 3, # implicitamente, page=1, perPage=10
“data” : [{
“transactionID” : “order”,
“version” : “2.000”,
“supportedMode” : “both_enabled”,
“enabledMode” : “both_enabled”,
“allowAnonymous” : false,
“includeOriginalMsg” : false
} , {
“transactionID” : “request”,
“version” : “1.002”,
“supportedMode” : “both_enabled”,
“enabledMode” : “receive_enabled”,
“allowAnonymous” : false,
“includeOriginalMsg” : true
} , {
“transactionID” : “unitofmeasure”,
“version” : “1.000”,
“supportedMode” : “send_enabled”,
“enabledMode” : “send_enabled”,
“allowAnonymous” : false,
“includeOriginalMsg” : true
}]
}
GET /totvseai/monitor/v1/apps/app1/transactions?page=1&perPage=5
{
“messages” : [],
“length” : 3,
“data” : [{
“transactionID” : “order”,
“version” : “2.000”,
“supportedMode” : “both_enabled”,
“enabledMode” : “both_enabled”,
“allowAnonymous” : false,
“includeOriginalMsg” : false
} , {
“transactionID” : “request”,
“version” : “1.002”,
“supportedMode” : “both_enabled”,
“enabledMode” : “receive_enabled”,
“allowAnonymous” : false,
“includeOriginalMsg” : true
} , {
“transactionID” : “unitofmeasure”,
“version” : “1.000”,
“supportedMode” : “send_enabled”,
“enabledMode” : “send_enabled”,
“allowAnonymous” : false,
“includeOriginalMsg” : true
}]
}
GET /totvseai/monitor/v1/apps/{appID}/transactions/{transactionID}
Recebe | appID - string – path parameter |
transactionID - string – path parameter | |
Retorna | Application/JSON |
Este serviço retorna detalhes da transação solicitada, como os contextos e as rotas estabelecidas. É possível que mais de uma versão da transação esteja registrada no aplicativo. Neste caso, todas as versões da transação serão retornadas.
Os dados serão retornados em um array no atributo data. Segue descrição dos atributos dos elementos do array:
Segue exemplo de JSON de retorno:
GET /totvseai/monitor/v1/apps/app1/transactions/request
{
“messages” : [],
“length” : 2,
“data” : [{
“transactionID” : “request”,
“version” : “1.000”,
“contexts” : [“*”,”CRM”],
“routes” : [{
“context” : “*”,
“destination” : “logix11”
},{
“context” : “CRM”,
“destination” : “dts12”
}]
},{
“transactionID” : “request”,
“version” : “2.000”,
“contexts” : [“*”],
“routes” : []
}]
}
<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.
Protótipo 01
<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>.
Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/
Índice | Chave |
01 | <FI9_FILIAL+FI9_IDDARF+FI9_STATUS> |
02 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF> |
03 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO> |
Campo | <AAA_PERESP> |
Tipo | <N> |
Tamanho | <6> |
Valor Inicial | <Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. |
Mandatório | Sim ( ) Não ( ) |
Descrição | <Referência Mínima para Cálculo> |
Título | <Ref.Calc.> |
Picture | <@E999.99> |
Help de Campo | <Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação> |
<Informações utilizadas na linha Protheus>.
Nome: FINSRF2
X1_ORDEM | 01 |
X1_PERGUNT | Emissão De |
X1_TIPO | D |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR01 |
X1_DEF01 | Comum |
X1_CNT01 | '01/01/08' |
X1_HELP | Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório |
<Informações utilizadas na linha Protheus>
Consulta: AMB
Descrição | Configurações de Planejamento |
Tipo | Consulta Padrão |
Tabela | “AMB” |
Índice | “Código” |
Campo | “Código”; ”Descrição” |
Retorno | AMB->AMB_CODIGO |
<Informações utilizadas na linha Datasul>.
Procedimentos
Procedimento |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Módulo |
|
|
|
Programa base |
|
|
|
Nome Menu | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Registro padrão | Sim | Sim | Sim |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Release de Liberação |
|
|
|
Programas
Programa |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Nome Externo |
|
|
|
Nome Menu/Programa | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Nome Verbalizado[1] | (Max 254 posições) | (Max 254 posições) | (Max 254 posições) |
Procedimento |
|
|
|
Template | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) |
Tipo[2] | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Categoria[3] |
|
|
|
Executa via RPC | Sim/Não | Sim/Não | Sim/Não |
Registro padrão | Sim | Sim | Sim |
Outro Produto | Não | Não | Não |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Query on-line | Sim/Não | Sim/Não | Sim/Não |
Log Exec. | Sim/Não | Sim/Não | Sim/Não |
Rotina (EMS) |
|
|
|
Sub-Rotina (EMS) |
|
|
|
Localização dentro da Sub Rotina (EMS) |
|
|
|
Compact[4] | Sim/Não | Sim/Não | Sim/Não |
Home[5] | Sim/Não | Sim/Não | Sim/Não |
Posição do Portlet[6] | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right |
Informar os papeis com os quais o programa deve ser vinculado |
|
|
|
Cadastro de Papéis
<O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.
<Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.
Código Papel | (máx 3 posições) |
Descrição em Português* |
|
Descrição em Inglês* |
|
[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.
[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante
[3] Categorias são obrigatórias para os programas FLEX.
[4] Obrigatório quando o projeto for FLEX
[5] Obrigatório quando o projeto for FLEX
[6] Obrigatório quando o projeto for FLEX
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|