Páginas filhas
  • Manual Integração - PIMS Multicultivos x Datasul - TOTVS ESB

Sumário

1. Introdução
2. Representação Arquitetural
3. Metas e Restrições da Arquitetura
4. Metas e Restrições da Arquitetura
5. Visão Lógica dos Processos
6. PIMS
7. Glossário

Introdução


Finalidade


Este documento tem como objetivo apresentar uma visão geral arquitetural abrangente de como funciona o processo de
Integração entre os ambiente envolvidos.


Escopo


Documentar o modelo de integração, suas interfaces e evidencias de homologação.

Representação Arquitetural


Devido á necessidades de tolerância a falhas, garantia de entrega e suporte a grandes volumes, a integração do PIMS com o EMS Datasul via TOTVS ESB foi projetada utilizando o conceito de mensageria assíncrona, com filas específicas para envio e recebimento de dados. Os dados trocados entre os processos são constituídos de arquivos XML que devem ser integrados, seguindo o formato e padrões necessários de cada processo, provendo a independência evolutiva dos produtos e reduzindo as interfaces de contato entre os processos. Tanto para o envio como para o recebimento, o TOTVS ESB provê a tradução dos arquivos XML usando o padrão XSLT ( XML Stylesheet Transformation ) desenhado num mapa de tradução para cada processo/transação.

Nesse caso a Transação EAI consiste na troca de documentos XML específicos para cada processo dentro dos aplicativos envolvidos.

Metas e Restrições da Arquitetura


Tolerância a Falhas – em caso de interrupção inesperada dos serviços, o ambiente é capaz de restabelecer as comunicações


Modelo Assíncrono de Mensagens – melhor desempenho e desacoplamento, maior complexidade, maior garantia de tolerância a falhas.


Desacoplamento – os aplicativos integrados têm seus documentos padronizados e independentes do ESB, e para cada transação o próprio ESB executa a identificação / transformação específica.


Modelo ACID – as transações de negócio respeitam o modelo ACID para evitar dados inconsistentes.

Metas e Restrições da Arquitetura


Nessas versões envolvidas temos 13 transações homologadas, como segue na listagem abaixo:



Ajustar para deixar em uma planilha só


Nome Lógico ERP

Nome Lógico PIMS

Nome Técnico

Fluxo

1 - Centro de Custo

Centro de Custos (CCUSTO)

CostCenter

EMS → PIMS

2 - Emitentes

Fornecedores (PRESTSERV)

CustomerVendor

EMS → PIMS

3 - Saldos Contábeis do Período

Despesas Gerais (BRG_INTDG)

PeriodGLBalance

EMS → PIMS

4 – Depreciações de Bens

Depreciações (BRG_INTDE)

AssetDepreciation

EMS → PIMS

5 - Custos dos Itens

Valores de Materiais
(BRG_BXMATERIAL_EMS)

ItemCosting

EMS → PIMS



6 - Família de Material

Grupo de Insumos
(GRPINSUMO)

Grupo de Material
(GRPMATERIAL)



MaterialFamily



EMS → PIMS


7 - Item

Insumos
(INSUMO)

Material
(MATERIAL)



Item



EMS → PIMS

8- Unidade de MedidaUnidade de Medida (UNIMEDIA)UnitOfMeasureEMS → PIMS
9 - Movimento de EstoqueBaixa de Materiais (BRG_BXMATERIAL_EMS)InventoryTransactionPIMS → EMS
10 – Retorno do Movimento de EstoqueBaixa de MateriaisInventoryTransactionEMS → PIMS
11 – CargosCargos (CARGO)PositionHR → PIMS
12 – FuncionáriosFuncionários (FUNCIONAR)EmployeeHR → PIMS
13 – Afastamento e FériasDisponibilidade Funcionário (FUNCIONARDISP)SituationsHR → PIMS





Visão Lógica dos Processos


Envio do EMS para o PIMS


O Processo no EMS DataSul insere na Fila EAI de Saída ( Integrador do Progress ) a mensagem, que é consumida pelo TOTVS ESB usando o componente Datasul Receiver, que por sua vez identifica a mensagem, traduz usando o XSL específico para o processo do PIMS, e deposita a mensagem XML na fila JMS de Inbound (Entrada) que será consumida pelo MessageReceiver, que por sua vez traduz a mensagem para as tabelas do PIMS.




Nessa situação as mensagens são processadas no sentido EMS → PIMS, não necessitando de controle de processamento, e em caso de erro podem ser reenviadas novamente,

pois, caso o registro já exista no PIMS, ele será atualizado, e caso não exista será inserido.


Em nenhum dos cadastros, foi contemplada a exclusão de dados nesse sentido, pois o PIMS tem severas restrições de integridade de dados.


Diagrama do envio de transação no sentido EMS → PIMS dos cadastros:



Usamos o IdentifierMensagem que identifica a mensagem e roteia adequadamente para o tradutor específico para o processo do PIMS (veja nomes lógicos), usando o JMSSender para o servidor JBoss do PIMS.

Envio do PIMS para o EMS


