Árvore de páginas

Especificação de Requisitos

Projeto/Versão: PDR_SER_TUR001-P12

Requisito/Módulo: PCREQ-2774/SIGATUR

Sub-Requisito/Função:

Tarefa/Chamado:

País: All

Data Especificação: 28/12/2015

Rotinas Envolvidas

Rotina

Tipo de Operação

Opção de Menu

TMKA070.PRX

Alteração

Atualizações-> Cadastros-> Contatos

TMKI070.PRW

Criação

 

  

Estratégia de Desenvolvimento e Liberação

Produto

Microsiga Protheus

Release que está sendo desenvolvido

Versão 12

Possui Réplica?

( ) Sim  ( X ) Não

Qual a versão?

12.1.7

Integração Front – Contatos

Objetivo


Integrar o cadastro de Contatos do ERP Microsiga Protheus com o sistema de FrontOffice da agência de viagem. A integração possibilitará que os sistemas se comuniquem através de uma Mensagem Única, utilizando o schema XSD da TotvsMessage Contact.

Definição da Regra de Negócio


Os sistemas de FrontOffice da agências de viagem irão se comunicar com o ERP Microsiga Protheus para sincronismo das informações entre as respectivas bases de dados. Para isso, se faz necessária a utilização da tecnologia Enterprise Application Integration (EAI).
Essa comunicação utilizará o padrão SOAP para envio e recebimento de arquivos XML, além de seguir um conjunto de regras definidas para o padrão de Mensagem Única da TOTVS. Os dados que serão sincronizados entre os sistemas integrados estarão contidos no arquivo XML, que deverá estar no padrão definido no esquema da Mensagem Única conforme XSD da TotvsMessage Contact.
Na integração, as mensagens recebidas e enviadas pelo BackOffice serão processadas pelo adapter EAI do respectivo cadastro. O adapter é o responsável por processar essas mensagens e, se estiver configurada, acionar a rotina de integração para inclusão, alteração e/ou exclusão desse cadastro. Por sua vez, essa rotina será responsável por validar e gravar os dados de acordo com a operação que estiver sendo realizada e retornar para o adapter a mensagem de retorno do processamento (êxito ou falha) que, por fim, envia a mensagem de resposta ao sistema requisitante.
A manutenção (inclusão, alteração ou exclusão) de um registro desse cadastro será feita tanto pelo sistema de FrontOffice como pelo BackOffice, replicando os dados mutuamente. Portanto, o sistema de FrontOffice deverá levar em consideração a regra de negócio do cadastro.

Definição Técnica

 

  • A rotina TMKA070 deve ser alterada para realizar a chamada para a rotina TMKI070, que será utilizada para processar a Mensagem Única Contacts . Para isso, deverá ser implementada a função IntegDef que deverá ser "Static", conforme definição da equipe de FrameWork.


Static Function IntegDef( cXML, nTypeTrans, cTypeMessage )
Local aRet := {}
aRet:= TMKI070( cXml, nTypeTrans, cTypeMessage )
Return aRet

  • Desenvolver o fonte TMKI070, que fará todo o tratamento para o envio e recebimento do XML, da seguinte forma:


Function TMKI070 ( cXML, nTypeTrans, cTypeMessage )
Local lRet     := .T.
Local cXMLRet  := ""
If nTypeTrans == TRANS_RECEIVE
If cTypeMessage == EAI_MESSAGE_BUSINESS
          cXMLRet := '<TAGX>TESTE DE RECEPCAO BUSINESS MESSAGE</TAGX>'
ElseIf cTypeMessage == EAI_MESSAGE_RESPONSE
          cXMLRet := '<TAGX>TESTE DE RECEPCAO RESPONSE MESSAGE</TAGX>'
ElseIf cTypeMessage == EAI_MESSAGE_WHOIS
          cXMLRet := ' <Version>1.0 </Version>'
Endif
ElseIf nTypeTrans == TRANS_SEND
     cXMLRet := '<TAGX>TESTE DE ENVIO</TAGX>'
