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 |
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 parametrizaçõ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" : [ { ... }, { ... }, ... ], "length" : 999, "data" : [{ ... }] } |
Conteúdos de negócio 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. Quando aplicável, o atributo length 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 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" : "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).
Â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ções | ||
---|---|---|
| ||
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", "userCodelogin" : "jose.silva", "userName" : "Jose da Silva", "userEmail" : "[email protected]", "userDialectdialect" : "pt-BR", "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. O parâmetro appID, 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:
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 | ||||
---|---|---|---|---|
| ||||
{ "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" : "12.1.11", "isHost" : true, "msgValidation" : "skip", "wsdlUrl" : "http://localhost:8080/eai2-ws/EAIService?wsdl", "portName" : "EAI", "monitorUrl" : "http://localhost:8080/" }, { "appID" : "app2", "name" : "Aplicativo 2", "description" : "Nome do aplicativo 2", "productCode" : "PROTHEUS", "productVersion" : "", "isHost" : false, "msgValidation" : "", "wsdlUrl" : "http://localhost:8180/ws/EAIService.apw?wsdl", "portName" : "", "monitorUrl" : "" }] } |
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" : [] } |
Este é um exemplo de busca de dados de um aplicativo específico - app1.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "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/" } } |
(voltar)
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 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" : [{ "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 }] } |
Exemplo de retorno, considerando os parâmetros page e perPage:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "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 }] } |
(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 retorno:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "messages" : [], "length" : 2, "data" : [{ "transactionID" : "request", "version" : "1.000", "contexts" : ["*","CRM"], "routes" : [{ "context" : "*", "destination" : "logix11@LOGIX" },{ "context" : "CRM", "destination" : "dts12@DATASUL" }] },{ "transactionID" : "request", "version" : "2.000", "contexts" : ["*"], "routes" : [] }] } |
(voltar)
Âncora | ||||
---|---|---|---|---|
|
GET /totvseai/monitor/v1/msgs/{msgUUID}?originalMsgoriginalMsgUUID={originalMsgUUID}
Recebe | msgUUID - string – path parameter |
originalMsgUUID - string - query parameter | |
Retorna | Application/JSON |
Este serviço apenas retorna 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/msgs/{msgUUID}/linked-msgs, que retorna as mensagens vinculadas, fornecerá o dado do tipo de mensagem.
Segue descrição de cada atributo retornado no JSON:
Segue exemplo de JSON retornado pelo serviço:
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" : | ||||
Bloco de código | ||||
| ||||
{ "messages" : [ ], "length" : 1, "data" : { "msgUUID" : "aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX", "sourceApplication" : "Instancia_Dts@DATASUL", "originalMsgUUID" : "", "type" : "BusinessMessagebusinessmessage", "status" : "delivered", "transaction" : "Requestrequest", "version" : "1.000", "context" : "Requisição de Material", "receivedDateTime" : 2016-04-15T12:54:00.000-03:00, "comments" : "", "archived" : false, "deliveryType" : "Syncsync", "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:
O JSON de retorno terá a seguinte estrutura no atributo data:
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",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‑47427ca9cacff6f725cf?3012?bdb2?0c14?47427ca9cacf", "contentmessageFormat" : "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‑47427ca9cacff6f725cf?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 |
(voltar)
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
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 constarão os identificadores das mensagens vinculadasas 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", "typesourceApplication" : "ReceiptMessageapp1@DATASUL" }, { "msgUUIDoriginalMsgUUID" : "aBcDeFgH-89010123-iJkL-4567-mNoPqRsTuVwX", "type" : "ResponseMessagereceiptmessage", }, { "status" : "delivered", "msgUUIDtransaction" : "bAdCfEhG-0123-iJkL-4567-mNoPqRsTuVwXrequest", "typeversion" : "ResponseMessage1.000" }] } |
(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, "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", "sequence "sourceApplication" : 1"app1@DATASUL", "dateTime "originalMsgUUID" : "2016aBcDeFgH-0123-03-17T15:04:26.009-03:00iJkL-4567-mNoPqRsTuVwX", "descriptiontype" : "Status alterado de RECEIVED para RECOGNIZED", "levelresponsemessage", "status" : "INFOdelivered", "userCodetransaction" : "superrequest" }, { "msgUUIDversion" : "aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX1.000", "sequencecontext" : 2"padrao", "dateTimereceivedDateTime" : "2016-0304-17T1515T13:0405:2623.023000-03:00", "descriptioncomments" : "Mensagem armazenada na tabela de mensagens sob método de envio Sync""", "archived" : false, "leveldeliveryType" : "DEBUGsync", "userCodesize" : "super"348 }] } |
Exemplo de requisição usando os parâmetros page e perPage:
(voltar)
GET /totvseai/monitor/v1/msgs/
aBcDeFgH‑0123‑iJkL‑4567‑mNoPqRsTuVwX{msgUUID}/logs?page=
2{page}&perPage=
20{
"messages" : [],
"length" : 0, // Não há dados para retornar na página solicitada
"data" : []
}
{perPage}
Recebe | msgUUID - string – path parameter |
| page - int - query parameter |
| perPage – int - query |
(voltar)
GET /totvseai/monitor/v1/msgs/{msgUUID}/logs/download
Recebe
parameter |
Retorna |
Application/ |
JSON |
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:
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" : " | ||||
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 |
(voltar)
",
"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 | ||
---|---|---|
|
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" : 5,
"data" : [{
"status" : "received",
"total" : 0
},{
"status" : "recognized",
"total" : 1
},{
"status" : "validated",
"total" : 3
},{
"status" : "delivering",
"total" : 2
},{
"status" : "processing",
"total" : 1
}]
}
|
O exemplo a seguir retorna o total de mensagens enviadas com status na categoria "success".
| |
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=
success{
"messages" : [],
"length" : 2,
"data" : [{
"status" : "delivered",
"total" : 10
},{
"status" : "processed",
"total" : 2
}]
}
{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 |
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" : 5, "data" : [{ "status" : "received", "total" : 0 },{ "status" : "recognized", "total" : 0 },{ "status" : "validated", "total" : 0 },{ "status" : "delivering", "total" : 0 },{ "status" : "processingrecognized", "total" : 0 }] } |
1
},{
"status" : "validated",
"total" : 3
},{
"status" : "delivering",
"total" : 2
}]
}
|
O exemplo a seguir retorna o total de mensagens enviadas com status na categoria "successExemplo 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 },{ "status" : "processed", "total" : 12 10 }] } |
(voltar)
GET /totvseai/
Exemplo de retorno para mensagens enviadas com status na categoria "error".
Bloco de código | ||||
---|---|---|---|---|
|
|
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:
| |
{
"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.
sourceApp: indica o aplicativo de origem (appID) cujas mensagens devem ser consideradas. Quando omitido, não será usado como critério de contabilização. O conteúdo deve ser informado conforme definido para o atributo appID no métodoBloco de código | |||
---|---|---|---|
|
|
|
|
| |
{
"messages" : [],
"length" : 4,
"data" : [{
"status" : "received",
"total" : 0
},{
"status" : "recognized |
Seguem alguns exemplos de retorno, de acordo com a URL usada para acionar o serviço:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "messages" : [], "length" : 5, "data" : [{ "status" : "received", "total" : 3 0 },{ "status" : "recognizedvalidated", "total" : 20 },{ "status" : "validateddelivering", "total" : 50 },{ "status" : "delivering", "total" : 1 },{ "status" : "processing", "total" : 3 }] } ] } |
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" : 21, "data" : [{ "status" : "delivered", "total" : 420 },{ "status" : "processed", "total" : 2 }] } | ||||
Bloco de código | ||||
language | js | title | GET||
]
}
|
(voltar)
GET /totvseai/monitor/v1/msgs/summary/receiving?category
=error&transactions=unitofmeasure{
"messages" : [],
"length" : 4,
"data" : [{
"status" : "malformed",
"total" : 2
},{
"status" : "refused",
"total" : 1
},{
"status" : "notdelivered",
"total" : 4
},{
"status" : "businesserror",
"total" : 3
}]
}
={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:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 5,
"data" : [{
"status" : "received",
"total" : 1
},{
"status" : "recognized",
"total" : 0
},{
"status" : "validated",
"total" : 2
},{
"status" : "delivering",
"total" : 3
},{
"status" : "processing",
"total" : 1
}]
} |
{
"messages" : [],
"length" : 2,
"data" : [{
"status" : "delivered",
"total" : 12
}, {
"status" : "processed",
"total" : 4
}]
}
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 /
(voltar)
GET /totvseai/monitor/v1/msgs/summary/transactionsapplications/{transactionIDappID}?sourceApp={sourceApp}&date={date}&deliveryType={deliveryType}&status={status}&transactions={transactions}&msgflow={msgFlowmsgflow}&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 transaçãoaplicativo, 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:
language | js |
---|---|
title | GET /totvseai/monitor/v1/msgs/summary/transactions?sourceApp=app1@DATASUL&status=delivered&msgflow=sending |
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":
{ "messages" : [], "length" : 3, "data" : [{ "transaction" : "customervendor", "total" : 120 },{ "transaction" : "request", "total" : 23 },{ "transaction" : "userofmeasure", "total" : 78 }] }Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "messages" : [], "length" : 13, "data" : [{ "transactionappID" : "accountantaccountapp1@DATASUL", "total" : 120240 } } | ||||
Bloco de código | ||||
| ||||
{ "messages" : [], ,{ "lengthappID" : 1"app2@PROTHEUS", "datatotal" : 130 },{ "transactionappID" : "accountantaccountapp3@RM", "total" : 15102 }] } |
(voltar)
GET
Bloco de código | ||||
---|---|---|---|---|
|
|
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 |
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:
appID: Identificador do aplicativo para a qual se deseja contabilizar as mensagens. Este parâmetro é opcional e quando não informado, indica ao serviço que todos os aplicativos devem ser considerados. Se informado, seu conteúdo deve estar em conformidade com o definido para o atributo appID no método
| |
{
"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 | ||||
---|---|---|---|---|
|
|
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":
| |
{
"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/
applications?status=delivered&msgflow=sending{ "messages" : [], "length" : 3, "data" : [{ "appID" : "app1@DATASUL", "total" : 240 },{ "appID" : "app2@PROTHEUS",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" : 1,
"data" : [{
"appID" : "app1@DATASUL",
"total" : 120
}]
} |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"messages" : [],
"length" : 1,
"data" : [{
"appID" : "app2@PROTHEUS",
"total" : 3
}]
} |
(voltar)
GET /totvseai/monitor/v1/msgs/summary/contexts/{context}?date={date}&deliveryType={deliveryType}&status={status}&transactions={transactions}&msgflow={msgflow}
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 |
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:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "messages" : [], "length" : 3,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" : 2015 },{ "context" : "*CRM", "total" : 107 }] } |
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}?originalMsgoriginalMsgUUID={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" : "BusinessMessagebusinessmessage", "status" : "delivered", "transaction" : "request", "version" : "Request2.001", "context" : "Requisição de materiais", "receivedDateTime" : "2016-04-15T12:54:00.000-03:00", "comments" : "", "archived" : false, "deliveryType" : "Syncsync", "size" : 348 },{ "msgUUID" : "mNoPqRsT-0123-iJkL-4567-aBcDeFgHuVwX", "sourceApplication" : "app2@PROTHEUS", "originalMsgUUID" : "aBcDeFgH-0123-iJkL-4567-mNoPqRsTuVwX", "type" : "ResponseMessageresponsemessage", "status" : "delivered", "transaction" : "request", "version" : "Request2.001", "context" : "Requisição de materiais", "receivedDateTime" : "2016-04-15T12:59:05.000-03:00", "comments" : "", "archived" : false, "deliveryType" : "Syncsync", "size" : 125 },{ "msgUUID" : "aBcDeFgH-4567-iJkL-0123-mNoPqRsTuVwX", "sourceApplication" : "app2@PROTHEUS", "originalMsgUUID" : "", "type" : "BusinessMessagebusinessmessage", "status" : "delivered", "transaction" : "order", "transactionversion" : "Order2.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" : "ResponseMessageresponsemessage", "transactions" : "order;user;unitofmeasure", "contextscontext" : "Compras;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" : "ResponseMessageresponsemessage", "transactions" : "order;user;unitofmeasure", "contextscontext" : "Compras;Pedidos", "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" : "ResponseMessageresponsemessage", "transactions" : "order;user;unitofmeasure", "content" : "//ListOfMessage/Message[@type='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" : "ResponseMessageresponsemessage", "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" : "BusinessMessagebusinessmessage", "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" : "ResponseMessageresponsemessage", "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" : 84, "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.
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|