Integração Senior entre ERP e SILT WMS
Visão Geral
Criado mecanismos de integração do ERP Senior com SILT WMS a partir da versão 8.6.
- Essas integrações contemplam na parte de importação vindas do ERP, chamado de transformador, gravando direto nas tabelas de integração do SILTWMS, como por exemplo INT_ PRODUTO, as Entidades (Cliente, Depositante, Destinatário, Fornecedor, Transportadora), Produtos, Pedido\Nota Fiscal, Cancelamento de Nota Fiscal, Faturamento de Pedido, Bloqueio e Desbloqueio de Lote e Retorno de Cálculo Fiscal.
- Exportação provindas do SILTWMS para o ERP contemplam Produtos, Embalagens, movimentações como Bloqueio e Desbloqueio de Lote, Ajuste de Movimentação, Controle de Avaria, Retorno de Produto Recuperado, Ordem de Recebimento com Lote Indústria, Nota Fiscal de Remessa para Armazenagem, Nota Fiscal de Retorno de Armazenagem, Cancelamento de Nota Fiscal, Faturamento de Pedido Separado, Solicitação de Cálculo Fiscal, Fatura de Serviço, Ordem de Recebimento, Livro Fiscal de Inventário e Inventário, cujos dados serão replicados quando ocorrer alguma exportação para tabelas (modelo disponibilizado pela Senior).
Foi criada rotina na PK_ INTEGRACAO responsável por alimentar a tabela RTC_ PENDENCIES quando ocorrer exportação.
A arquitetura definida acima pela Senior irá funcionar da seguinte maneira:
Quando o ERP estiver enviando informações para o WMS existirá um serviço transmitirá a informação em formato JSON para o servidor de mensageiria (
RabbitMQ) e o transformador mencionado acima irá pegar a mensagem enviada e gravar direto na base do WMS na respectiva tabela que a informação enviada pertence.
- Quando o WMS estiver enviando informações para o ERP o transformador irá pegar as informações exportadas, colocar em formato JSON e transmitir para o servidor de mensageiria (
RabbitMQ) e um serviço do lado do ERP irá pegar a mensagem enviada e gravar direto na base do ERP na respectiva tabela que a informação enviada pertence.