EndIf
Return { lRet, cXMLRet }

  • No fonte TMKI070, deve ser adicionado a diretiva de include para o arquivo FWADAPTEREAI.CH;
  • Microsigra Protheus recebe Mensagem Única:
    • Ao receber a mensagem de negócio (BusinessMessage), o EAI verificará se a rotina TMKA070 está cadastrada no "Adapter EAI" e se a mesma está configurada para o recebimento de mensagem no método AsSíncrono. Caso a rotina esteja cadastrada e configurada corretamente, a função IntegDef deverá chamar a rotina TMKI070 que fará o tratamento do XML recebido, e efetuar a gravação dos dados;
    • No final do processamento, deverá será enviada a mensagem de resposta (ResponseMessage) ao sistema requisitante com o status do processamento e, no caso de sucesso da operação INSERT, o valor da chave da entidade para atualização do respectivo DE/PARA;
  • Microsigra Protheus envia Mensagem Única:
    • Ao ser efetuada uma inclusão, alteração ou exclusão, será disparado um evento que verificará se a rotina TMKA070 está cadastrada no "Adapter EAI" e se a mesma está configurada para o envio de mensagem no método Síncrono. Caso a rotina esteja cadastrada e configurada corretamente, a função IntegDef retornará o XML (BusinessMessage) ao EAI, que o enviará a mensagem ao sistema requisitante;
    • Após o sistema requisitante receber e processar a mensagem, deverá enviar a mensagem de resposta (ResponseMessage) ao Microsiga Protheus com o o status do processamento e, no caso de sucesso da operação INSERT, o valor da chave da entidade para atualização do respectivo DE/PARA;
  • Depois da alteração do fonte TMKA070 e do desenvolvimento do fonte TMKI070, acessar o módulo Configurador e cadastrar o adapter através do menu Ambiente -> Schedule -> Adapter E.a.i da seguinte forma:
    • Mensagem única: Sim;
    • Rotina: TMKA070;
    • Mensagem: Contact;
    • Descrição: Contatos;
    • Envia: Sim;
    • Recebe: Sim;
    • Método: Síncrono;
    • Operação: Todas;
    • Versão Envio: 1.000;
  • A seguir, detalhe dos campos do cadastro de Contatos (tabela SU5) com as respectivas TAGS do TotvsMessage Contact:

 

Tag Superior

TAG

Campo

Observação

BusinessContentType

CompanyId

cEmpAnt

Código da Empresa

BusinessContentType

BranchId

U5_FILIAL

Código da Filial

BusinessContentType

CompanyIternalId

 

InternalId da chave Empresa+Filial

BusinessContentType

Code

U5_CODCONT

Código

BusinessContentType

InternalId

 

InternalId do Contato

BusinessContentType

Name

U5_CONTAT

Nome do Contato

BusinessContentType

GovernmentalInformation

Id

Lista de informações governamentais

GovernmentalInformationType

Id name="CPF" scope="Federal"

U5_CPF

Numero do CPF

BusinessContentType

Address

 

Lista contendo dados de endereço

AddressType

Address

U5_END

Endereço do contato

AddressType

City

 

Lista contendo os dados de cidade

CityType

CityCode

U5_MUN

Código da Cidade

CityType

CityInternalId

U5_MUN

InternalId da cidade

CityType

CityDescription

CC2_MUN

nome da cidade POSICIONE("CC2",1,xFilial("CC2")+SU5->U5_EST+SU5->U5_MUN,"CC2_MUN")

AddressType

District

U5_BAIRRO

Bairro do contato

AddressType

State

 

Lista contendo os dados de estado

StateType

StateCode

U5_EST

Código do estado

StateType

StateInternalId

U5_EST

InternalId do estado

StateType

StateDescription

X5_DESCRI

Nome do estadoPOSICIONE("SX5",1,xFilial("SX5")+"12"+SU5->U5_EST,"X5_DESCRI")

AddressType

Country

 

Lista contendo os dados do País

CountryType

CountryCode

U5_PAIS

Código do País

CountryType

CountryInternalId

U5_PAIS

InternalId do País

AddressType

ZIPCode

U5_CEP

Cep do contato

BusinessContentType

ListOfCommunicationInformation

 

Lista contendo dados de comunicação

ListOfCommunicationInformationType

CommunicationInformation

 

 

CommunicationInformationType

Type

 

Tipo de Telefone("1" - Comercial / "2" - Residencial / "3" - Fax Comercial / "4" - Fax Residencial / "5" - Celular)

CommunicationInformationType

PhoneNumber

U5_CODPAIS + U5_DDD + (U5_FONE / U5_FCOM1 / U5_CELULAR)

Numero do telefone

CommunicationInformationType

HomePage

U5_URL

Site

CommunicationInformationType

Email

U5_EMAIL

E-mail do contato

BusinessContentType

Treatment

U5_TRATA

Tratamento do Contato (SX5)

BusinessContentType

Gender

U5_SEXO

Genêro (1- Masculino, 2 - Feminino)

BusinessContentType

Birthday

U5_NIVER

Data de Nascimento

BusinessContentType

Requester

U5_SOLICTE

Solicitante ? ( "1"-Sim / "2"-Não )

BusinessContentType

Situation

U5_MSBLQL

Situação? ( "1"-Sim / "2"-Não )




Fluxo do Processo



Protótipo de Tela (Figuras meramente ilustrativas)



Browser do cadastro de Adpater E.a.i

Formulário de Cadastro do Adapter E.a.i – TMKA070