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: 01/09/2015 |
Rotinas Envolvidas | ||
Rotina | Tipo de Operação | Opção de Menu |
MATI035.PRW | Alteraçã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 – Grupos de Produto
Objetivo
Integrar o cadastro de Grupos de Produto 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 Family.
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 Family.
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
- Alterar o fonte MATI035 e acrescentar a função v3000, que fará todo o tratamento para o envio e recebimento do XML, da seguinte forma:
- Acrescentar o campo BM_MSBLQL na tabela SBM, conforme dicionário de dados abaixo;
- Exemplo de como deverá ser estruturada a função v3000:
Function v3000 ( 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 envia Mensagem Única:
- Ao ser efetuada uma inclusão, alteração ou exclusão, será disparado um evento que verificará se a rotina MATA035 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;
- 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;
- Microsigra Protheus recebe Mensagem Única:
- Ao receber a mensagem de negócio (BusinessMessage), o EAI verificará se a rotina MATA035 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 MATI035 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;
- 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>Family</Name>
<Origin>99|01|000001</Origin>
<Destination>99|02|000001</Destination>
</InternalId>
<InternalId>
<Name>PaymentForm</Name>
<Origin>99|01|000001|000001</Origin>
<Destination>99|02|000001|000001</Destination>
</InternalId>
<InternalId>
<Name>PaymentForm</Name>
<Origin>99|01|000001|ZZZZZZ</Origin>
<Destination>99|02|000001|ZZZZZZ</Destination>
</InternalId>
</ListOfInternalId>
</ReturnContent>
- Depois da alteração do fonte MATI035, 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: MATA035;
- Mensagem: Family;
- Descrição: Grupos de Produto;
- Envia: Sim;
- Recebe: Não;
- Método: Assíncrono;
- Condição: BM_CLASGRU == "4-Turismo";
- Operação: Todas;
- Versão Envio: 2.002;
- A seguir, detalhe dos campos do cadastro de Grupos de Produto (tabela SBM) com as respectivas TAGS do TotvsMessage Family:
Tag Superior | TAG | Campo | Observação |
BusinessContentType | CompanyId |
| Código da Empresa |
BusinessContentType | BranchId | BM_FILIAL | Código da Filial |
BusinessContentType | CompanyIternalId |
| InternalId da chave Empresa+Filial |
BusinessContentType | Code | BM_CODIGO | Código |
BusinessContentType | InternalId |
| InternalId do Grupo de Produto |
BusinessContentType | Description | BM_DESC | Descrição |
BusinessContentType | FamilyType | BM_ BM_TIPGRU | Tipo da Familia do Grupo |
BusinessContentType | FamilyClassificationCode | BM_CLASGRU | Classificação da Familia de Materiais |
BusinessContentType | TourismType | BM_CODGRT | Tipo do Grupo de Produto |
BusinessContentType | Conciliation | BM_CONC | Exige Conciliação? |
BusinessContentType | SegmentType | BM_TPSEGP | Tipo de Segmento |
BusinessContentType | Corporate | BM_CORP | Corporativo ( "1"-Sim / "2"-Não ) |
BusinessContentType | Event | BM_EVENTO | Eventos ( "1"-Sim / "2"-Não ) |
BusinessContentType | Recreation | BM_LAZER | Lazer ( "1"-Sim / "2"-Não ) |
BusinessContentType | Situation | BM_MSBLQL | Bloqueado ( "1"-Sim / "2"-Não ) |
BusinessContentType | ListOfPaymentForm |
|
|
PaymentFormType | PaymentFormCode | G3K_CODFOP | Código da Forma de Pagamento |
PaymentFormType | PaymentFormInternalId |
| InternalId da Forma de Pagamento |
PaymentFormType | Destination | G3K_DEST | Destino |
PaymentFormType | Person | G3K_PESSOA | Tipo de Pessoa |
DICIONÁRIO DE DADOS
Arquivo SX3 – Campos da Tabela
Campo
BM_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"
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 – MATA035