Conceito:


Durante o processo de consolidação de marcas, iniciado pela TOTVS, várias empresas diferentes foram adquiridas e com elas vários produtos passaram a compor o portfólio de ofertas disponível aos clientes. Esta expansão de ofertas permitiu que clientes de uma marca, antes limitados pelas opções com aquela “etiqueta”, pudesse agora compor o seu ambiente de TI utilizando produtos de origens diferentes (Ex.: BackOffice Protheus + TOTVS Obras e Projetos).

Com o objetivo de padronizar a integrações com os produtos TOTVS, foi definida uma nova diretriz para os projetos de integração: todos os produtos TOTVS devem se comunicar com uma mensagem XML única, evitando desta forma o processo de transformação de mensagens. Neste cenário, teríamos o seguinte quadro: 

  


Neste cenário, qualquer produto TOTVS trabalhará com o mesmo XML para uma mesma entidade, ou seja, supondo que tenhamos um XML correspondente à mensagem de CLIENTES, ela poderá ser enviada para qualquer um dos produtos que suporte o recebimento desta entidade.

Uma vez que os vários produtos TOTVS terão um “idioma” comum (o XML Único), as integrações entre estes produtos não exigirão mais que as mensagens sejam transformadas de um formato para outro. Com isto, será possível conectar diretamente dois produtos, sem a necessidade do TOTVS ESB, como no diagrama abaixo:



Tabelas:


XXFDe/Para no banco de dados 
XX3Transações EAI
XX4Adapters EAI

Adapters: 


Os Adapters são responsáveis por realizar o processamento das mensagens enviadas e recebidas, possibilitando a inclusão, alteração e exclusão de dados. Veja a Lista Completa dos Adapters utilizados na integração  EAI  (Enterprise Application Integration).


Veja o vídeo do processo de cadastro do Adapter em: 01. Cadastro do Adapter


 As integrações via Mensagem Única propõem dois modelos de envio e recebimento de mensagens: 

Síncronas:  No modelo de mensagens Síncronas a mensagem é enviada e o sistema que enviou aguarda o processamento da mensagem pelo receptor.
Assíncronas:   Já no modelo Assíncrono a mensagem é enviada e o sistema que a enviou não aguarda o seu processamento. Posteriormente a mensagem será processada no receptor.


O modelo de mensagem que será utilizado na integração deve ser avaliado com muito cuidado. Apesar do modelo síncrono parecer o mais adequado para uma integração, isto não é de todo verdade. Em um modelo síncrono deve ser levado em consideração o tempo de processamento: O processamento do sistema que envia, a velocidade do trânsito de dados da rede e o tempo de processamento e resposta do receptor. Isto pode acarretar um tempo de resposta ao usuário muito maior do que o normal, o que pode transformar a integração de solução ao problema. Já o modelo assíncrono, por não aguardar o retorno do processamento do receptor torna o processo mais rápido, porém, neste modelo de mensagem deve-se levar em consideração que o dado será gravado no sistema que envia a mensagem e que o processamento no receptor ocorrerá posteriormente. Desta maneira, em algumas situações os dados irão existir no sistema de envio, mas enquanto não forem processados no receptor eles não existirão lá.

De/Para de Empresas/Filiais : 

O Cadastro de De/Para de empresas/filiais irá definir quais empresas e filiais serão integradas entre os dois sistemas.


Veja o vídeo do processo de cadastro do De/Para de Empresas/Filiais: 02. De Para de Empresas Filiais


No XML é necessário identificar a Aplicação de Origem, a Empresa e a Filial para cadastrar o De/Para. As tags a serem verificadas são:

  • SourceApplication = Aplicação de Origem (XXD_REFER)
  • CompanyId = Empresa (XXD_COMPA)
  • BranchId = Filial (XXD_BRANCH)

De/Para de Mensagem Única (XXF): 

Na maioria das vezes, os códigos dos registros utilizados nos sistemas que se comunicam via Mensagem Única não são os mesmos, a XXF é a tabela que ira guardar os códigos para relacionar os registros, por exemplo um cliente pode possuir o código  no Protheus, e no RM esse mesmo cliente possui o código C0100001. Por isso o sistema realiza o cadastro de um "De/Para de Mensagem Única"


Ao realizar a inclusão de um cadastro, o sistema verifica se já existe um "De/Para de Mensagem Única", caso já exista, o sistema entende que trata-se de uma alteração, caso não exista, trata-se de uma inclusão, então ele cria automaticamente o "De/Para de Mensagem Única" (XXF).