O Processo no PIMS insere registros na tabela de controle das baixas (BRG_BXMATERIAL_EMS) e gera um XML baseado no modelo XSD:BaixaMaterial.xsd que é depositado numa fila interna JMS de Outbound que será consumida via JMS ( Java Message Service ) pelo TOTVS ESB usando o JMSReceiver, que por sua vez traduz o documento XML usando o XSL específico para a InventoryTransaction, e deposita o XML traduzido FILA EAI IN, nesse momento o Agente (Receiver) do EMS pode consumir as mensagens e depositar as respostas. Após consumir as mensagens, o processo do EMS gera o retorno no FILA EAI OUT que é consumido pelo TOTVS ESB e enviado para o PIMS informado o sucesso ou erro das baixas.





Diagrama do envio de transação no sentido PIMS → EMS da Baixa de Material:






Diagrama do retorno de transação no sentido EMS → PIMS da Baixa de Material:



São usados dois diagramas para a baixa de material, pois temos um processo de envio para o EMS e outro processo de retorno para o PIMS.

PIMS


O PIMS deve estar devidamente instalado e configurado em ambiente de Homologação e Produção, com versão Novembro 2014 ou superior.


Parâmetros


O Sistema PIMS utiliza configurações padronizadas ou específicas, chamadas de parâmetros.
Um parâmetro é uma variável que atua como elemento chave na execução de determinados processamentos. De acordo com seu conteúdo é possível obter diferentes resultados.


  • USING_INVENTORY_LIST - Determina se o envio de dados será em lista de itens ou item a item

          Valor – True


  • NOME_TRANSACAO_BAIXA - Nome da transação de Movimento de Estoque

          Valor – InventoryTransaction


  • CD_CCUSTO_PADRAO_DISP - Código do CCUSTO Padrão para Disponibilidades

          Valor – 204


  • EMPRESA_FILIAL_EAI - Controle por Empresa x Filial

          Valor – True


  • ESTORNO_BAIXA - Se executa estorno de baixa de material

           Valor – True


  • FG_MOV_ESTOQUE_SINC - Permite configurar as integrações de movimentação de estoque para executarem de forma síncrona ou assíncrona.

           Valor – false


  • CHAR_CD_CCUSTO - Caracteres a serem retirados do Código do Centro de Custo

           Valor – True / False – A definir na Implantação


  • FG_CENTRALIZAR_REGIAO_ADM - Centralizar dados por Região Administrativa

           Valor – True / False – A definir na Implantação


  • CD_UNI_NEGOCIO_BX - Unidade de Negócio ERP

            Valor – A definir na Implantação


Configurações services_client.xml


O Sistema PIMS realiza algumas configurações específicas de seus clientes em arquivo XML, chamadas services_client.xml. Dentro do arquivo services_client.xml,

existe variáveis que precisam ser preenchidas conforme as necessidades de cada cliente.


