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 trafegadas e configuraçõesparametrizações em vigor).
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”"messages" : [ { ... }, { ... }, ... ], “length”"length" : 999, “data”"data" : [{ ... }] } |
Conteúdos de negócio , listas, dados e objetos devem estar contidos dentro do atributo data. Quando houver mais de um elemento, o conteúdo do atributo data deve estar em formato de lista (array) contendo dados primitivos ou objetos. Se o retorno for um único elemento (tipo primitivo ou objeto), não se deve encapsulá-lo num array. O atributo length especifica o tamanho da lista ou a quantidade de dados contida no atributo data; No caso das listas. Quando aplicável, o atributo length, quando aplicável, contém conterá 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 conterá 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”"code" : “string”"string", “type”"type" : “danger"danger|error|warning|info|success”success", “detail”"detail" : “string”"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).
Âncora | ||
---|---|---|
|
|
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:
Exemplos de chamadas de serviços para atender tarefas de monitoramento específicas podem ser vistos ao final do documento.
Âncora | ||||
---|---|---|---|---|
|
GET /totvseai/monitor/v1/admin/context
Recebe | Não recebe parâmetros |
Retorna | Application/JSON |
O 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çõesinfo | ||
---|---|---|
| ||
: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”"false"). |
Exemplo de JSON de retorno:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ “messages”"messages" : [], “length”"length" : 1, “data”"data" : [{ “hostAppID”"hostAppID" : “app1”"app1", “databaseType”"databaseType" : “ORACLE”"ORACLE", “productName”"productName" : “PROTHEUS”"PROTHEUS", “productVersion”"productVersion" : “12"12.1.11”11", “userCode”"login" : “jose"jose.silva”silva", “userName"userName" : “Jose"Jose da Silva”Silva", “userEmail”"userEmail" : “jose"jose.silva@mycomp.com”com", “userDialect”"dialect" : “pt"pt-BR”BR", “userCanMonitor”"userCanMonitor" : true }] } |
(voltar)
Âncora | ||||
---|---|---|---|---|
|
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 O parâmetro appID é omitido, todos , quando informado, deve ser fornecido no formato "appID@productCode", já que há implementações de EAI que permitem registrar aplicativos externos com mesmo código identificador. Quando o parâmetro appID for omitido, todos os aplicativos serão considerados
. O serviço suporta ainda 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:
Informações |
---|
No caso de aplicativos externos, por exemplo, há informações que não são conhecidas pelo aplicativo interno que os tem registrado (productCode, productVersion, msgValidation, portName, monitorUrl). Nestas situações, os atributos, caso constem no JSON, devem estar em branco. |
Informações | ||
---|---|---|
| ||
O conteúdo do atributo appID no JSON retornado pelo método conterá o nome da instalação Protheus concatenado ao grupo de empresas que possua configuração de EAI. |
O JSON de retorno terá o seguinte formato:
Bloco de código | ||||
---|---|---|---|---|
| ||||
Bloco de código | ||||
| ||||
{ “messages”"messages" : [], “length”"length" : 2, // total de registros, considerando page=1, perPage=10 “data”"data" : [{ “appID“"appID" : “app1”"app1", “name”"name" : “Aplicativo"Aplicativo 1”1", “description”"description" : “Nome"Nome do aplicativo 1”1", “productCode”"productCode" : “DATASUL”"DATASUL", “productVersion”"productVersion" : “12"12.1.11”11", “isHost”"isHost" : true, “msgValidation”"msgValidation" : “skip”"skip", “wsdlUrl”"wsdlUrl" : “http"http://localhost:8080/eai2-ws/EAIService?wsdl”wsdl", “portName”"portName" : “EAI”"EAI", “monitorUrl”"monitorUrl" : “http"http://localhost:8080/”" }, { “appID“"appID" : “app2”"app2", “name”"name" : “Aplicativo"Aplicativo 2”2", “description”"description" : “Nome"Nome do aplicativo 2”2", “productCode”"productCode" : “PROTHEUS”"PROTHEUS", “productVersion”"productVersion" : “12.1.9”"", “isHost”"isHost" : false, “msgValidation”"msgValidation" : “sendOnly”"", “wsdlUrl”"wsdlUrl" : “http"http://localhost:8180/ws/EAIService.apw?wsdl”wsdl", “portName”"portName" : “EAISERVICESOAP”"", “monitorUrl”"monitorUrl" : “http://localhost:8182”"" }] } |
O exemplo abaixo demonstra o uso dos parâmetros page e perPage.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ “messages”"messages" : [], “length”"length" : 0, // não há registros dentro dos critérios informados “data”"data" : [] } |
Este é um exemplo de busca de dados de um aplicativo específico - app1.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ “messages”"messages" : [], “length”"length" : 1, // # Para requisições de um item, não há o que paginar “data”"data" : [{ “appID“"appID" : “app1”"app1", “name”"name" : “Aplicativo"Aplicativo 1”1", “description”"description" : “Nome"Nome do aplicativo 1”1", “productCode”"productCode" : “DATASUL”"DATASUL", “productVersion”"productVersion" : “12"12.1.11”11", “isHost”"isHost" : true, “msgValidation”"msgValidation" : “skip”"skip", “wsdlUrl”"wsdlUrl" : “http"http://localhost:8080/eai2-ws/EAIService?wsdl”wsdl", “portName”"portName" : “EAI”"EAI", “monitorUrl”"monitorUrl" : “http"http://localhost:8080/”" }] } |
(voltar)
GET GET /totvseai/monitor/v1/apps/inspect-new-app/{appID}/transactions?page={page}&perPage={perPage}
Recebe | appID - string – path parameter |
| page - int - query parameter |
| perPage – int – query parameter |
Recebe
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:
Bloco de código | ||
---|---|---|
| ||
{
“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:
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 seguindo o formato "appID@productCode". Adicionalmente outros dois parâmetros podem ser informados:
O JSON de retorno conterá, no atributo data, um array com as transações do aplicativo. Cada objeto dentro do array terá os seguintes atributos:
Segue JSON de exemplo para o retorno:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 3, // implicitamente, page=1, perPage=10
"data" | ||||
Bloco de código | ||||
| ||||
{ “messages” : [], “length” : 1, “data” : [{ “appID“"transactionID" : “app3”"order", “name”"version" : “Aplicativo 3”"2.000", “description”"supportedMode" : “Nome do aplicativo 3”"both_enabled", “productCode”"enabledMode" : “LOGIX”"both_enabled", “productVersion”"allowAnonymous" : “12.1.8”false, “isHost”"includeOriginalMsg" : false, } , { “msgValidation” "transactionID" : “always”"request", “wsdlUrl” "version" : “http://localhost:8480/EAISERVICE.apw?wsdl”"1.002", “portName”"supportedMode" : “EAISERVICESOAP”"both_enabled", “monitorUrl”"enabledMode" : “http://localhost:8481/”"receive_enabled", “transactions”"allowAnonymous" : [{false, “transactionID”"includeOriginalMsg" : “AccountPayable”,true } , { “version” "transactionID" : “1.000”"unitofmeasure", “supportedMode” : “both_enabled”"version" : "1.000", “enabledMode”"supportedMode" : “both"send_enabled”enabled", “allowAnonymous” : false"enabledMode" : "send_enabled", “includeOriginalMsg”"allowAnonymous" : false }, { “transactionID”"includeOriginalMsg" : “AccountReceivable”, “version” : “1.003”, “supportedMode” : “both_enabled”, “enabledMode” : “receive_enabled”true }] } |
Exemplo de retorno, considerando os parâmetros page e perPage:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "messages" : [], "length" : 3, "data" : [{ "transactionID" : "order", "version" : "2.000", “allowAnonymous” : false, "supportedMode" : "both_enabled", “includeOriginalMsg”"enabledMode" : 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:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ “messages” : [], “length” : 3, // implicitamente, page=1, perPage=10 “data” : [{ “transactionID” : “order”"both_enabled", "allowAnonymous" : false, "includeOriginalMsg" : false } , { "transactionID" : "request", "version" : "1.002", "supportedMode" : "both_enabled", "enabledMode" : "receive_enabled", "allowAnonymous" : false, "includeOriginalMsg" : true } , { "transactionID" : "unitofmeasure", “version”"version" : “2"1.000”000", “supportedMode”"supportedMode" : “both"send_enabled”enabled", “enabledMode”"enabledMode" : “both"send_enabled”enabled", “allowAnonymous”"allowAnonymous" : false, “includeOriginalMsg”"includeOriginalMsg" : falsetrue } , { “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 }] } |
}]
} |
(voltar)
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. O parâmetro appID usado na URL de requisição deve seguir o formato "appID@productCode".
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 retornoExemplo de retorno, considerando os parâmetros page e perPage:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ “messages”"messages" : [], “length”"length" : 32, “data”"data" : [{ “transactionID”"transactionID" : “order”"request", “version”"version" : “2"1.000”000", “supportedMode”"contexts" : “both_enabled”["*","CRM"], “enabledMode”"routes" : “both_enabled”,[{ “allowAnonymous” "context" : false"*", “includeOriginalMsg” : false "destination" : "logix11@LOGIX" } , { “transactionID” "context" : “request”"CRM", “version” : “1.002”, "destination" : "dts12@DATASUL" }] },{ “supportedMode” "transactionID" : “both_enabled”"request", “enabledMode”"version" : “receive_enabled”"2.000", “allowAnonymous”"contexts" : false["*"], “includeOriginalMsg”"routes" : true[] } , { “transactionID” : “unitofmeasure”, “version” : “1.000”, “supportedMode” : “send_enabled”, “enabledMode” : “send_enabled”, “allowAnonymous” : false, “includeOriginalMsg” : true }] }] } |
(voltar)
Âncora | ||||
---|---|---|---|---|
|
GET /totvseai/monitor/v1/appsmsgs/{appID}/transactions/{transactionIDmsgUUID}?originalMsgUUID={originalMsgUUID}
Recebe |
msgUUID |
- string – path parameter |
originalMsgUUID - string |
- |
query parameter | |
Retorna | Application/JSON |
Este serviço apenas 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:
os dados principais da mensagem informada como parâmetro (UUID, data de geração, data de recebimento, aplicativo de origem, etc.). O conteúdo da mensagem é retornado em outro serviço. O parâmetro opcional originalMsgUUID deve ser informado quando a mensagem a ser obtida for originada de uma outra mensagem (por exemplo, uma ReceiptMessage ou uma ResponseMessage). O método GET /totvseai/monitor/v1/
appsmsgs/
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 |
{msgUUID}/linked-msgs, que retorna as mensagens vinculadas, fornecerá o dado do tipo de mensagem.
Segue descrição de cada atributo retornado no JSON:
Informações | ||
---|---|---|
| ||
Deve-se considerar o XML "puro" na contabilização do tamanho da mensagem, ou seja, antes de ocorrer a transformação dos caracteres "<", ">", "&" e ' " ' para a versão "escapada" ('<", ">", "&" e """). |
Segue exemplo de JSON retornado pelo serviço:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [ ],
"length" : 1,
"data" : {
"msgUUID" : "aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX",
"sourceApplication" : "Instancia_Dts@DATASUL",
"originalMsgUUID" : "",
"type" : "businessmessage",
"status" : "delivered",
"transaction" : "request",
"version" : "1.000",
"context" : "Requisição de Material",
"receivedDateTime" : 2016-04-15T12:54:00.000-03:00,
"comments" : "",
"archived" : false,
"deliveryType" : "sync",
"size" : 348
}
}
|
(voltar)
GET /totvseai/monitor/v1/msgs/{msgUUID}/content?start={start}&size={size}
Recebe | msgUUID - string – path parameter |
start – inteiro – query parameter | |
size – inteiro – query parameter | |
Retorna | Application/JSON |
Este serviço retorna o conteúdo de uma mensagem informada. Além do código da mensagem (msgUUID), pode-se informar mais dois parâmetros de query:
Informações | ||
---|---|---|
| ||
Deve-se considerar o XML "puro" na contabilização do tamanho da mensagem, ou seja, antes de ocorrer a transformação dos caracteres "<", ">", "&" e ' " ' para a versão "escapada" ('<", ">", "&" e """). |
O JSON de retorno terá a seguinte estrutura no atributo data:
Para retornar o conteúdo completo no JSON de retorno, deve-se requisitar o serviço sem os parâmetros start e size.
Exemplo de requisição de uma mensagem em partes, com cada parte tendo 1000 bytes de tamanho:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [ ],
"length" : 2, // Quantidade de partes da mensagem usando o size informado
"data" : {
"msgUUID" : "f6f725cf?3012?bdb2?0c14?47427ca9cacf",
"messageFormat" : "xml"
"content" : "<TOTVSMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xmlschema/general/requests/whois_1_000.xsd"><MessageInformation version="1.000"><UUID>f6f725cf-3012-bdb2-0c14-47427ca9cacf</UUID><Type>Response</Type><Transaction>whois</Transaction><StandardVersion>1.0</StandardVersion><SourceApplication>jvd001651</SourceApplication><CompanyId/><Product name="Datasul" version="11.5.X"/><GeneratedOn>2016-03-22T13:26:00.348-03:00</GeneratedOn></MessageInformation><ResponseMessage><ReceivedMessage><SentBy>SoapUI</SentBy><UUID>WhoIsReq-uest-0001-0000-000000000003</UUID></ReceivedMessage><ProcessingInformation><ProcessedOn>2016-03-22T13:26:00.348-03:00</ProcessedOn><Status>OK</Status></ProcessingInformation><ReturnContent><EnabledTransactions><Transaction><Name>carrier</Name><Version>2.000</Version><Mode>SEND_ENABLED</Mode></Transaction><Transaction><Name>city</Name><Version>1.000</Version><Mode>BOTH_ENABLED</Mode></Transaction><Transaction><Name>eai",
"size" : 1000
}
} |
Exemplo contendo a segunda parte da mensagem:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [ ],
"length" : 2, // Quantidade de partes da mensagem usando o size informado
"data" : {
"msgUUID" : "f6f725cf?3012?bdb2?0c14?47427ca9cacf",
"messageFormat" : "xml",
"content" : "environment</Name><Version>1.000</Version><Mode>BOTH_ENABLED</Mode></Transaction><Transaction><Name>getschema</Name><Version>1.000</Version><Mode>BOTH_ENABLED</Mode></Transaction><Transaction><Name>invoice</Name><Version>3.004</Version><Mode>BOTH_ENABLED</Mode></Transaction><Transaction><Name>item</Name><Version>3.001</Version><Mode>BOTH_ENABLED</Mode></Transaction><Transaction><Name>unitofmeasureconversion</Name><Version>1.000</Version><Mode>SEND_ENABLED</Mode></Transaction><Transaction><Name>user</Name><Version>3.001</Version><Mode>SEND_ENABLED</Mode></Transaction><Transaction><Name>warehouse</Name><Version>1.001</Version><Mode>RECEIVE_ENABLED</Mode></Transaction><Transaction><Name>whois</Name><Version>1.001</Version><Mode>BOTH_ENABLED</Mode></Transaction><Transaction><Name>workcenter</Name><Version>1.000</Version><Mode>RECEIVE_ENABLED</Mode></Transaction></EnabledTransactions></ReturnContent></ResponseMessage></TOTVSMessage>",
"size" : 941
}
} |
Exemplo de requisição obtendo todo o conteúdo de uma só vez:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [ ],
"length" : 1,
"data" : {
"msgUUID" : "f6f725cf?3012?bdb2?0c14?47427ca9cacf",
"messageFormat" : "xml"
"content" : "<TOTVSMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xmlschema/general/requests/whois_1_000.xsd"><MessageInformation version="1.000"><UUID>f6f725cf-3012-bdb2-0c14-47427ca9cacf</UUID><Type>Response</Type><Transaction>whois</Transaction><StandardVersion>1.0</StandardVersion><SourceApplication>jvd001651</SourceApplication><CompanyId/><Product name="Datasul" version="11.5.X"/><GeneratedOn>2016-03-22T13:26:00.348-03:00</GeneratedOn></MessageInformation><ResponseMessage><ReceivedMessage><SentBy>SoapUI</SentBy><UUID>WhoIsReq-uest-0001-0000-000000000003</UUID></ReceivedMessage><ProcessingInformation><ProcessedOn>2016-03-22T13:26:00.348-03:00</ProcessedOn><Status>OK</Status></ProcessingInformation><ReturnContent><EnabledTransactions><Transaction><Name>carrier</Name><Version>2.000</Version><Mode>SEND_ENABLED</Mode></Transaction><Transaction><Name>city</Name><Version>1.000</Version><Mode>BOTH_ENABLED</Mode></Transaction><Transaction><Name>eaienvironment</Name><Version>1.000</Version><Mode>BOTH_ENABLED</Mode></Transaction><Transaction><Name>getschema</Name><Version>1.000</Version><Mode>BOTH_ENABLED</Mode></Transaction><Transaction><Name>invoice</Name><Version>3.004</Version><Mode>BOTH_ENABLED</Mode></Transaction><Transaction><Name>item</Name><Version>3.001</Version><Mode>BOTH_ENABLED</Mode></Transaction><Transaction><Name>unitofmeasureconversion</Name><Version>1.000</Version><Mode>SEND_ENABLED</Mode></Transaction><Transaction><Name>user</Name><Version>3.001</Version><Mode>SEND_ENABLED</Mode></Transaction><Transaction><Name>warehouse</Name><Version>1.001</Version><Mode>RECEIVE_ENABLED</Mode></Transaction><Transaction><Name>whois</Name><Version>1.001</Version><Mode>BOTH_ENABLED</Mode></Transaction><Transaction><Name>workcenter</Name><Version>1.000</Version><Mode>RECEIVE_ENABLED</Mode></Transaction></EnabledTransactions></ReturnContent></ResponseMessage></TOTVSMessage>",
"size" : 1941
}
} |
(voltar)
GET /totvseai/monitor/v1/msgs/{msgUUID}/download
Recebe | msgUUID - string – path parameter |
Retorna | Application/XML ou Application/JSON |
O serviço download recebe como parâmetro o código da mensagem e retorna o conteúdo da mensagem em formato XML, para download. O corpo da resposta deve conter o XML da mensagem na íntegra, enquanto no cabeçalho da resposta (header), deve constar "Content-disposition = attachment;filename=msg_{msgUUID}.xml" para indicar ao browser que o conteúdo deve ser salvo em arquivo local.
Exemplo de resposta HTTP - XML (cabeçalhos):
Bloco de código | ||||
---|---|---|---|---|
| ||||
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Last-Modified: Thu, 19 Nov 2015 14:16:38 GMT
Content-Type: application/xml
Content-Disposition: attachment; filename=msg_aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX.xml
Content-Length: 1941
Date: Mon, 18 Apr 2016 16:56:44 GMT |
Exemplo de resposta HTTP - JSON (cabeçalhos):
Bloco de código | ||||
---|---|---|---|---|
| ||||
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Last-Modified: Thu, 19 Nov 2015 14:16:38 GMT
Content-Type: application/json
Content-Disposition: attachment; filename=msg_aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX.json
Content-Length: 1941
Date: Mon, 18 Apr 2016 16:56:44 GMT |
(voltar)
GET /totvseai/monitor/v1/msgs/{msgUUID}/linked-msgs
Recebe | msgUUID - string – path parameter |
Retorna | Application/JSON |
Este serviço retorna as mensagens vinculadas a uma mensagem informada, por exemplo, a mensagem de resposta (ResponseMessage) gerada para uma mensagem de negócio (BusinessMessage). O parâmetro recebido – msgUUID – é o identificador único da mensagem para a qual se deseja recuperar os vínculos.
No JSON de retorno as mensagens vinculadas completas (no mesmo modelo do serviço /totvseai/monitor/v1/msgs/{msgUUID}.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 3, // Quantidade de mensagens vinculadas
"data" : [{
"msgUUID": "aBcDeFgH-4567-iJkL-4567-mNoPqRsTuVwX",
"sourceApplication" : "app1@DATASUL",
"originalMsgUUID" : "aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX",
"type" : "receiptmessage",
"status" : "delivered",
"transaction" : "request",
"version" : "1.000",
"context" : "padrao",
"receivedDateTime" : 2016-04-15T12:54:00.000-03:00,
"comments" : "",
"archived" : false,
"deliveryType" : "sync",
"size" : 48
}, {
"msgUUID": "aBcDeFgH-8901-iJkL-4567-mNoPqRsTuVwX",
"sourceApplication" : "app1@DATASUL",
"originalMsgUUID" : "aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX",
"type" : "responsemessage",
"status" : "notdelivered",
"transaction" : "request",
"version" : "1.000",
"context" : "padrao",
"receivedDateTime" : 2016-04-15T12:59:21.000-03:00,
"comments" : "",
"archived" : false,
"deliveryType" : "async",
"size" : 348
}, {
"msgUUID": "bAdCfEhG-0123-iJkL-4567-mNoPqRsTuVwX",
"sourceApplication" : "app1@DATASUL",
"originalMsgUUID" : "aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX",
"type" : "responsemessage",
"status" : "delivered",
"transaction" : "request",
"version" : "1.000",
"context" : "padrao",
"receivedDateTime" : 2016-04-15T13:05:23.000-03:00,
"comments" : "",
"archived" : false,
"deliveryType" : "sync",
"size" : 348
}]
} |
(voltar)
GET /totvseai/monitor/v1/msgs/{msgUUID}/logs?page={page}&perPage={perPage}
Recebe | msgUUID - string – path parameter |
| page - int - query parameter |
| perPage – int - query parameter |
Retorna | Application/JSON |
Este serviço retorna os registros de mudança de estado da mensagem no aplicativo, ou seja, as etapas que a mensagem percorreu durante seu processamento pelo aplicativo interno. Os parâmetros deste serviço são:
No JSON de retorno, constarão as entradas de log, dentro de um array no atributo data. Cada elemento do array terá os seguintes atributos:
Segue exemplo de requisição e o respectivo JSON de retorno:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 2,
"data" : [{
"msgUUID" : "aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX",
"sequence" : 1,
"dateTime" : "2016-03-17T15:04:26.009-03:00",
"description" : "Status alterado de RECEIVED para RECOGNIZED",
"level" : "INFO",
"userCode" : "super"
}, {
"msgUUID" : "aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX",
"sequence" : 2,
"dateTime" : "2016-03-17T15:04:26.023-03:00",
"description" : "Mensagem armazenada na tabela de mensagens sob método de envio Sync",
"level" : "DEBUG",
"userCode" : "super"
}]
}
|
Exemplo de requisição usando os parâmetros page e perPage:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 0, // Não há dados para retornar na página solicitada
"data" : []
}
|
(voltar)
GET /totvseai/monitor/v1/msgs/{msgUUID}/logs/download
Recebe | msgUUID - string – path parameter |
Retorna | text/plain |
Este serviço permite efetuar o download de todas as mensagens de log associadas a uma mensagem, salvando-as em um arquivo .txt. Para isso, o serviço deve retornar os cabeçalhos "Content-Type: text/plain" e "Content-Disposition: attachment; file=log_{msgUUID}.txt" na resposta da requisição, onde {msgUUID} deve ser substituído pelo valor informado no parâmetro msgUUID.
Exemplo de resposta HTTP, com destaque dos cabeçalhos relacionados ao serviço:
Bloco de código | ||||
---|---|---|---|---|
| ||||
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Last-Modified: Thu, 19 Nov 2015 14:16:38 GMT
Content-Type: text/plain
Content-Disposition: attachment; filename=log_aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX.txt
Content-Length: 1941
Date: Mon, 18 Apr 2016 16:56:44 GMT |
Exemplo de conteúdo do arquivo de log gerado. Na primeira linha constam o nome das colunas. Os campos são separados por "|".
Bloco de código | ||||
---|---|---|---|---|
| ||||
Sequencia|Data/Hora|Descrição|Nivel|Usuário
1|17/03/2015 03:04:25|Status alterado de RECEIVED para RECOGNIZED|INFO|super
2|17/03/2015 03:04:25|Status alterado de RECOGNIZED para VALIDATED|INFO|super
3|17/03/2015 03:04:25|Status alterado de VALIDATED para PROCESSING|INFO|super
4|17/03/2015 03:04:25|Status alterado de PROCESSING para PROCESSED|INFO|super
5|17/03/2015 03:04:25|Mensagem armazenada no banco de dados|DEBUG|super |
(voltar)
Âncora | ||||
---|---|---|---|---|
|
GET /totvseai/monitor/v1/msgs/summary/sending?category={category}&date={date}&transactions={transactions}&deliveryType={deliveryType}&context={context}
Recebe | category - string – query parameter |
| date – string – query parameter |
| transactions – string – query parameter |
| deliveryType – string – query parameter |
| context - string – query parameter |
Retorna | Application/JSON |
Este serviço retorna a quantidade de mensagens originadas do aplicativo interno. São consideradas neste serviço as mensagens com tipo igual a BusinessMessage, cujo aplicativo de origem seja o aplicativo interno. Os totais serão discriminados conforme os status de mensagem abrangidos pela categoria escolhida. Desta forma, o "consumidor" do serviço poderá utilizar os totais desta maneira, ou somar os totais para obter um "grande" total.
Segue descrição dos parâmetros:
Seguem alguns exemplos de retorno, de acordo com a URL usada para acionar o serviço. O exemplo abaixo totaliza as mensagens enviadas, com categoria "in-process":
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 4,
"data" : [{
"status" : "received",
"total" : 0
},{
"status" : "recognized",
"total" : 1
},{
"status" : "validated",
"total" : 3
},{
"status" : "delivering",
"total" : 2
}]
}
|
O exemplo a seguir retorna o total de mensagens enviadas com status na categoria "success".
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : [{
"status" : "delivered",
"total" : 10
}]
}
|
Exemplo de retorno para mensagens enviadas com status na categoria "error".
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 4,
"data" : [{
"status" : "malformed",
"total" : 0
},{
"status" : "refused",
"total" : 2
},{
"status" : "notdelivered",
"total" : 2
},{
"status" : "businesserror",
"total" : 7
}]
} |
Requisição de totalização de mensagens enviadas onde, além da categoria de status (in-process), é informado o período de criação das mensagens e a lista de transações a considerar.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 4,
"data" : [{
"status" : "received",
"total" : 0
},{
"status" : "recognized",
"total" : 0
},{
"status" : "validated",
"total" : 0
},{
"status" : "delivering",
"total" : 0
}]
} |
Exemplo de requisição para totalização de mensagens enviadas, com status na categoria "success", criadas a partir de 20/03/2016, cujo tipo de entrega é síncrono e as transações sejam "request" ou "order".
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : {
"status" : "delivered",
"total" : 20
}]
}
|
(voltar)
GET /totvseai/monitor/v1/msgs/summary/receiving?category={category}&sourceApp={sourceApp}&date={date}&transactions={transactions}&deliveryType={deliveryType}&context={context}
Recebe | category - string – query parameter |
| sourceApp – string – query parameter |
| date – string – query parameter |
| transactions – string – query parameter |
| deliveryType – string – query parameter |
| context - string – query parameter |
Retorna | Application/JSON |
Este serviço retorna a quantidade de mensagens provenientes de outros aplicativos. São consideradas neste serviço as mensagens com tipo igual a BusinessMessage, cujo aplicativo de origem seja diferente do aplicativo interno. Os totais serão discriminados conforme os status de mensagem abrangidos pela categoria escolhida. Desta forma, o "consumidor" do serviço poderá utilizar os totais desta maneira, ou somar os totais para obter um "grande" total.
Segue descrição dos parâmetros:
Seguem alguns exemplos de retorno, de acordo com a URL usada para acionar o serviço:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 4,
"data" : [{
"status" : "received",
"total" : 3
},{
"status" : "recognized",
"total" : 2
},{
"status" : "validated",
"total" : 5
},{
"status" : "processing",
"total" : 3
}]
}
|
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : [{
"status" : "processed",
"total" : 2
}]
} |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 4,
"data" : [{
"status" : "malformed",
"total" : 2
},{
"status" : "refused",
"total" : 1
},{
"status" : "notdelivered",
"total" : 4
},{
"status" : "businesserror",
"total" : 3
}]
} |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 4,
"data" : [{
"status" : "received",
"total" : 1
},{
"status" : "recognized",
"total" : 0
},{
"status" : "validated",
"total" : 2
},{
"status" : "processing",
"total" : 1
}]
} |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : [{
"status" : "processed",
"total" : 4
}]
}
|
(voltar)
GET /totvseai/monitor/v1/msgs/summary/transactions/{transactionID}?sourceApp={sourceApp}&date={date}&deliveryType={deliveryType}&status={status}&msgflow={msgFlow}&context={context}&page={page}&perPage={perPage}&groupByVersion={groupByVersion}
Recebe | transactionID – string – path parameter |
| sourceApp – string – query parameter |
| date – string – query parameter |
| deliveryType – string – query parameter |
| status – string – query parameter |
| msgflow - string – query parameter |
| context - string – query parameter |
page - int - query parameter | |
perPage - int - query parameter | |
groupByVersion - booleano - query parameter | |
Retorna | Application/JSON |
Este serviço permite obter a quantidade de mensagens por transação. Na totalização serão consideradas somente as mensagens do tipo BusinessMessage.
Os parâmetros aceitos pelo serviço são os descritos a seguir:
Abaixo tem-se alguns exemplos de requisição com os respectivos retornos:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 3, // Implicitamente, assume page=1 e perPage=10
"data" : [{
"transaction" : "customervendor",
"version": "1.000",
"total" : 120
},{
"transaction" : "request",
"version": "2.000",
"total" : 23
},{
"transaction" : "userofmeasure",
"version": "3.000",
"total" : 78
}]
}
|
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 10, // Quantidade total de transações no servidor
"data" : [{
"transaction" : "unitofmeasure",
"version": "3.000",
"total" : 12
},{
"transaction" : "getharvestorder",
"version": "1.000",
"total" : 21
},{
"transaction" : "customervendor",
"version": "1.000",
"total" : 34
},{
"transaction" : "item", // Implicitamente, groupByVersion = true
"version": "1.003",
"total" : 29
},{
"transaction" : "item",
"version": "2.000",
"total" : 7
}]
} |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : [{
"transaction" : "accountantaccount",
"total" : 120 // Corresponde à soma das versões de accountantaccount (2.000 e 2.001)
}]
}
|
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 2,
"data" : [{
"transaction" : "accountantaccount",
"version": "2.000",
"total" : 10
},{
"transaction" : "accountantaccount",
"version": "2.001",
"total" : 5
}]
} |
(voltar)
GET /totvseai/monitor/v1/msgs/summary/applications/{appID}?date={date}&deliveryType={deliveryType}&status={status}&transactions={transactions}&msgflow={msgflow}&context={context}&page={page}&perPage={perPage}
Recebe | appID – string – path parameter |
| date – string – query parameter |
| deliveryType – string – query parameter |
| status – string – query parameter |
| transactions - string – query parameter |
| msgflow - string – query parameter |
| context - string – query parameter |
page - int - query parameter | |
perPage - int - query parameter | |
Retorna | Application/JSON |
Este serviço permite obter a quantidade de mensagens por aplicativo, tanto as enviadas quanto as recebidas. Na totalização serão consideradas somente as mensagens do tipo BusinessMessage.
Os parâmetros aceitos pelo serviço são os descritos a seguir:
Abaixo tem-se alguns exemplos de requisição com os respectivos retornos, onde o atributo identificador do aplicativo - appID - deve estar no formato "appID@productCode":
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 3,
"data" : [{
"appID" : "app1@DATASUL",
"total" : 240
},{
"appID" : "app2@PROTHEUS",
"total" : 130
},{
"appID" : "app3@RM",
"total" : 102
}]
} |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : [{
"appID" : "app1@DATASUL",
"total" : 120
}]
} |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : [{
"appID" : "app2@PROTHEUS",
"total" : 3
}]
} |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 9, // Quantidade total de registros no servidor
"data" : [{
"appID" : "app1@DATASUL",
"total" : 240
},{
"appID" : "app2@PROTHEUS",
"total" : 130
},{
"appID" : "app3@RM",
"total" : 67
},{
"appID" : "app4@LOGIX",
"total" : 82
},{
"appID" : "app5@RM",
"total" : 124
}]
} |
(voltar)
GET /totvseai/monitor/v1/msgs/summary/contexts/{context}?date={date}&deliveryType={deliveryType}&status={status}&transactions={transactions}&msgflow={msgflow}&page={page}&perPage={perPage}&sourceApp={sourceApp}
Recebe | context – string – path parameter |
| date – string – query parameter |
| deliveryType – string – query parameter |
| status – string – query parameter |
| transactions - string – query parameter |
| msgflow - string – query parameter |
page - int - query parameter | |
perPage - int - query parameter | |
sourceApp - string - query parameter | |
Retorna | Application/JSON |
Este serviço permite obter a quantidade de mensagens por contexto, tanto as enviadas quanto as recebidas. Na totalização serão consideradas somente as mensagens do tipo BusinessMessage.
Os parâmetros aceitos pelo serviço são os descritos a seguir:
O JSON de retorno terá os totais por contexto, encontrados entre as mensagens pesquisadas. Veja exemplos:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 3,
"data" : [{
"context" : "Requisição de materiais",
"total" : 3
},{
"context" : "",
"total" : 20
},{
"context" : "*",
"total" : 10
}]
} |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 8, // Quantidade total de registros no servidor
"data" : [{
"context" : "Requisição de materiais",
"total" : 3
},{
"context" : "Padrão",
"total" : 20
},{
"context" : "Financeiro",
"total" : 8
},{
"context" : "Pedido de venda",
"total" : 15
},{
"context" : "CRM",
"total" : 7
}]
} |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : [{
"context" : "Pedido de Venda",
"total" : 10
}]
} |
(voltar)
Âncora | ||||
---|---|---|---|---|
|
GET /totvseai/monitor/v1/msgs/list?sourceApp={sourceApp}&status={status}&date={date}&msgtypes={msgtypes}&transactions={transactions}&content={content}&page={page}&perPage={perPage}&orderBy={orderBy}&msgflow={msgflow}&context={context}
Recebe | sourceApp – string – query parameter |
| status – string – query parameter |
| date – string – query parameter |
| msgtypes – string – query parameter |
| transactions – string – query parameter |
| content – string – query parameter |
| page - int - query parameter |
| perPage - int - query parameter |
| orderBy - string – query parameter |
| msgflow - string – query parameter |
| context - string – query parameter |
Retorna | Application/JSON |
Este serviço visa listar as mensagens que atendam aos critérios fornecidos pelos parâmetros descritos a seguir:
Como um exemplo, a expressão XPath para selecionar uma mensagem da transação Order cujo OrderId seja igual a 200 seria a seguinte:
/TotvsMessage/BusinessMessage/BusinessContent[OrderId=200]
Ou ainda:
//BusinessContent[OrderId=200]
Informações | ||
---|---|---|
| ||
Os parâmetros de query sourceApp e msgflow, quando usados juntos, apresentam algumas situações peculiares, conforme segue:
|
A respeito dos parâmetros page, perPage e orderBy, cabem algumas informações complementares. Os três parâmetros são opcionais, sendo assumidos os seguintes valores defaults:
A pesquisa será realizada com os critérios fornecidos pelos parâmetros, o que resultará em um conjunto de mensagens selecionadas ordenado conforme o parâmetro orderBy. Sobre este conjunto serão aplicados os parâmetros page e perPage. Desta forma, uma pesquisa com page = 2, perPage = 10 e orderBy = "transaction" que, pelos demais parâmetros, resulte em 300 mensagens, retornará no JSON as mensagens classificadas por transação, tendo como 1º elemento a 11ª mensagem e como último elemento a 20ª mensagem.
Abaixo um exemplo geral de JSON de retorno. O modelo de dados retornado é o mesmo do método GET /totvseai/monitor/v1/msgs/{msgUUID}?originalMsgUUID={originalMsgUUID}.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 300, // quantidade total de mensagens da pesquisa
"data" : [{
"msgUUID" : "aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX",
"sourceApplication" : "app1@DATASUL",
"originalMsgUUID" : "",
"type" : "businessmessage",
"status" : "delivered",
"transaction" : "request",
"version" : "2.001",
"context" : "Requisição de materiais",
"receivedDateTime" : "2016-04-15T12:54:00.000-03:00",
"comments" : "",
"archived" : false,
"deliveryType" : "sync",
"size" : 348
},{
"msgUUID" : "mNoPqRsT-0123-iJkL-4567-aBcDeFgHuVwX",
"sourceApplication" : "app2@PROTHEUS",
"originalMsgUUID" : "aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX",
"type" : "responsemessage",
"status" : "delivered",
"transaction" : "request",
"version" : "2.001",
"context" : "Requisição de materiais",
"receivedDateTime" : "2016-04-15T12:59:05.000-03:00",
"comments" : "",
"archived" : false,
"deliveryType" : "sync",
"size" : 125
},{
"msgUUID" : "aBcDeFgH-4567-iJkL-0123-mNoPqRsTuVwX",
"sourceApplication" : "app2@PROTHEUS",
"originalMsgUUID" : "",
"type" : "businessmessage",
"status" : "delivered",
"transaction" : "order",
"version" : "2.005",
"context" : "Pedido de compra",
"receivedDateTime" : "2016-04-16T09:40:00.000-03:00",
"comments" : "",
"archived" : false,
"deliveryType" : "async",
"size" : 1020
}]
}
|
(voltar)
Âncora | ||||
---|---|---|---|---|
|
POST /totvseai/monitor/v1/filters
Recebe | filter data – Application/JSON – payload |
Retorna | Application/JSON |
Este serviço permite salvar os filtros que o usuário realizar na interface do monitor, para utilização futura. O mesmo filtro será utilizando quando o usuário estiver consultando registros no aplicativo interno e no aplicativo externo.
O serviço recebe um JSON com os dados do filtro a incluir, conforme descrito abaixo:
O JSON abaixo exemplifica o conteúdo a ser enviado para o serviço:
Bloco de código | ||
---|---|---|
| ||
{
"filterId" : "",
"userCode" : "user001",
"description" : "my filter description",
"items" : {
"appID" : "app1@DATASUL",
"status" : "businesserror;notdelivered;refused;malformed",
"date" : "2016-04-01:2016-04-20",
"msgtypes" : "responsemessage",
"transactions" : "order;user;unitofmeasure",
"context" : "Pedidos",
"content" : "xpath://ListOfMessage/Message[@type='error']"
}
} |
O JSON de retorno conterá, no atributo data, o JSON do filtro com o filterId atualizado, caso seja enviado em branco, ou o conteúdo informado na requisição, caso não esteja em uso.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : {
"filterId" : "user001-2016-04-26-15-48-01",
"userCode" : "user001",
"description" : "my filter description",
"items" : {
"appID" : "app1@DATASUL",
"status" : "businesserror;notdelivered;refused;malformed",
"date" : "2016-04-01:2016-04-20",
"msgtypes" : "responsemessage",
"transactions" : "order;user;unitofmeasure",
"context" : "Compras",
"content" : "xpath://ListOfMessage/Message[@type='error']"
}
}
} |
(voltar)
PUT /totvseai/monitor/v1/filters/{filterId}
Recebe | filterId – string – path parameter |
| Filter data – Application/JSON - payload |
Retorna | Application/JSON |
Este serviço permite modificar um filtro já cadastrado. Para isso, será enviado uma nova versão do JSON correspondente ao filtro informado no parâmetro filterId. Com exceção dos atributos filterId e userCode, todos os demais podem ser alterados. O formato do JSON enviado e do JSON de retorno é o mesmo descrito no serviço POST /totvseai/monitor/v1/filters.
GET /totvseai/monitor/v1/filters/{filterId}
Recebe | filterId – string – path parameter. |
Retorna | Application/JSON |
Recupera os dados do filtro com o filterId informado, os quais serão retornados no atributo data do JSON de retorno.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : {
"filterId" : "user001-2016-04-26-15-48-01",
"userCode" : "user001",
"description" : "my filter description",
"items" : {
"appID" : "app1@DATASUL",
"status" : "businesserror;notdelivered;refused;malformed",
"date" : "2016-04-01:2016-04-20",
"msgtypes" : "responsemessage",
"transactions" : "order;user;unitofmeasure",
"content" : "error"
}
}
} |
(voltar)
GET /totvseai/monitor/v1/filters?page={page}&perPage={perPage}
Recebe | page – int – query parameter |
| perPage – int – query parameter |
Retorna | Application/JSON |
Este serviço permite recuperar todos os filtros salvos no aplicativo. Os dados retornados são paginados, e sua recuperação é controlada pelos parâmetros page e perPage.
Segue exemplo de retorno do serviço:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 2,
"data" : [{
"filterId" : "user001-2016-04-26-15-48-01",
"userCode" : "user001",
"description" : "my filter description",
"items" : {
"appID" : "app1@DATASUL",
"status" : "businesserror;notdelivered;refused;malformed",
"date" : "2016-04-01:2016-04-20",
"msgtypes" : "responsemessage",
"transactions" : "order;user;unitofmeasure",
"content" : "xpath://ListOfMessage/Message[@type='error']"
}
}, {
"filterId" : "user002-2016-04-26-15-30-10",
"userCode" : "user002",
"description" : "messages OK this month",
"items" : {
"appID" : "",
"status" : "delivered",
"date" : "2016-04-01:2016-04-30",
"msgtypes" : "businessmessage",
"transactions" : "",
"content" : ""
}
}]
} |
(voltar)
GET /totvseai/monitor/v1/filtersbyuser/{userCode}?page={page}&perPage={perPage}
Aviso | ||
---|---|---|
| ||
Devido a implementação de autenticação usando HTTP Basic, o método /filters terá o mesmo resultado deste método. |
Recebe | userCode – string – path parameter |
| page – int - query parameter |
| perPage – int – query parameter |
Retorna | Application/JSON |
Recupera os filtros de um usuário, informado no parâmetro userCode. O serviço suporta paginação das informações retornadas, através dos parâmetros page e perPage.
O retorno do serviço listará os filtros do usuário, seguindo os parâmetros de paginação. Veja exemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : {
"filterId" : "user001-2016-04-26-15-48-01",
"userCode" : "user001",
"description" : "my filter description",
"items" : {
"appID" : "app1@DATASUL",
"status" : "businesserror;notdelivered;refused;malformed",
"date" : "2016-04-01:2016-04-20",
"msgtypes" : "responsemessage",
"transactions" : "order;user;unitofmeasure"
"content" : "xpath://ListOfMessage/Message[@type='error']"
}
}
} |
(voltar)
DELETE /totvseai/monitor/v1/filters/{filterId}
Recebe | filterId – string – path parameter |
Retorna | Application/JSON |
Remove um filtro cadastrado, identificado pelo parâmetro filterId. O retorno será o próprio filterId, caso a exclusão ocorra com sucesso.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : {
"filterId": "user001-2016-04-26-15-48-01"
}
}
|
(voltar)
Âncora | ||||
---|---|---|---|---|
|
GET /totvseai/monitor/v1/mappings/definitions/{mappingID}?page={page}&perPage={perPage}
Recebe | mappingID - string – path parameter |
| page – int – query parameter |
| perPage – int – query parameter |
Retorna | Application/JSON |
Este serviço retorna a definição (estrutura) do "de-para" informado – mappingID (também conhecido como "internalID") –, no contexto do aplicativo interno. Estas definições visam orientar o registro dos valores de "de-para" no aplicativo. Quando não for informado o parâmetro mappingID, serão retornadas todas as definições de "de-para" registradas.
Além do mappingID, o serviço aceita os seguintes parâmetros:
O JSON de retorno do serviço conterá, no atributo data, os seguintes campos:
Segue exemplo de requisição e o respectivo JSON de retorno:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : [{
"mappingID" : "AccountantAccountInternalID",
"table" : "conta-contabil",
"fields" : "cod-conta|cod-subconta"
}]
} |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 13, // total de registros existentes
"data" : [{
"mappingID" : "AccountantAccountInternalID",
"table" : "conta-contabil",
"fields" : "cod-conta|cod-subconta"
},{
"mappingID" : "CustomerVendorInternalID",
"table" : "emitente",
"fields" : "cod-emitente"
},{
"mappingID" : "InvoiceInternalID",
"table" : "nota-fiscal",
"fields" : "cnpj-emit|cd-serie|nr-nf"
}]
} |
(voltar)
GET /totvseai/monitor/v1/mappings/values/{mappingID}?page={page}&perPage={perPage}
Recebe | mappingID – string – path parameter |
| page – int – query parameter |
| perPage – int – query parameter |
Retorna | Application/JSON |
Este serviço retorna os valores de "de-para" registrados no aplicativo para o identificador fornecido – mappingID (ou internalID). Quando não for informado, serão retornados todos os valores de "de-para" registrados.
Além do mappingID, o serviço aceita os seguintes parâmetros:
O serviço retorna um JSON onde, no atributo data, constará um array com objetos contendo os seguintes atributos:
Segue exemplo de JSON de retorno:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 4,
"data" : [{
"mappingID" : "AccountantAccountInternalID",
"table" : "conta-contabil",
"internalValue" : "00001|00000001",
"externalApp" : "logix11@LOGIX",
"externalValue" : "00001-00001"
}, {
"mappingID" : "AccountantAccountInternalID",
"table" : "conta-contabil",
"internalValue" : "00001|00000002",
"externalApp" : "logix11@LOGIX",
"externalValue" : "00001-00002"
}, {
"mappingID" : "AccountantAccountInternalID",
"table" : "conta-contabil",
"internalValue" : "00001|00000005",
"externalApp" : "logix11@LOGIX",
"externalValue" : "00001-00005"
}, {
"mappingID" : "AccountantAccountInternalID",
"table" : "conta-contabil",
"internalValue" : "00002|00000002",
"externalApp" : "logix11@LOGIX",
"externalValue" : "00002-00002"
}]
} |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 18, // Quantidade total de registros
"data" : [{
"mappingID" : "AccountantAccountInternalID",
"table" : "conta-contabil",
"internalValue" : "00001|00000001",
"externalApp" : "logix11@LOGIX",
"externalValue" : "00001-00001"
}, {
"mappingID" : "InvoiceInternalID",
"table" : "nota-fiscal",
"internalValue" : "123456789000112|UN|12345",
"externalApp" : "logix11@LOGIX",
"externalValue" : "123456789000112|UN|000123456"
}, {
"mappingID" : "CustomerVendorInternalID",
"table" : "emitente",
"internalValue" : "23456",
"externalApp" : "logix11@LOGIX",
"externalValue" : "ABC001"
}, {
"mappingID" : "CustomerVendorInternalID",
"table" : "emitente",
"internalValue" : "999888",
"externalApp" : "logix11@LOGIX",
"externalValue" : "XYZ001"
},{
"mappingID" : "AccountantAccountInternalID",
"table" : "conta-contabil",
"internalValue" : "00001|00000001",
"externalApp" : "logix11@LOGIX",
"externalValue" : "00001-00001"
}, {
"mappingID" : "AccountantAccountInternalID",
"table" : "conta-contabil",
"internalValue" : "00001|00000002",
"externalApp" : "logix11@LOGIX",
"externalValue" : "00001-00002"
}, {
"mappingID" : "AccountantAccountInternalID",
"table" : "conta-contabil",
"internalValue" : "00001|00000005",
"externalApp" : "logix11@LOGIX",
"externalValue" : "00001-00005"
}, {
"mappingID" : "AccountantAccountInternalID",
"table" : "conta-contabil",
"internalValue" : "00002|00000002",
"externalApp" : "logix11@LOGIX",
"externalValue" : "00002-00002"
}]
} |
(voltar)
Âncora | ||||
---|---|---|---|---|
|
O objetivo desta seção é demonstrar como cumprir tarefas de monitoramento do EAI através dos serviços disponibilizados. A tarefa é descrita como tópico principal, e os passos para cumpri-la são descritos como subtópicos.
Os seguintes "placeholders" são utilizados nas URLs abaixo:
<URL_monitor_local>: Refere-se à URL base dos serviços REST de monitoramento na instalação do aplicativo interno.
<URL_monitor_externo>: Refere-se à URL base dos serviços REST de monitoramento na instalação do aplicativo externo.
<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
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|