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 | FRAMEWORK SP - 005 | IRM1 |
| ||||||||||||||||
Requisito1 |
| Subtarefa1 |
| ||||||||||||||||
País | ( ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( X ) TODOS. | ||||||||||||||||||
Outros |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Descrever os serviços necessários para que o monitor do TOTVS EAI consiga realizar o diagnóstico dos serviços/integrações habilitadas entre os produtos integrados.
Os serviços de diagnósticos 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, conforme a especificação de requisitos ER_FRWJOI01-3_Serviços_para_monitoramento_de_EAI.
Os objetos de retorno dos métodos REST seguem o retorno especificado no requisito ER_FRWJOI01-3_Serviços_para_monitoramento_de_EAI.
Todas as linhas de produto deverão disponibilizar no monitor os caminhos dos serviços do EAI de seus produtos.
Todos os parâmetros de query string page e perpage, quando não especificados, assumem o valor default de 1 e 10, respectivamente.
Serviços REST - Originados do Monitor EAI para o serviço REST do monitor disponível nos aplicativos (produtos)
Busca de empresas e filiais associadas (De-para de empresas) Âncora Busca de empresas Busca de empresas
GET /totvseai/monitor/v1/admin/companies/{appID}/{companyID}/{branchID}?page={page}&perPage={perPage}
Recebe | appId - string - path param |
companyID - string - path param | |
branchID - string - path param | |
page - int - query string | |
perpage - int - query string | |
Retorna | Application/JSON |
Este método lista os de-para de empresas do aplicativo interno.
Caso o parâmetro appID seja enviado, é buscado a informação do relacionamento somente para o aplicativo em questão. Caso contrário, é buscado todas as informações dos aplicativos disponiveis (no Protheus uma mesma instalação pode possuir mais de um aplicativo, pois cada Grupo de empresas Protheus comporta um aplicativo).
Pode-se também enviar os parâmetros de companyID (para buscar o mapeamento somente de uma empresa/grupo daquele aplicativo) e branchID, para buscar somente daquela filial.
Retorno esperado:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "messages": [], "length": 2, "data": [ { "appID": "PRODUCAO18", "product": "PROTHEUS", "companies": [ { "company": "18", "branch": "D MG 01", "integratedProducts": [ { "appId": "AMBIENTE", "product": "RM", "company": "01", "branch": "01" }, { "appId": "AMBX", "product": "DATASUL", "company": "1", "branch": "10" } ] }, { "company": "18", "branch": "D RJ 01", "integratedProducts": [ { "appId": "AMBIENTE", "product": "RM", "company": "01", "branch": "02" }, { "appId": "AMBX", "product": "DATASUL", "company": "1", "branch": "11" } ] } ] }, { "appID": "PRODUCAO19", "product": "PROTHEUS", "companies": [ { "company": "19", "branch": "D MG 01", "integratedProducts": [ { "appId": "AMBIENTE", "product": "RM", "company": "02", "branch": "02" } ] } ] } ] } |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "messages" : [], "length" : 1, "data" : { "appID" : "PRODUCAO19", "product" : "PROTHEUS", "companies" : [{ "company" : "19", "branch" : "D MG 01", "integratedProducts" : [{ "appId" : "AMBIENTE", "product" : "RM", "company" : "02", "branch" : "02" } ] } ] } } |
Âncora | ||||
---|---|---|---|---|
|
O método GET /totvseai/monitor/v1/apps/{appID}/transactions?page={page}&perPage={perPage} já criado para o monitor EAI será alterado, e um novo atributo será incluído no JSON:
avaiableVersions - Indica as versões disponíveis para configuração da transação em questão. As diferentes versões disponíveis serão separadas por ";".
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "messages" : [], "length" : 1, "data" : [{ "transactionID" : "order", "version" : "2.000", "supportedMode" : "both_enabled", "enabledMode" : "both_enabled", "allowAnonymous" : false, "includeOriginalMsg" : false "avaiableVersions" : "1.000;1.001" } ] } |
Âncora | ||||
---|---|---|---|---|
|
GET /totvseai/monitor/v1/admin/healthcheck/checktransactions?appID={appid}&transactions={jSON}
Recebe | appID - string - Query param |
transactions - jSON - Query param | |
Retorna | Application/JSON |
Este serviço verifica a integridade da integração de acordo com as transações habilitadas em um aplicativo.
O parâmetro appID informa o aplicativo na origem da requisição. Por exemplo, o monitor quer validar informações colhidas no RM e validar contra estas informações no Protheus. Neste caso, o appID seria RM. O intuito deste parâmetro é poder verificar a consistência das rotas. Caso ele não seja enviado, informações de validações das rotas não serão verificadas.
o parâmetro transactions, opcional, quando enviado fará a consistência de uma transação (adapter) cadastrado em um aplicativo A contra um aplicativo B. A estrutura deste jSON é o mesmo do método GET /totvseai/monitor/v1/apps/{appID}/transactions?page={page}&perPage={perPage}.
O retorno esperado para este método é um outro jSON, que retornará a compatibilidade ou não das transações enviadas x transações no aplicativo.
O envio de jSON é opcional pois existem validações internas que independem do cadastro de outro sistema. Desta forma, se o JSON não for recebido pelo serviço, somente estas validações deverão ser verificadas.
JSON de retorno esperado:
Código reservados de Framework | Definição |
FE005 | A transação recebida não está cadastrada neste destino (o appID foi informado). |
FE006 | A transação recebida não está cadastrada neste destino para recebimento (o appID foi informado e a transação origem está habilitada para envio). |
FE007 | A transação recebida não está cadastrada neste destino para envio(o appID foi informado e a transação origem está habilitada para recebimento) |
F008 | |
. | |
FE008 | |
FW001 | Mensagem cadastrada como assíncrona, mas cadastrada como síncrona no destino. |
FW002 | Mensagem cadastrada como síncrona, mas cadastrada como assíncrona no destino. |
FW003 | Mensagem somente habilitada para eventos de upsert. |
FW004 | Mensagem habilitada somente para eventos de delete. |
FW005 | Mensagem com condição de envio e recebimento habilitada. |
FW006 | Mensagem somente executada em uma filial. |
FI001 | Mensagem com validação de XSD. |
FW002 |
Serviços SOAP - Originados do Monitor EAI para o serviço de EAI do aplicativo
Os serviços SOAP a seguir visam reutilizar os serviços de EAI - Mensagem Única já existentes nos produtos. Eles tem como originador o Monitor Totvs EAI e tem como destino os serviços de EAI dos aplicativos cadastrados.
Verificação de WSDL e autenticação Âncora WsGetStatus WsGetStatus
Serviço que verifica se o servidor do serviço do EAI está disponível.
O serviço irá gerar uma requisição de consulta ao WSDL do serviço do EAI cadastrado para o aplicativo.
GET http://localhost:8080/eaiservice.apw
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?xml version="1.0" encoding="utf-8"?> <!-- Generated 20160927 10:35:39 by ADVPL WSDL Server 1.110216 / Protheus 7.00.131227A-20160909 NG --> <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://www.totvs.com/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://www.totvs.com/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <s:schema elementFormDefault="qualified" targetNamespace="http://www.totvs.com/"> <s:element name="RECEIVEMESSAGE"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="INMSG" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="RECEIVEMESSAGERESPONSE"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="RECEIVEMESSAGERESULT" type="s:string" /> </s:sequence> </s:complexType> </s:element> </s:schema> </types> <message name="RECEIVEMESSAGESOAPIN"> <part name="parameters" element="s0:RECEIVEMESSAGE" /> </message> <message name="RECEIVEMESSAGESOAPOUT"> <part name="parameters" element="s0:RECEIVEMESSAGERESPONSE" /> </message> <portType name="EAISERVICESOAP"> <operation name="RECEIVEMESSAGE"> <documentation>Metodo que recebe mensagens para processamento pelo Microsiga Protheus</documentation> <input message="s0:RECEIVEMESSAGESOAPIN" /> <output message="s0:RECEIVEMESSAGESOAPOUT" /> </operation> </portType> <binding name="EAISERVICESOAP" type="s0:EAISERVICESOAP"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> <operation name="RECEIVEMESSAGE"> <soap:operation soapAction="http://www.totvs.com/RECEIVEMESSAGE" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> </binding> <service name="EAISERVICE"> <documentation><b>Serviço genérico de integração com o Microsiga Protheus via EAI</b></documentation> <port name="EAISERVICESOAP" binding="s0:EAISERVICESOAP"> <soap:address location="http://172.16.32.191:89/pr12_bra/eai/EAISERVICE.apw" /> </port> </service> </definitions> |
Caso seja necessária autenticação no aplicativo destino, a mesma deverá ser enviada no header da requisição, via basic authentication. Para isto será necessário cadastrar o usuário de acesso ao EAI no monitor (o usuário de acesso nem sempre é o usuário logado no monitor).
Âncora | ||||
---|---|---|---|---|
|
Serviço que visa verificar se o aplicativo destino está recebendo requisições normalmente.
POST WhoIS
Este serviço irá realizar o post da Mensagem Única TOTVS WhoIs e irá aguardar o retorno da requisição.
A mensagem única TOTVS espera um código de empresa e filial para mapeamento de integrações. Este empresa e filial será capturada pelo método GET /totvseai/monitor/v1/admin/getcompanies.
O SourceApplication e Product enviados na mensagem serão padronizados como "TOTVSMONITOR". O atributo version da tag Product será enviado com a versão "1.000".
O retorno deste método definirá se o EAI está disponível para recebimento (serviço disponível no ar) e se houve sucesso na autenticação. A verificação será realizada pelo retorno do status da conexão HTTP e pelo retorno da mensagem do tipo ResponseMessage.
Os valores de companyID e branchID são recuperados pelo método GET /totvseai/monitor/v1/admin/companies/{appID}/{companyID}/{branchID}?page={page}&perPage={perPage}
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/"> <soapenv:Header/> <soapenv:Body> <tot:receiveMessage> <tot:inMsg><![CDATA[ <?xml version="1.0" encoding="utf-8"?> <TOTVSMessage> <MessageInformation version="1.000"> <UUID>dee8c4da-1e19-4b44-df97-249443638a9d</UUID> <Type>BusinessMessage</Type> <Transaction>WHOIS</Transaction> <StandardVersion>1.000</StandardVersion> <SourceApplication>TOTVSMONITOR</SourceApplication> <CompanyId>18</CompanyId> <BranchId>D MG 01</BranchId> <Product name="TOTVSMONITOR" version="1.000"></Product> <GeneratedOn>2015-11-26T10:55:23</GeneratedOn> <DeliveryType>Sync</DeliveryType> </MessageInformation> <BusinessMessage> <BusinessRequest> <Operation>WhoIs</Operation> </BusinessRequest> <BusinessContent/> </BusinessMessage> </TOTVSMessage>]]></tot:inMsg> </tot:receiveMessage> </soapenv:Body> </soapenv:Envelope> |
O retorno esperado da Mensagem Única WhoIs deverá ser semelhante ao seguinte:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <RECEIVEMESSAGERESPONSE xmlns="http://www.totvs.com/"> <RECEIVEMESSAGERESULT><?xml version="1.0" encoding="utf-8"?><TOTVSMessage><MessageInformation version="1.001"><UUID>66a7fdd0-ec4d-ac9a-0915-4a0c17a75cd4</UUID><Type>Response</Type><Transaction>WHOIS</Transaction><StandardVersion>1.000</StandardVersion><SourceApplication>PR12_BRA</SourceApplication><CompanyId>18</CompanyId><BranchId>D MG 01 </BranchId><Product name="PROTHEUS" version="12"></Product><GeneratedOn>2016-09-27T17:05:16Z</GeneratedOn><DeliveryType>Sync</DeliveryType></MessageInformation><ResponseMessage><ReceivedMessage><SentBy>TOTVSMONITOR</SentBy><UUID>dee8c4da-1e19-4b44-df97-249443638a9d</UUID><MessageContent><![CDATA[<?xml version="1.0" encoding="utf-8"?><TOTVSMessage><MessageInformation version="1.000"><UUID>dee8c4da-1e19-4b44-df97-249443638a9d</UUID><Type>BusinessMessage</Type><Transaction>WHOIS</Transaction><StandardVersion>1.000</StandardVersion><SourceApplication>TOTVSMONITOR</SourceApplication><CompanyId>18</CompanyId><BranchId>D MG 01</BranchId><Product name="TOTVSMONITOR" version="1.000"></Product><GeneratedOn>2015-11-26T10:55:23</GeneratedOn><DeliveryType>Sync</DeliveryType></MessageInformation><BusinessMessage><BusinessRequest><Operation>WhoIs</Operation></BusinessRequest><BusinessContent></BusinessContent></BusinessMessage></TOTVSMessage>]]></MessageContent></ReceivedMessage><ProcessingInformation><ProcessedOn>2016-09-27T17:05:16Z</ProcessedOn><Status>ok</Status></ProcessingInformation><ReturnContent><EnabledTransactions><Transaction><Name>WHOIS</Name><Version>1.001 </Version><Mode>both_enabled</Mode></Transaction><Transaction><Name>MYMESSAGE</Name><Version>1.000 </Version><Mode>send_enabled</Mode></Transaction><Transaction><Name>COSTCENTER</Name><Version>2.000 </Version><Mode>both_enabled</Mode></Transaction><Transaction><Name>FINANCIALNATURE</Name><Version>2.000 </Version><Mode>both_enabled</Mode></Transaction><Transaction><Name>ACCOUNTRECEIVABLEDOCUMENTDISCHARGE</Name><Version>2.001 </Version><Mode>both_enabled</Mode></Transaction><Transaction><Name>CUSTOMERVENDOR</Name><Version>2.002 </Version><Mode>both_enabled</Mode></Transaction><Transaction><Name>BANK</Name><Version>1.007 </Version><Mode>both_enabled</Mode></Transaction></EnabledTransactions></ReturnContent></ResponseMessage></TOTVSMessage></RECEIVEMESSAGERESULT> </RECEIVEMESSAGERESPONSE> </soap:Body> </soap:Envelope> |
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|