Caso trate-se de uma inclusão que referencia códigos de outros cadastros, esses códigos necessitam de um "De/Para de Mensagem Única", por exemplo, ao incluir um pedido você precisa referenciar um código de Produto e um código de cliente, mas, nesse momento, você não está incluindo o cliente ou o produto, você está incluindo o Pedido, portanto o cliente e o produto precisam ter um "De/Para de Mensagem Única" (XXF) cadastrado. 


O cadastro está localizado: configurador/Ambiente/DE/PARA Msg. única

Ferramenta Soap: 

É uma ferramenta de mercado onde conseguimos realizar testes de Web Service. Utilizamos o Soap para integrar o XML gerado por um ERP(RM/Logix) e enviar para o Protheus.

Link para baixar o Soap: https://www.soapui.org/downloads/latest-release/


Integração WS protheus X Soap Ui:

No Ini do Appserver, busque o caminho do WS.

WEBSERVICELOCATION=http://localhost:92/ws

Acesse o WS via browser

Busque o EAISERVICE , e clique sobre.

Clique sobre a descrição do serviço;


Copie o endereço do .


Abra o Soap UI - Clique em File - New SOAP Project




Cole o endereço do WSDL no campo Initial WSDL, clique em OK.

Pronto o Soap está integrado com o Web Service do Protheus. 

 


Cole o XML entre as seguintes Tags:


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
<soapenv:Header/>
<soapenv:Body>
<tot:RECEIVEMESSAGE>
<tot:INMSG>
<![CDATA[

Cole aqui o XML

]]>

</tot:INMSG>
</tot:RECEIVEMESSAGE>
</soapenv:Body>
</soapenv:Envelope>


  • A seguinte Tag tem que ser acrescentada:

<![CDATA[

]]>


  • Não esqueça de salvar o Novo Projeto, caso feche o sistema perde inclusive a integração.





Parâmetros: 

  • MV_EAIMETH (não deve ser alterado)
  • MV_EAIUSER
  • MV_EAIPASS
  • MV_EAIURL2 (Endereço do WS para comunicação) - Podemos informar a Rota da integração neste parâmetro ou através da rotina CFGA020.  Saiba mais:  Roteamento EAI Protheus (CFGA020 - SIGACFG)
  • MV_EAIWS(Não Precisa ser alterado). 


Principais parâmetros da Integração RM TOP X Protheus:

A integração do Top RM com o Protheus envolve o módulo Gestão de Projetos (SIGAPMS), neste módulo não é necessário realizar alguns cadastros de De/Para na XXF e sim configurar alguns parâmetros. 

Segue a baixo a lista dos parâmetros que envolve as integrações deste módulo:

Link: Parâmetros da Integração


Fontes de Integração:

Todos os fontes de integração contém a letra " I", exemplos:

Cadastro de cliente MATI030

No TFS os fontes do módulo Faturamento estão localizados na pasta Materiais - Mensagem única:




Extraindo o XML do Protheus:


Acesse o ambiente SIGACFG, Menu: Ambiente - Schedule - opção EAI


Na integração do Software com o Protheus, são criados os arquivos de transações:

Selecione o arquivo que integrou e para extrair clique na lupa  , ira apresentar as opções  escolha qual XML deseja extrair.

Visualizar mensagem Origem: XML que o Software envia para o Protheus.

Visualizar mensagem de Resposta: XML que o Protheus envia para o Software.



Através da tag <Product> consegue visualizar o Software que esta recebendo ou enviando. Exemplo:

XML de envio (original): <Product version="12.1.18.0" name="RM"/>

XML de resposta:<Product version="12" name="PROTHEUS"/>




Documentações para apoio:


EAI Protheus (framework)EAI Protheus
Treinamento Mensagem únicaTST0005 - Treinamento de Mensagem Única
Integrações Como realizar testes de Integrações (Mensagem Única)
Configuração WShttps://tdn.totvs.com/display/public/PROT/Configurar+Portais+e+Webservices
Framework - Configuração WSComo iniciar um servidor de Webservices no Protheus



Exemplo de XML para testes:


AdapterRotina Protheus/ IntegraçãoArquivo
CUSTOMERVENDORMATA030 / MATI030XML_CLIENTE
SALESORDERMATA410 / MATI410
PROJECPMSA200 / PMSI200XML_PROJECT
SUBPROJECTPMSA201/ PMSI201XML_SUBPROJECT
STEPPROJECTPMSA201A/PMSI201AXML_STEPPROJECT
TASKPROJECTPMSA203/PMSI203XML_TASKPROJECT