Integração
Para permitir que o ERP da Senior possa buscar na base do WMS as informações exportadas será necessário criar quatro tabelas (RTC_ PENDENCIES, R996FLD, RTC_STATUS_ CONSULTA e RTC_ REPLICATIONDEF), onde nossa responsabilidade será alimentar a tabela RTC_ PENDENCIES e dar um carga inicial na tabela R996FLD (servirá como dicionário de dados das importações e exportações que serão trabalhadas) e as outras serão manipuladas pelo ERP da Senior para controlar o que está sendo integrado.
Exportar Produto
Quando for cadastrado ou alterado um produto no sistema
E se o depositante estiver configurado para exportar produto via banco
Então gravará as informações do produto na tabela INT_ENVIO_ PRODUTO
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações do produto
Exportar Embalagem
Quando for cadastrada ou alterada uma embalagem no sistema
E se o depositante estiver configurado para exportar embalagem via banco
Então gravará as informações do produto na tabela INT_ENVIO_ EMBALAGEM
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações da embalagem
Exportar Movimentação Estoque Bloqueio de Lote
Quando o lote for bloqueado no sistema
E se o depositante do lote estiver configurado para exportar bloqueio\desbloqueio do lote via banco
Então gravará as informações do lote na tabela INT_ENVIO_MUDANCA_ ESTOQUE
E gravará na exportação na tabela RESULTADOINTEGRACAO para controle do ERP
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações da lote bloqueado
Criada trigger para a tabela INT_ENVIO_MUDANCA_ESTOQUE que somente será disparada quando o campo STATUS_INTEGRACAO for atualizado pelo ERP da Senior para 2 – Registro Integrado Com Sucesso ou 4 – Registro Com Erro de Integração que não será mais processado.
Exportar Movimentação Estoque Desbloqueio de Lote
Quando o lote for desbloqueado no sistema
E se o depositante do lote estiver configurado para exportar bloqueio\desbloqueio do lote via banco
Então gravará as informações do lote na tabela INT_ENVIO_MUDANCA_ ESTOQUE
E gravará na exportação na tabela RESULTADOINTEGRACAO para controle do ERP
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações da lote desbloqueado
Exportar Movimentação Estoque Ordem de Recebimento Com Lote Indústria
Quando a Ordem de Recebimento for alocada no sistema
E se o depositante da Ordem de Recebimento estiver configurado para exportar após a alocação
E também estiver configurado para exportar retorno de recebimento via Banco Modelo MOV
Então gravará as informações da Ordem de Recebimento na tabela INT_ENVIO_MUDANCA_ ESTOQUE
E gravará na exportação na tabela RESULTADOINTEGRACAO para controle do ERP
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações da Ordem de Recebimento
Foi criada trigger para a tabela INT_ENVIO_OR_LOTE_H que somente será disparada quando o campo STATUS_INTEGRACAO for atualizado pelo ERP da Senior para 2 – Registro Integrado Com Sucesso ou 4 – Registro Com Erro de Integração que não será mais processado, e com isso as tabelas INT_ENVIO_OR_LOTE_I \ INT_ENVIO_OR_LOTE_N \ INT_ENVIO_OR_LOTE_INFO_ ESPEC serão populadas também.
Exportar Movimentação Estoque Ajuste de Movimentação Entrada
Quando o ajuste de movimentação de entrada for processado
E se o depositante do ajuste estiver configurado para exportar ajuste de movimentação via Banco Modelo MOV
Então gravará as informações do ajuste de movimentação de entrada na tabela INT_ENVIO_MUDANCA_ ESTOQUE
E gravará na exportação na tabela RESULTADOINTEGRACAO para controle do ERP
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações do ajuste de movimentação de entrada
Exportar Movimentação Estoque Ajuste de Movimentação Saída
Quando o ajuste de movimentação de saída for processado
E se o depositante do ajuste estiver configurado para exportar ajuste de movimentação via Banco Modelo MOV
Então gravará as informações do ajuste de movimentação de saída na tabela INT_ENVIO_MUDANCA_ ESTOQUE
E gravará na exportação na tabela RESULTADOINTEGRACAO para controle do ERP
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações do ajuste de movimentação de saída
Exportar Movimentação Estoque Controle de Avaria
Quando o controle de avaria for processado
E se o depositante do ajuste estiver configurado para exportar controle de avaria via Banco Modelo MOV
Então gravará as informações do controle de avaria na tabela INT_ENVIO_MUDANCA_ ESTOQUE
E gravará na exportação na tabela RESULTADOINTEGRACAO para controle do ERP
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações do controle de avaria
Exportar Movimentação Estoque Produto Recuperado
Quando o retorno produto recuperado for processado
E se o depositante do ajuste estiver configurado para exportar retorno produto recuperado via Banco Modelo MOV
Então gravará as informações do retorno produto recuperado na tabela INT_ENVIO_MUDANCA_ ESTOQUE
E gravará na exportação na tabela RESULTADOINTEGRACAO para controle do ERP
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações do retorno produto recuperado
Exportar Nota Fiscal de Remessa para Armazenagem Depositante Regime Armazém Geral Contribuinte ICMS
Dado uma ordem de recebimento qualquer
E se o depositante possuir regime armazém geral contribuinte ICMS
E também estiver configurado para exportar Nota Fiscal de Remessa e Retorno de Armazenagem via Banco
Quando a cobertura dos produtos recebidos for realizada pelo nota fiscal vinculada a ordem de recebimento
Ou por uma nota fiscal de cobertura enviada pelo depositante
Então gravará as informações da nota fiscal de cobertura nas tabelas INT_ENVIO_NF_ ARMAZENAGEM \ INT_ENVIO_NF_ ARMAZENAGEMDET
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações da nota fiscal de cobertura dos produtos recebidos
Exportar Nota Fiscal de Remessa para Armazenagem Depositante Regime Armazém Geral Não Contribuinte ICMS (GMB)
Dado uma ordem de recebimento qualquer
E se o depositante possuir regime armazém geral NÃO contribuinte ICMS
E também estiver configurado para exportar Nota Fiscal de Remessa e Retorno de Armazenagem via Banco
Quando a nota fiscal gerada pelo sistema para cobertura dos produtos for autorizada pela Sefaz
Então gravará as informações da nota fiscal de cobertura nas tabelas INT_ENVIO_NF_ ARMAZENAGEM \ INT_ENVIO_NF_ ARMAZENAGEMDET
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações da nota fiscal de cobertura dos produtos recebidos
Exportar Nota Fiscal de Retorno de Armazenagem Depositante Regime Armazém Geral Contribuinte ICMS
Dado uma onda de separação qualquer
E a onda possuir um pedido de retorno de armazenagem vinculada
E se o depositante possuir regime armazém geral contribuinte ICMS
E também estiver configurado para exportar Nota Fiscal de Remessa e Retorno de Armazenagem via Banco
Quando a nota fiscal de retorno for gerada pelo sistema
Então gravará as informações da nota fiscal de cobertura nas tabelas INT_ENVIO_NF_ ARMAZENAGEM \ INT_ENVIO_NF_ ARMAZENAGEMDET
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações da nota fiscal de retorno dos produtos expedidos
Exportar Nota Fiscal de Retorno de Armazenagem Depositante Regime Armazém Geral Não Contribuinte ICMS (GMB)
Dado uma onda de separação qualquer
E a onda possuir um pedido de retorno de GMB vinculada
E se o depositante possuir regime armazém geral NÂO contribuinte ICMS
E também estiver configurado para exportar Nota Fiscal de Remessa e Retorno de Armazenagem via Banco
Quando a nota fiscal de retorno for gerada pelo sistema e autorizada pela Sefaz
Então gravará as informações da nota fiscal de cobertura nas tabelas INT_ENVIO_NF_ ARMAZENAGEM \ INT_ENVIO_NF_ ARMAZENAGEMDET
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações da nota fiscal de retorno dos produtos expedidos
Exportar Faturamento de Pedido
Dado uma onda de separação qualquer
E a onda possuir um pedido vinculado
E se o depositante do pedido estiver configurado para retornar faturamento via Banco
E o momento de faturamento seja após a onda ser liberada
OU após o pedido ser conferido\pesado
Quando o pedido for enviado para faturamento
Então gravará as informações da nota fiscal de cobertura nas tabelas INT_ENVIO_ FATURAMENTO \ INT_ENVIO_ FATURAMENTODET
E gravará na exportação na tabela RESULTADOINTEGRACAO para controle do ERP
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações do pedido a ser faturado
Exportar Solicitação de Cálculo Fiscal para Remessa Por Conta e Ordem de Terceiro
Dado uma onda de separação qualquer
E a onda possuir um pedido de retorno de GMB vinculada
E se o endereço do depositante do pedido for diferente do endereço da entrega
Quando a nota fiscal de remessa por conta e ordem de terceiros for gerada pelo sistema
Então gravará as informações da nota fiscal de cobertura nas tabelas INT_ENVIO_ CALCULOFISCAL \ INT_ENVIO_CALCULOFISCAL_ DET
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações da nota fiscal de remessa por conta e ordem de terceiros.
Os passos para se gerar uma NFCOT para depositantes contribuintes do ICMS serão as seguintes:
- Importar/Digitar nota/pedido de venda do tipo “Título a que se transfere propriedade” (Tipo operação = TP), interestadual (o depositante e o armazém devem estar localizados em estados diferentes);
- Realizar o fluxo de liberação da nota, Formação de Onda, pesagem e faturamento (quando necessário) da nota de venda;
- Durante esse processo é gerada a nota do tipo “Remessa por conta e ordem de terceiro”;
- Criar e processar a coleta;
- Após o processamento da Coleta, a nota de venda será exibida na tela de “Retorno Simbólico” e, ao clicar em “Emitir NF Retorno Simbólico”, será criada uma nova nota de “Retorno Simbólico” que estará disponível na tela de “Controle NF-e” para ser transmitida a SEFAZ. Esta nota também poderá ser consultada na tela “Consulta de Retorno de Armazenagem”;
- Enviar as mercadorias para o cliente.
Exportar Cancelamento de Nota Fiscal
Dado uma nota fiscal qualquer
E se o depositante da nota fiscal estiver configurado para retornar cancelamento via Banco
Quando a mesma for cancelada no sistema
Então gravará as informações da nota fiscal cancelada na tabela INT_ENVIO_ CANCELAMENTO
E gravará na exportação na tabela RESULTADOINTEGRACAO para controle do ERP
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações da nota fiscal cancelada
Também foi criada trigger para a tabela INT_ENVIO_CANCELAMENTO que somente será disparada quando o campo STATUS_INTEGRACAO for atualizado pelo ERP da Senior para 2 – Registro Integrado Com Sucesso ou 4 – Registro Com Erro de Integração que não será mais processado.
Exportar Fatura de Serviço
Dado uma fatura qualquer de um contrato
E que não seja parcial
Quando a fatura for aprovada\fechada
Então gravará as informações da fatura de serviço nas tabelas INT_ENVIO_FATURA_ SERVICO \ INT_ENVIO_FATURA_ SERVICODET
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações da fatura de serviço
Exportar Ordem de Recebimento
Dado uma Ordem de Recebimento qualquer
E se o depositante da Ordem de Recebimento estiver configurado para exportar recebimento após a conferência ou alocação
E também estiver configurado para exportar retorno de recebimento via Banco Modelo
Quando a Ordem de Recebimento for conferida ou alocada no sistema
Então gravará as informações da Ordem de Recebimento nas tabelas INT_ENVIO_OR_H \ INT_ENVIO_OR_I \ INT_ENVIO_OR_N \ INT_ENVIO_OR_INFO_ ESPEC
E gravará na exportação na tabela RESULTADOINTEGRACAO para controle do ERP
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações da Ordem de Recebimento
Também foi criada trigger para a tabela INT_ENVIO_OR_H que somente será disparada quando o campo STATUS_INTEGRACAO for atualizado pelo ERP da Senior para 2 – Registro Integrado Com Sucesso ou 4 – Registro Com Erro de Integração que não será mais processado.
Exportar Livro Fiscal de Inventário
Dado um livro de registro fiscal de inventário qualquer
E o armazém estiver configurado para exportar saldo fiscal
Quando o livro de registro fiscal de inventário for fechado
Então gravará as informações do livro de registro fiscal de inventário na tabela INT_ENVIO_ SALDOFISCAL
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações do livro de registro fiscal de inventário
Exportar Inventário
Dado um inventário qualquer
E o inventário estiver bloquedo para contagens ou finalizado
E se o depositante do inventário estiver configurado para exportar inventário via banco
Quando o usuário clicar no botão "Exportar Inventário" na tela de Inventário
Então gravará as informações do Inventário na tabela INT_ENVIO_ INVENTARIO
E gravará na exportação na tabela RESULTADOINTEGRACAO para controle do ERP
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações do Inventário
Também foi criada trigger para a tabela INT_ENVIO_INVENTARIO que somente será disparada quando o campo STATUS_INTEGRACAO for atualizado pelo ERP da Senior para 2 – Registro Integrado Com Sucesso ou 4 – Registro Com Erro de Integração que não será mais processado.
Exportar Confirmação de Embarque
Quando a carga for processada
Então gravará as informações da Carga nas tabelas INT_ENVIO_ EMBARQUE \ INT_ENVIO_ EMBARQUEDET
E gravará na exportação na tabela RESULTADOINTEGRACAO para controle do ERP
E também gravará na tabela RTC_ PENDENCIES para o ERP buscar as informações da Carga
Também foi criada trigger para a tabela INT_ENVIO_EMBARQUE que somente será disparada quando o campo STATUS_INTEGRACAO for atualizado pelo ERP da Senior para 2 – Registro Integrado Com Sucesso ou 4 – Registro Com Erro de Integração que não será mais processado.
Estrutura das tabelas
Criada as tabelas RTC_ PENDENCIES, R996FLD, RTC_STATUS_ CONSULTA e RTC_ REPLICATIONDEF que serão utilizadas pelo Transformador Único entre ERP e WMS para controlar as importações e exportações dos sistemas. Segue abaixo os detalhes das tabelas:
Tabela RTC_PENDENCIES
ID – NUMBER NOT NULL – Chave Primária
TABLENAME – VARCHAR2NOT NULL – Nome da tabela de integração
OPERATIONTIME – DATE NOT NULL – Data da Integração
OPERATIONKIND – VARCHAR2NOT NULL – Tipo da Operação (I – Insert, U – Update, D – Delete)
RECORDKEY – VARCHAR2 – Id de identificação da linha na tabela de integração
ALTEREDFIELDS – VARCHAR2 – Campos alterados
Tabela R996FLD
TBLNAM – VARCHAR2 – Nome da Tabela de Integração
FLDNAM – VARCHAR2 – Nome do Campo
DATTYP – NUMBER – Tipo do Campo (1 – String, 2 – Integer/ LongInt/Float/Double, 3 – String, 4 – Data, 5 – Time(em formato integer), 8 – Blob)
LENFLD – NUMBER – Tamanho do Campo
CANNUL – NUMBER – Permite Nulo (0 – Não, 1 – Sim)
Tabela RTC_STATUS_CONSULTA
OPERATIONID – NUMBER NOT NULL – Identificador da pendência de integração
STATE – VARCHAR2 – Estado da Replicação (P – Estado Pendente, T – Estado Tratando, R – Estado Replicado, E – Estado Erro)
MESSAGE – VARCHAR2 – Mensagem da Replicação
Tabela RTC_REPLICATIONDEF
ID – NUMBER NOT NULL – Chave Primária
IDREPLICATOR – VARCHAR2NOT NULL – Identificador do Replicador (Controlado pelo ERP)
TABLENAME – VARCHAR2NOT NULL – Nome da Tabela de Integração


