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.


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