Á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: 11/09/2015

Rotinas Envolvidas

Rotina

Tipo de Operação

Opção de Menu

TURA006.PRW

Alteração

Atualizações-> Cadastros-> Entidades Adicionais

TURI006.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 – Entidades Adicionais

Objetivo


Integrar o cadastro de Entidades Adicionais 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 AdditionalEntity.

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 AdditionalEntity.
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 TURA006 deve ser alterada para realizar a chamada para a rotina TURI006, que será utilizada para processar a Mensagem Única AdditionalEntity. 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:= TURI006( cXml, nTypeTrans, cTypeMessage )
Return aRet

  • Acrescentar o campo G3F_LISTA na tabela G3F, conforme dicionário de dados abaixo;
  • Desenvolver o fonte TURI006, que fará todo o tratamento para o envio e recebimento do XML, da seguinte forma:


Function TURI006 ( 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 }

  • Microsigra Protheus recebe Mensagem Única:
    • Ao receber a mensagem de negócio (BusinessMessage), o EAI verificará se a rotina TURA006 está cadastrada no "Adapter EAI" e se a mesma está configurada para o recebimento de mensagem no método Síncrono. Caso a rotina esteja cadastrada e configurada corretamente, a função IntegDef deverá chamar a rotina TURI006 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 TURA006 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 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;
    • Por ser um cadastro de cabeçalho e itens, na mensagem de retorno, o bloco (ReturnContent), onde são informadas as InternalId para gravação do DE/PARA, deverá seguir a seguinte estrutura:

<ReturnContent>
<ListOfInternalId>
<InternalId>
<Name>AdditionalEntity</Name>
<Origin>99|01|000001</Origin> 
<Destination>99|02|000001</Destination>
</InternalId>
<InternalId>
<Name>AdditionalEntitiesItem</Name>
<Origin>99|01|000001|01</Origin>
<Destination>99|02|000001|01</Destination>
</InternalId>
<InternalId>
<Name>AdditionalEntitiesItem</Name>
<Origin>99|01|000001|ZZ</Origin>
<Destination>99|02|000001|ZZ</Destination>
</InternalId>
</ListOfInternalId>
</ReturnContent>

  • Depois da alteração do fonte TURA006 e do desenvolvimento do fonte TURI006, 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: TURA006;
    • Mensagem: AdditionalEntity;
    • Descrição: Entidades Adicionais;
    • Envia: Sim;
    • Recebe: Sim;
    • Método: Síncrono;
    • Operação: Todas;
    • Versão Envio: 1.000;
  • A seguir, detalhe dos campos do cadastro de Entidades Adicionais (tabelas G8Q e G8R) com as respectivas TAGS do TotvsMessage AdditionalEntity:


Tabela G3F – Cabeçalho (BusinessContent)

TAG

Campo

Observação

CompanyId

cEmpAnt

Código da Empresa

BranchId

G3F_FILIAL

Código da Filial

CompanyIternalId

 

InternalId da chave Empresa+Filial

CustomerCode

G3F_CODCLI + G3F_LOJA

Código do Cliente

CustomerInternalId

 

InternalId do Cliente

AdditionalEntityTypeCode

G3F_TIPO

Código do Tipo da Entidade

AdditionalEntityTypeInternalId

 

Internalid Do Tipo Da Entidade

InternalId

cEmpAnt + G3F_FILIAL + G3F_CODCLI + G3F_LOJA + G3F_TIPO

InternalId do cabeçalho

Share

G3F_COMPAR

Compartilha entre Lojas?( "1"-Sim / "2"-Não )

Required

G3F_OBRIGA

Determina se o preenchimento da entidade é obrigatório ( "1"-Sim / "2"-Não )

Mask

G3F_MASCAR

Máscara de Apresentação

Validate

G3F_VALIDA

Define se haverá validação nopreenchimento das entidades. Caso este campo esteja como "não", o sistema não validará a pré-existência do valor informado

Corporate

G3F_CORP

Entidade Adicional no Corporativo ( "1"-Sim / "2"-Não )

Events

G3F_EVENTO

Entidade Adicional no Eventos ( "1"-Sim / "2"-Não )

Recreation

G3F_LAZER

Entidade Adicional no Lazer ( "1"-Sim / "2"-Não )

Situation

G3F_MSBLQL

Bloqueado ( "1"-Sim / "2"-Não )

ListOfAdditionalEntities

AdditionalEntities

Lista de Itens da Entidade Adicional (vide seção abaixo)


Tabela G3G – Itens (AdditionalEntities)

TAG

Campo

Observação

ItemCode

G3G_ITEM

Código do item Entidade adicional

ItemInternalId

cEmpAnt + G3F_FILIAL + G3F_CODCLI + G3F_LOJA + G3F_TIPO + G3G_ITEM

InternalId da Entidade Adicional

Description

G3G_DESCR

Descrição da entidade Adicional


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 – TURA006