Abaixo serão listadas as variáveis que deverão ser preenchidas respeitando o valor pré-definido pelo ERP.

     

       Variáveis referentes ao processo de integração

  • brg.tipoDocumento Valor="Definir na Implantação"
  • brg.tipoMovimento Valor="Definir na Implantação"
  • brg.tipoDocumentoEstorno Valor="Definir na Implantação"
  • brg.tipoMovimentoEstorno Valor="Definir na Implantação"


       Variáveis referentes ao processo de Aplicação Insumos

  • appinsumos.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • appinsumos.brg.tipoDocumento Valor="Definir na Implantação"
  • appinsumos.brg.tipoMovimento Valor="Definir na Implantação"


       Variáveis referentes ao processo de Blocagem

  • blocagem.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • blocagem.brg.tipoDocumento Valor="Definir na Implantação"
  • blocagem.brg.tipoMovimento Valor="Definir na Implantação"


       Variáveis referentes ao processo de Tratamento Semente

  • tratsemente.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • tratsemente.brg.tipoDocumento Valor="Definir na Implantação"
  • tratsemente.brg.tipoMovimento Valor="Definir na Implantação"


       Variáveis referentes ao processo de Pesagem

  • pesagem.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • pesagem.brg.tipoDocumento Valor="Definir na Implantação"
  • pesagem.brg.tipoMovimento Valor="Definir na Implantação"


      Variáveis referentes ao processo de Abastecimento

  • abastecimento.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • abastecimento.brg.tipoDocumento Valor="Definir na Implantação"
  • abastecimento.brg.tipoMovimento Valor="Definir na Implantação"


      Variáveis referentes ao processo de Lubrificação

  • lubrificacao.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • lubrificacao.brg.tipoDocumento Valor="Definir na Implantação"
  • lubrificacao.brg.tipoMovimento Valor="Definir na Implantação"


      Variáveis referentes ao processo de Beneficiamento

  • beneficiamento.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • beneficiamento.brg.tipoDocumento Valor="Definir na Implantação"
  • beneficiamento.brg.tipoMovimento Valor="Definir na Implantação"


      Variáveis referentes ao processo de Plantio

  • plantio.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • plantio.brg.tipoDocumento Valor="Definir na Implantação"
  • plantio.brg.tipoMovimento Valor="Definir na Implantação"


     Variáveis referentes ao processo de Serviço Campo

  • srvcampo.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • srvcampo.brg.tipoDocumento Valor="Definir na Implantação"
  • srvcampo.brg.tipoMovimento Valor="Definir na Implantação"


       Variáveis referentes ao processo de Estorno da Aplicação Insumos

  • appinsumos.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • appinsumos.brg.tipoDocumentoEstorno Valor="Definir na Implantação"
  • appinsumos.brg.tipoMovimentoEstorno Valor="Definir na Implantação"


       Variáveis referentes ao processo de Estorno da Blocagem

  • blocagem.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • blocagem.brg.tipoDocumentoEstorno Valor="Definir na Implantação"
  • blocagem.brg.tipoMovimentoEstorno Valor="Definir na Implantação"


       Variáveis referentes ao processo de Estorno do Tratamento de Semente

  • tratsemente.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • tratsemente.brg.tipoDocumentoEstorno Valor="Definir na Implantação"
  • tratsemente.brg.tipoMovimentoEstorno Valor="Definir na Implantação"


       Variáveis referentes ao processo de Estorno da Pesagem

  • pesagem.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • pesagem.brg.tipoDocumentoEstorno Valor="Definir na Implantação"
  • pesagem.brg.tipoMovimentoEstorno Valor="Definir na Implantação"


       Variáveis referentes ao processo de Estorno do Abastecimento

  • abastecimento.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • abastecimento.brg.tipoDocumentoEstorno Valor="Definir na Implantação"
  • abastecimento.brg.tipoMovimentoEstorno Valor="Definir na Implantação"


       Variáveis referentes ao processo de Estorno da Lubrificação

  • lubrificacao.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • lubrificacao.brg.tipoDocumentoEstorno Valor="Definir na Implantação"
  • lubrificacao.brg.tipoMovimentoEstorno Valor="Definir na Implantação"


      Variáveis referentes ao processo de Estorno do Beneficiamento

  • beneficiamento.brg.codigoMovimentoEntrada Valor="Definir na Implantação"
  • beneficiamento.brg.tipoDocumentoEstorno Valor="Definir na Implantação"
  • beneficiamento.brg.tipoMovimentoEstorno Valor="Definir na Implantação"



Observações;  

     Tipo de transação do estoque para o Datasul, que indica se o movimento é de entrada ou saída.

  •   Valores: 1 - Entrada, 2 - Saida.

     Informações referentes ao Tipo de Documento que originou o movimento de estoque para o Datasul

  •   Valores: 1 - ACA, 2 - ACT, 3 - NU1, 4 - DD, 5 - DEV, 6 - DIV, 7 - DRM, 8 - EAC, 9 - EGF, 10 - BEM, 11 - NU2, 12 - NU3, 13 - NU4, 14 - ICM, 15 - INV, 16 - IPL, 
      17 - MOB, 18 - NC, 19 - NF, 20 - NFD, 21 - NFE, 22 - NFS, 23 - NFT, 24 - NU5, 25 - REF, 26 - RCS, 27 - RDD, 28 - REQ, 29 - RFS, 30 - RM, 31 - RRQ, 
      32 - STR, 33 - TRA, 34 - ZZZ, 35 - SOB, 36 - EDD, 37 - VAR, 38 - ROP


Valores padrão por Transação

 
Devido aos modelos conceituais, os cadastros a seguir têm valores padrão quando os registros são provenientes do EMS para o PIMS:


Centro de Custo (CostCenter)


  • Deve haver um Ramo de Custo cadastrado no PIMS com nome a A DEFINIR
  • Deve haver uma Fase de Custo com cadastrado no PIMS com nome a A DEFINIR


  • Deve haver uma Ocupação com cadastrado no PIMS com nome a A DEFINIR

Insumo (Item)


  • Deve haver um Principio Ativo com cadastrado no PIMS com Código 999 e nome a A DEFINIR


Glossário

  • Java EE – Java Enterprise Edition – Ferramenta Java para desenvolvimento de aplicativos corporativos usando tecnologias Web e persistência em banco de dados relacionais e transacionais.
  • ACID – ( Atomicity, Consistence, Isolation e Durability ): modelo de transações de negócio/dados independentes e garantidas
  • XSLT – (XML Stylesheet Transformation ) : transformação de documentos XML usando um processador que lê uma configuração XSL e gera outro documento XML no formato e padrão desejado.
  • EAI – (Enterprise Application Integration ): mecanismo usado para controlar envio/recebimento de mensagens de dados para processamento assíncrono de transações de integração.
  • JMSSender – (Java Message Service Sender ): conector de envio de dados para filas JMS dentro do TOTVS ESB
  • JMSReceiver – (Java Message Service Receiver ): conector de consumo de dados de filas JMS dentro do TOTVS ESB
  • JBOSS – servidor Java EE 1.4 que hospeda o aplicativo do PIMS.


  • Sem rótulos