Á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: 31/08/2015

Rotinas Envolvidas

Rotina

Tipo de Operação

Opção de Menu

TURA007.PRW

Alteração

Atualizações-> Cadastros-> Agentes de Viagem

TURI007.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 – Agentes de Viagem

Objetivo


Integrar o cadastro de Agentes de Viagem 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 TravelAgent.

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

  • Acrescentar os campos G3H_MSBLQL e G3I_MSBLQL nas respectivas tabelas G3H e G3I, conforme dicionário de dados abaixo;
  • Alterar os Campos: G3H_TPATCO, G3H_TPATEV e G3H_TPATLZ, para inicializarem com "1 – Todos" conforme Dicionário de Dados Abaixo;
  • Desenvolver o fonte TURI007, que fará todo o tratamento para o envio e recebimento do XML, da seguinte forma:


Function TURI007 ( 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 TURI007, 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 TURA007 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 TURI007 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 TURA007 está cadastrada no "Adapter EAI" e se a mesma está configurada para o envio de mensagem no método Assí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;
    • Quando o campo G3H_TPATCO == "1=Todos", indica que o Agente poderá atender em todos os Postos de Atendimento para o Segmento Corporativo. Por isso, não será enviado nenhum registro na lista de itens ListOfServiceStation, pois todos os postos de atendimento cadastrados com o campo Tipo de Segmento Corporativo preenchido poderá ser utilizado. Quando o campo G3H_ TPATCO == "2=Listados", enviar apenas os postos relacinados e quando o campo G3H_ TPATCO == "3=Nenhum", não enviar relacionamento;
    • Quando o campo G3H_TPATEV == "1=Todos", indica que o Agente poderá atender em todos os Postos de Atendimento para o Segmento Corporativo. Por isso, não será enviado nenhum registro na lista de itens ListOfServiceStation, pois todos os postos de atendimento cadastrados com o campo Tipo de Segmento Eventos preenchido poderá ser utilizado. Quando o campo G3H_TPATEV == "2=Listados", enviar apenas os postos relacinados e quando o campo G3H_TPATEV == "3=Nenhum", não enviar relacionamento;
    • Quando o campo G3H_TPATLZ == "1=Todos", indica que o Agente poderá atender em todos os Postos de Atendimento para o Segmento Corporativo. Por isso, não será enviado nenhum registro na lista de itens ListOfServiceStation, pois todos os postos de atendimento cadastrados com o campo Tipo de Segmento Lazer preenchido poderá ser utilizado. Quando o campo G3H_ TPATLZ == "2=Listados", enviar apenas os postos relacinados e quando o campo G3H_ TPATLZ == "3=Nenhum", não enviar relacionamento;
    • 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;
    • Para gravação do DE/PARA, deverá seguir a seguinte estrutura:

<ReturnContent>
<ListOfInternalId>
<InternalId>
<Name>TravelAgent</Name>
<Origin>99|01|000001</Origin> 
<Destination>99|02|000001</Destination>
</InternalId>
</ListOfInternalId>
</ReturnContent>

  • Depois da alteração do fonte TURA007 e do desenvolvimento do fonte TURI007, 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: TURA007;
    • Mensagem: TravelAgent;
    • Descrição: Agentes de Viagem;
    • Envia: Sim;
    • Recebe: Sim;
    • Método: Assíncrono;
    • Operação: Todas;
    • Versão Envio: 1.000;
  • A seguir, detalhe dos campos do cadastro de Agentes de Viagem (tabela G3H e G3I) com as respectivas TAGS do TotvsMessage TravelAgent:

 

Tag Superior

TAG

Campo

Observação

BusinessContentType

CompanyId

 

Código da Empresa

BusinessContentType

BranchId

G3H_FILIAL

Código da Filial

BusinessContentType

CompanyIternalId

 

InternalId da chave Empresa+Filial

BusinessContentType

Code

G3H _CODAGE

Código

BusinessContentType

InternalId

 

InternalId do Agente

BusinessContentType

Name

G3H_NOMEAG

Descrição

BusinessContentType

TypeOfAgent

G3H_TIPO

Tipo do Agente ( 1-Consultor / 2-Promotor / 3-Gerente / 4-Supervisor )

BusinessContentType

IntegrationCode

G3H_INTEGR

Código de integração do agente com o sistema de Front Office da agência.

BusinessContentType

TypeOfAttendanceCorporate

G3H_TPATCO

Postos de Atendimento que o Agente atenderá no Segmento Corporativo ( 1-Todos / 2-Listados / 3-Nenhum )

BusinessContentType

TypeOfAttendanceEvent

G3H_TPATEV

Postos de Atendimento que o Agente atenderá no Segmento Evento ( 1-Todos / 2-Listados / 3-Nenhum )

BusinessContentType

TypeOfAttendanceRecreation

G3H_TPATLZ

Postos de Atendimento que o Agente atenderá no Segmento Lazer ( 1-Todos / 2-Listados / 3-Nenhum )

BusinessContentType

Situation

G3H_MSBLQL

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

BusinessContentType

ListOfServiceStation

 

Lista de Postos de Atendimento

ServiceStationType

ServiceStationCode

G3I_POSTO

Código do Posto de Atendimento

ServiceStationType

ServiceStationSegment

G3I_ SEGMEN

Segmento do Posto de Atendimento
( 1-Corporativo / 2-Evento / 3-Lazer )

ServiceStationType

ServiceStationInternalId

 

InternalId do Posto de Atendimento
G3I_POSTO







DICIONÁRIO DE DADOS

  • Arquivo SX3 – Campos da Tabela

    Campo

    G3H_MSBLQL

    Tipo

    C

    Tamanho

    1

    Contexto

    Real

    Propriedade

    Alterar

    Descrição

    Registro Bloqueado?

    Título

    Bloqueado

    Help de Campo

    Define se registro está bloqueado ou não.

    Obrigatório

    Sim

    Usado

    Sim

    Browser

    Não

    Combo

    1=Sim;2=Não

    Validação

    Pertence("12")

    Inic. Padrão

    "2"

    Campo

    G3H_TPATCO

    Inic. Padrão

    "1"

    Campo

    G3H_TPATEV

    Inic. Padrão

    "1"

    Campo

    G3H_TPATLZ

    Inic. Padrão

    "1"

     

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