Á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

TURA019.PRW

Alteração

Atualizações-> Cadastros-> Complemento de Fornecedor

TURI019.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 – Complemento de Fornecedor

Objetivo


Integrar o cadastro de Complemento de Fornecedor 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 TravelVendor.

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 TravelVendor.
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

 

  • Para que a integração funcione, o compartilhamento da tabela G4R deve ser idêntico ao da tabela SA2;
  • A rotina TURA019 deve ser alterada para realizar a chamada para a rotina TURI019, que será utilizada para processar a Mensagem Única TravelVendor. 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:= TURI019( cXml, nTypeTrans, cTypeMessage )
Return aRet

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


Function TURI019 ( 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 TURI019, deve ser adicionado a diretiva de include para o arquivo FWADAPTEREAI.CH;
  • 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 TURA019 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 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>TravelVendor</Name>
<Origin>99|01|FORNEC|01</Origin>
<Destination>99|02|FORNEC|01</Destination>
</InternalId>
<InternalId>
<Name>BrokerSystems</Name>
<Origin>99|01|FORNEC|01|00001</Origin>
<Destination>99|02|FORNEC|01|0012</Destination>
</InternalId>
<InternalId>
<Name>Family</Name>
<Origin>99|01|FORNEC|01|00005</Origin>
<Destination>99|02|FORNEC|01|0007</Destination>
</InternalId>
<InternalId>
<Name>PaymentForm</Name>
<Origin>99|01|FORNEC|01|00005|00001</Origin>
<Destination>99|02|FORNEC|01|0007|00001</Destination>
</InternalId>
</ListOfInternalId>
</ReturnContent>

    • A TAG ListOfBrokerSystems é uma lista de itens que deverá ser preenchida com os Sistemas de Broker relacionados ao Compl. de Fornecedor posicionado e, para isso, utilizar a tabela G8L;
    • A TAG ListOfFamily é uma lista de itens que deverá ser preenchida com os Grupos de Produto relacionados ao Compl. de Fornecedor posicionado e, para isso, utilizar a tabela G4T. Para cada Grupo de Produto encontrado fazer o seguinte:
      • Preencher as respectivas TAG's dos campos G4T_GRUPO, G4T_REEMB, G4T_PRAZO e G4T_TIPO, como informado abaixo;
      • Preencher a TAG ListOfPaymentForm, que é uma lista de itens e que deverá ser preenchida com as Formas de Pagamento de duas formas distintas. A saber:
        1. Preencher com as Formas de Pagamento relacionadas ao Grupo de Produto posicionado, através da tabela G3K. Para cada Forma de Pagamento encontrada, verificar se ela está relacionado ao Compl. do Fornecedor posicionado através da tabela G4U:
          • Em caso afirmativo, se o campo G4U_TIPO == 1 a Forma de Pagamento foi restringinda e NÃO deve ser gravada na lista;
          • Em caso negativo, a Forma de Pagamento pode ser gravada na lista;
        2. Preencher com as Formas de Pagamento relacionadas ao Compl. do Fornecedor posicionado através da tabela G4U. Para cada Forma de Pagamento encontrada, verificar se o campo G4U_TIPO == 2 e, em caso afirmativo, ela pode ser gravada na lista;
  • Depois da alteração do fonte TURA019 e do desenvolvimento do fonte TURI019, 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: TURA019;
    • Mensagem: TravelVendor;
    • Descrição: Complemento de Fornecedor;
    • Envia: Sim;
    • Recebe: Sim;
    • Método: Síncrono;
    • Operação: Todas;
    • Versão Envio: 1.000;
  • A seguir, detalhe dos campos do cadastro de Complemento de Fornecedor com as respectivas TAGS do TotvsMessage TravelVendor:

 

Tag Superior

TAG

Campo

Observação

BusinessContentType

CompanyId

 

Código da Empresa

BusinessContentType

BranchId

G4R_FILIAL

Código da Filial

BusinessContentType

CompanyIternalId

 

InternalId da chave Empresa+Filial

BusinessContentType

VendorCode

G4R_FORNEC+G4R_LOJA

Código do Fornecedor

BusinessContentType

VendorInternalId

 

InternalId do Fornecedor

BusinessContentType

Type

G4S_TIPO

Tipo de Fornecedor

  1. Cia Aérea
  2. Hotel
  3. Locadora de Veículos
  4. Cia Marítima
  5. Cia Rodoviária
  6. Eventos
  7. Outros

BusinessContentType

ReportingVendor

G4S_REPORTE

Fornecedor de Reporte
( "1"-Sim / "2"-Não )

BusinessContentType

BSPVendor

G4S_BSP

Fornecedor vinculado ao BSP
( "1"-Sim / "2"-Não )

BusinessContentType

IATA

G4S_IATA

Número IATA

BusinessContentType

ShortIATA

G4S_ABIATA

Abreviação do Número IATA

BusinessContentType

ListOfComunicationInformation

ComunicationInformation

Lista de Dados de comunicação

ComunicationInformation
Type

PhoneNumber

G4S_FONE

Telefone do Departamento de Reserva

ComunicationInformation
Type

FaxNumber

G4S_FAX

Fax do Departamento de Reserva

ComunicationInformation
Type

Email

G4S_EMAIL

Email do Departamento de Reserva

BusinessContentType

Situation

G4R_MSBLQL

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

BusinessContentType

ListOfBrokerSystems

 

Lista de Sistemas Broker

BrokerSystemsType

BrokerSystemCode

G8L_CODSIS

Código do Sistema Broker

BrokerSystemsType

BrokerSystemInternalId

 

InternalId do Sistema Broker

BrokerSystemsType

BrokerCode

G8L_CODGDS

Código do Fornecedor relacionado ao Sistemas de Broker

BusinessContentType

ListOfFamily

 

Lista de Grupos de Produto

FamilyType

FamilyCode

G4T_GRUPO

Código do Grupo de Produto

FamilyType

FamilyInternalId

 

InternalId do Grupo de Produto

FamilyType

Refund

G4T_REEMB

Indica se o Fornecedor oferece reembolso para o Grupo de Produto
( "1"-Sim / "2"-Não )

FamilyType

Deadline

G4T_PRAZO

Prazo para solicitação do Reembolso

FamilyType

DeadlineType

G4T_TIPO

Tipo de Prazo
( "1"-Dia / "2"-Mês / "3"-Ano )

FamilyType

ListOfPaymentForm

 

Lista de Formas de Pagamento

PaymentFormType

PaymentFormCode

G3K_CODFOP / G4U_FOP

Código da Forma de Pagamento

PaymentFormType

PaymentFormInternalId

 

InternalID da Forma de Pagamento

PaymentFormType

Destination

G3K_DEST / G4U_DESTIN

Tipo de Destino liberado para utilizar a Forma de Pagamento
( "1"-Internacional / "2"-Nacional / "3"-Ambos )

PaymentFormType

EntityType

G3K_PESSOA / G4U_TIPCLI

Tipo de Pessoa que poderá utilizar a Forma de Pagamento
( "1"-Pessoa Jurídica / "2"-Pessoa Física )

 

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