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

PDR_LD_FRW001-235

País

(  ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   ( x ) TODOS

Outros

Especificação PCREQ-9845 - getSchema

   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.

RequestTypeBusinessObjectOnlyRetorno
AusenteN/ATransações de Mensagem Única e objetos de negócio.
PresentefalseTransações de Mensagem Única e objetos de negócio.
PresentetrueObjetos 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.

multiVersionSupportWhois recebidoAdapter usado
Ligado1.000WhoisAdapter
Ligado1.001WhoisAdapter1001
Desligado1.000WhoisAdapter1001
Desligado1.001WhoisAdapter1001

 

 

Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))