Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico |
---|
Informações Gerais
Especificação | |||
Produto | Datasul | Módulo | EAI |
Segmento Executor | Tecnologia | ||
Projeto1 | PDR_LD_FRW001 | IRM1 | PCREQ-9836 |
Requisito1 | PCREQ-10303 | 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).
Objetivo
Este desenvolvimento visa possibilitar a descoberta dos cadastros e serviços expostos pelo Datasul para utilização via Mensageria TOTVS. Para isso, o serviço Whois, que faz parte da implementação da Mensagem Única TOTVS, será adequado para fornecer também o nome das DBOs e APIs disponíveis.
O serviço Whois é utilizado para registro de aplicativos externos na configuração do EAI. Através dele é possível saber quais as transações disponíveis no aplicativo em processo de cadastramento, sua versão e em qual "sentido" elas operam (Envio, Recebimento ou Ambos).
Definição da Regra de Negócio
Para permitir relacionar os objetos de negócio (cadastros e serviços) disponíveis no aplicativo destino, a transação Whois será alterada, passando à versão 1.001. Nesta versão, será incluída a tag <RequestType> com o atributo "BusinessObjectOnly", de tipo "booleano", no BusinessContent da mensagem.
Abaixo, segue o XSD com as alterações citadas.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:include schemaLocation="../totvsmsg.xsd"></xs:include> <xs:complexType name="BusinessContentType"> <xs:sequence> <xs:element name="RequestType" minOccurs="0"> <xs:complexType> <xs:attribute name="BusinessObjectOnly" default="false"> <xs:simpleType> <xs:restriction base="xs:boolean"> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType></xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="ReturnContentType"> <xs:sequence> <xs:element name="EnabledTransactions" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="Transaction" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:all> <xs:element name="Name" minOccurs="1" type="xs:string"> </xs:element> <xs:element name="BusinessObject" type="xs:string" minOccurs="0"> </xs:element> <xs:element name="Version" type="xs:string" minOccurs="0"> </xs:element> <xs:element name="Mode" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="SEND_ENABLED"> </xs:enumeration> <xs:enumeration value="RECEIVE_ENABLED"> </xs:enumeration> <xs:enumeration value="BOTH_ENABLED"> </xs:enumeration> <xs:enumeration value="send_enabled"> </xs:enumeration> <xs:enumeration value="receive_enabled"> </xs:enumeration> <xs:enumeration value="both_enabled"> </xs:enumeration> </xs:restriction> </xs:simpleType> </xs:element> </xs:all> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:element name="BusinessContent" type="BusinessContentType" substitutionGroup="AbstractBusinessContent"></xs:element> <xs:element name="ReturnContent" type="ReturnContentType" substitutionGroup="AbstractReturnContent"></xs:element> </xs:schema>
O conteúdo a retornar será determinado conforme abaixo.
RequestType | BusinessObjectOnly | Retorno |
Ausente | N/A | Transações de Mensagem Única e objetos de negócio. |
Presente | false | Transações de Mensagem Única e objetos de negócio. |
Presente | true | Objetos de negócio (Mensageria TOTVS) apenas. |
A transação Whois, na versão 1.000, manterá seu comportamento e retornará somente transações de Mensagem Única. Os objetos de negócio que eventualmente estiverem disponíveis não serão retornados.
Em relação à nova tag <BusinessObject>, adicionada no ReturnContent, a mesma não será incluída no retorno da mensagem Whois 1.001, já que o conteúdo seria o mesmo da tag <Name>. Isso contribui para redução na quantidade de dados trafegado entre os aplicativos.
Para dar suporte à nova versão do Whois, será desenvolvido um novo adapter - WhoisAdapter1001 - para gerar o retorno conforme esperado. Adicionalmente, o adapter atual - WhoisAdapter - será adequado para não retornar os objetos de negócio relacionados à Mensageria TOTVS, os quais são identificados com o prefixo "MT_" no nome da classe informada no registro da transação (ver no item Outros, da seção Informações Gerais deste documento).
O novo adapter fará uso da classe helper correspondente a transação Whois 1.001, logo o arquivo XSD que define a transação deve estar no repositório de mensagens únicas TOTVSMSGXML.
O Engine do EAI no Datasul também deve ser alterado para permitir a utilização do novo adapter. Neste contexto, deve-se estar atento ao parâmetro "multiVersionSupport", informado na aba "Outras Opções" da tela de configuração do aplicativo interno (ou hospedeiro) do TOTVS Monitor, aba EAI2. Este parâmetro determinará qual adapter de Whois tratará as mensagens recebidas.
multiVersionSupport | Whois recebido | Adapter usado |
Ligado | 1.000 | WhoisAdapter |
Ligado | 1.001 | WhoisAdapter1001 |
Desligado | 1.000 | WhoisAdapter1001 |
Desligado | 1.001 | WhoisAdapter1001 |
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico |
---|