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 | ItemCosting | EMS → PIMS |
| Grupo de Insumos |
|
|
| Insumos |
|
|
8- Unidade de Medida | Unidade de Medida (UNIMEDIA) | UnitOfMeasure | EMS → PIMS |
9 - Movimento de Estoque | Baixa de Materiais (BRG_BXMATERIAL_EMS) | InventoryTransaction | PIMS → EMS |
10 – Retorno do Movimento de Estoque | Baixa de Materiais | InventoryTransaction | EMS → PIMS |
11 – Cargos | Cargos (CARGO) | Position | HR → PIMS |
12 – Funcionários | Funcionários (FUNCIONAR) | Employee | HR → PIMS |
13 – Afastamento e Férias | Disponibilidade Funcionário (FUNCIONARDISP) | Situations | HR → 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.