Esse plugin tem por finalidade sincronizar os dados de Carregamento, Programação de Produção, Apontamentos e Estorno de Apontamentos da Lenke para o módulo indústria.
Versões do Plugin
4.0.2211.1001
AG vinculada a última Build
- AG-13034Getting issue details... STATUS
Alterações
Alteradas as seguintes consultas:
SEL_ITEMAGRO_PERSON
SEL_AGRO_ENVIARITEM
4.0.2209.1002
AG’s vinculadas a última Build
- AG-7212Getting issue details... STATUS
- AG-7246Getting issue details... STATUS
- AG-7241Getting issue details... STATUS
- AG-7250Getting issue details... STATUS
Alterações
Foram criados novos campos em tabelas utilizadas tanto no módulo Indústria como na Integração de Threads, sendo por esse motivo atualizar o sistema para a versão 731 para que esses campos possam ser criados corretamente.
Deve ser ajustada também a consulta SEL_BUSCAR_PRODUCAO_OFDT para o código abaixo:
4.0.2203.1008
Configuração Inicial do Plugin
Na tabela INDAPONTAMENTOS criar as colunas abaixo através do person3c.exe
Descrição | Coluna | Tipo | Tamanho |
Número do apontamento no LENKE | NR_APONTAMENTO | NUMERO | 9,0 |
Peso nominal do produto (Caixa). | QT_PESO_NOMINAL | NUMERO | 11,3 |
Código de rastreamento da caixa. | NR_SSCC_CX | TEXTO | 20 |
Código de rastreamento da caixa. | NR_SSCC_PLT | TEXTO | 20 |
Tara total do produto. | QT_TARA | NUMERO | 11,3 |
Na tabela INDOPERADORES criar as colunas abaixo através do person3c.exe
Descrição | Coluna | Tipo | Tamanho |
Vínculo de operador agro com o operador Lenke. | USERIDLENKE | NUMERO | 5,0 |
Na tabela ITEMGRUPO criar as colunas abaixo através do person3c.exe
Descrição | Coluna | Tipo | Tamanho |
Sincronizar Com a Lenke? | SINCLENKE | Sim/Não | (S/N) |
● Criar uma tabela personalizada chamada de U_LENKELOG:
● Deverá conter os seguintes campos:
Coluna | Descrição | Tipo |
ESTAB | Estabelecimento | Numero(9,0) |
TPOCORRENCIA | Tipo da Ocorrência | Numero(9,0) |
ROTINA | Rotina | Numero(9,0) |
DATAHORA | Data e Hora | Data e Hora |
LOG | Log | Documento |
● Criar a sequence :
CALL CREATE_SEQUENCE('U_LENKELOG', 'U_LENKELOG_ID');
● Criar a trigger abaixo:
create or replace TRIGGER TR_DEL_LOG BEFORE DELETE ON U_LENKELOG FOR EACH ROW BEGIN IF (:OLD.ROTINA = 1) AND (:OLD.TPOCORRENCIA = 0) THEN DELETE FROM U_LKITEMSALDO WHERE (U_LKITEMSALDO.U_LENKELOG_ID = :OLD.U_LENKELOG_ID); END IF; END;
Criar um arquivo de conexão chamado IntegradorLenke.ini e deixar junto com o executável.
Estrutura do arquivo:
[INTEGRADOR]
ServidorBanco = 127.0.0.1
PortaBanco = 1521
Database = ORCL1
User_Name = VIASOFT
Password = VIASOFT
Criar a seguinte tabela personalizada U_CONEXAOLENKE
Para a tabela acima deverá criar os seguintes campos
Descrição | Coluna | Tipo | Tamanho |
Ip Banco de dados | IPBANCO | texto | 50 |
Porta do Banco de Dados | PORTABANCO | texto | 10 |
SID do Oracle | SIDORACLE | texto | 30 |
Usuário Lenke | USUARIOLENKE | texto | 50 |
Senha usuário do Banco | SENHABANCO | texto | 50 |
Notificar | NOTIFICAR | Número | 1 |
Remetente | REMETENTE | TEXTO | 200 |
Destinatário | DESTINATARIO | TEXTO | 200 |
Porta e-mail | PORTAEMAIL | Número | 10 |
Servidor e-mail | SERVIDOREMAIL | TEXTO | 200 |
Senha e-mail | SENHAEMAIL | TEXTO | 200 |
IP do Integrador | IPINTEGRADOR | TEXTO | 30 |
Porta do Integrador | PORTAINTEGRADOR | Número | 10 |
Porta de Acesso HTTP | PORTAHTTP | Número | 10 |
Periodicidade Envio | PERIODICIDADE | Número | 10 |
Para esta tabela é necessário criar os seguintes comando de banco
--Cria a Sequence CALL CREATE_SEQUENCE('U_CONEXAOLENKE', 'U_CONEXAOLENKE_ID'); -- Cria a Trigger de Auto Incremento CREATE OR REPLACE TRIGGER U_CONEXAOLENKE_BI0 BEFORE INSERT ON U_CONEXAOLENKE FOR EACH ROW BEGIN IF (:NEW.U_CONEXAOLENKE_ID IS NULL )THEN SELECT GEN_U_CONEXAOLENKE_U_CONEXAOLE.NEXTVAL INTO :NEW.U_CONEXAOLENKE_ID FROM dual; END IF; END;
Criar a seguinte tabela personalizada U_LENKECONFIGESTAB
Para a tabela acima deverá criar os seguintes campos
Descrição | Coluna | Tipo | Tamanho |
Estabelecimento Agrotitan | ESTABAGRO | Número | 6 |
Descrição Estab. Agro | DESCRICAOESTABAGRO | texto | 100 |
Empresa Lenke | EMPRESALENKE | Número | 6 |
Estabelecimento LENKE | ESTABLENKE | Número | 6 |
Setor | SETOR | Número | 6 |
Programação da Produção | PROGRAMACAOPROD | Número | 1 |
Apontamento | APONTAMENTO | Número | 1 |
Minutos Programação Produção | MINUTOSPP | Número | 4 |
Minutos Apontamento | MINUTOSAPONT | Número | 4 |
Qtd. Registros Apontamento | QTDREGISTROS | Número | 9 |
Usuário que realizou apontamento | USERAPONT | Text | 40 |
Thread de carregamento | CARREGAMENTO | Número | 1 |
Minutos Carregamento | MINUTOSCARGA | Número | 4 |
Estorno de Apontamento | ESTORNOAPONT | Número | 1 |
Minutos Estorno Apontamento | MINUTOSESTORNO | Número | 4 |
Qtd. Registros Estorno Apont. | QTDREGESTORNO | Número | 9 |
Data da Produção | DTPRODUCAO | Número | 1 |
Data Fabricação Lote | DTFABRICACAO | Número | 1 |
Controlar Local de Estoque | CONTROLARLOCALEST | Número | 1 |
Estab. Local de Estoque | ESTABLOCALESTOQUE | Número | 9 |
Local de Estoque | CTRLLOCALESTOQUE | Número | 9 |
Destinatários | DESTINATARIOS | Texto | 500 |
Notificar Destinatários | NOTIFICAR | Número | 1 |
Para esta tabela é necessário criar os seguintes comando de banco
--Cria a Sequence CALL CREATE_SEQUENCE('U_LENKECONFIGESTAB', 'U_LENKECONFIGESTAB_ID');
Programação da Produção
Criar consulta personalizada através do Person3c.exe com o nome: "SEL_LENKE_MBS_ITENS"
Criar consulta personalizada através do Person3c.exe com o nome: "SEL_LENKE_TERMINAIS"
Criar consulta personalizada através do Person3c.exe com o nome: "SEL_LENKE_PONTO"
Criar consulta personalizada através do Person3c.exe com o nome: "SEL_AGRO_ENVIARITEM"
Criar consulta personalizada através do Person3c.exe com o nome:"SEL_AGRO_REMOVERITENS"
CRIAÇÃO DE TRIGGER NA TABELA INDPROGPRODOF
A trigger abaixo deve ser criada para que não seja possível finalizar uma Programação de produção e/ou ordem de fabricação no módulo indústria com um ou mais apontamentos pendentes na Lenke.
Caso existam apontamentos pendentes na Lenke referentes a uma ordem de fabricação, ao tentar finalizar a Ordem de fabricação ou finalizar a Ordem de produção, é exibida uma mensagem de aviso, não deixando prosseguir com o encerramento.
RECÁLCULO DE CUSTO E CONTABILIZAÇÃO
Este processo será realizado através do sistema Servidor Agro Xe pois lá tem todos os cálculos de custo e contabilizações necessárias.
Criar a seguinte tabela personalizada "U_LENKECONTABCUSTO"
Para a tabela acima deverá criar os seguintes campos
Descrição | Coluna | Tipo | Tamanho |
Estabelecimento Agrotitan Produção | ESTABPI | Número | 10 |
Sequência de Produção | SEQUENCIA | Número | 10 |
Código do Item que está sendo produzido | ITEM | Número | 10 |
Data Produção | DATAPROD | Data |
|
Hora Produção | HORAPROD | Hora |
|
Excluído | EXCLUIDO | Número | 9 |
Para esta tabela é necessário criar os seguintes comando de banco
--Cria a Sequence
CALL CREATE_SEQUENCE('U_LENKECONTABCUSTO', 'U_LENKECONTABCUSTO_ID');
Criar a seguinte tabela personalizada U_LOGCUSTOCTB
Para a tabela acima deverá criar os seguintes campos
Descrição | Coluna | Tipo | Tamanho |
Data e Hora | DATAHORA | Data |
|
Mensagem do Log | MENSAGEMLOG | Documento |
|
Estab. da Produção | ESTABPI | Número | 10 |
Sequência da Produção Interna | SEQUENCIA | Número | 10 |
Para esta tabela é necessário criar os seguintes comando de banco
--Cria a Sequence CALL CREATE_SEQUENCE('U_LOGCUSTOCTB', 'U_LOGCUSTOCTB_ID');
Criar consulta personalizada através do Person3c.exe com o nome "SEL_BUSCAR_LENKECONTABCUSTO"
Realizar a configuração de agendamento da tarefa no sistema Agro3c. (Ativar o Job de processamento)
Acessar módulo Agro3c e ir ao menu Configurações > Configurações > Agendador de Tarefas e criar a tarefa conforme a imagem abaixo. Como sugestão, poderá agendar a tarefa uma única vez ao dia de preferência a noite, já que este processo é pesado
APONTAMENTOS
● Criar a tabela personalizada U_LKITEMSALDO
Coluna | Descrição | Tipo |
ESTAB | Estabelecimento | Numero(9,0) |
ITEMMP | Item MP | Numero(9,0) |
QTDFALTANTE | Quantidade Faltante | Numero(12,4) |
SALDOATUAL | Saldo Atual | Numero(12,4) |
U_LENKELOG_ID | Código do Log | Numero(9,0) |
o Cria a Sequence
CALL CREATE_SEQUENCE('U_LKITEMSALDO', 'U_LKITEMSALDO_ID');
o Criar a Trigger abaixo:
CREATE OR REPLACE TRIGGER TR_DEL_APONTSALDO BEFORE DELETE ON U_LKITEMSALDO FOR EACH ROW BEGIN DELETE FROM U_LKAPONTSALDO WHERE (U_LKAPONTSALDO.U_LKITEMSALDO_ID = :OLD.U_LKITEMSALDO_ID); END;
● Criar a tabela personalizada U_LKAPONTSALDO
Coluna | Descrição | Tipo |
U_LKITEMSALDO_ID | Código Pai Item Saldo | Numero(9,0) |
NRAPONTAMENTO | Número do Apontamento Lenke | Numero(9,0) |
ITEMPA | Item Produto Acabado | Numero(9,0) |
ESTAB | Estabelecimento | Numero(9,0) |
PROGRAMACAO | Programação | Numero(9,0) |
ORDEM | Ordem Fabricação | Numero(9,0) |
Cria a Sequence
▪CALL CREATE_SEQUENCE('U_LKAPONTSALDO', 'U_LKAPONTSALDO_ID');
Para esta tarefa é obrigatório configurar o item anterior a este "RECALCULO DE CUSTO E CONTABILIZAÇÃO"
Criar consulta personalizada através do Person3c.exe com o nome "SEL_LENKE_MBSAPONT"
Criar consulta personalizada através do Person3c.exe com o nome "SEL_AGRO_APONTAMENTO_INTEGRADO"
Criar consulta personalizada através do Person3c.exe com o nome:"SEL_AGRO_ORDEM_FABRICACAO"
Criar consulta personalizada através do Person3c.exe com o nome:"SEL_BUSCAR_PRODUCAO_OFDT"
CARREGAMENTOS
Criar consulta personalizada através do Person3c.exe com o nome:"SEL_CARREGAMENTO"
Criar consulta personalizada através do Person3c.exe com o nome:"SEL_CARREGAMENTO_PALLET"
Criar consulta personalizada através do Person3c.exe com o nome:"SEL_ENCONTRAR_LOTE_CAIXA"
Criar consulta personalizada através do Person3c.exe com o nome:"SEL_ENCONTRAR_LOTE_SEM_CAIXA"
ESTORNO DE APONTAMENTOS
Criar tabela personalizada chamada de U_LOGINTESTORNO
Para a tabela acima deverá criar os seguintes campos
Descrição | Coluna | Tipo | Tamanho |
Estabelecimento | ESTAB | Número | 12 |
Apontamento | IDAPONT | Número | 12 |
Apontamento Lenke | NR_APONTAMENTO | Número | 12 |
Apont. Estorno Lenke | NR_ESTORNO | Número | 12 |
Erro | ERRO | Documento |
|
Data do Estorno | DATA | Data |
|
Hora do Estorno | HORA | Hora |
|
Produção Interna | SEQPI | Número | 12 |
Nº Caixa | NR_SSCC_CX | Texto | 100 |
Nº Pallet | NR_SSCC_PLT | Texto | 100 |
Para esta tabela é necessário criar os seguintes comando de banco
--Cria a Sequence
CALL CREATE_SEQUENCE('U_LOGINTESTORNO', 'U_LOGINTESTORNO_ID');
Criar consulta personalizada através do Person3c.exe com o nome:"SEL_ESTORNO_APONTAMENTO"
PLUGIN (IntegracaoLenkeExped.vpi) - CARGAS E DESCARGAS
INSTALAÇÃO E CONFIGURAÇÃO
Para que a Integração funcione corretamente, deve-se realizar os procedimentos referente a Instalação e Configuração deste documento.
Arquivos
Necessário que o arquivo IntegracaoLenkeExped.vpi e IntegracaoLenkeExped.conf estejam presentes na pasta Plugin da aplicação Agrotitan.
No arquivo IntegracaoLenkeExped.conf deve ser configurado em qual módulo e menu o Plugin de enviar as cargas para Lenke deve aparecer.
Se faz necessário também que o executáve IntegracaoLenke.exe esteja junto a pasta Plugins com os demais arquivos citados acima.
Tabelas Personalizadas
Necessário a criação de algumas tabelas Personalizadas utilizando o Person3c para que a integração funcione corretamente. São elas:
Tabela U_LOGINTEXPEDLENKE | ||
Nome da Coluna | Tipo da Coluna | Comentário |
CARGA | Numero (12,0) | Identificação da Carga |
ESTABCARGA | Numero (12,0) | Estab. da Carga |
ITEM | Numero (12,0) | Identificação do Item |
MENSAGEM | Documento | Mensagem de Log |
DATA | Data | Data do Lote |
HORA | Hora | Hora do Lote |
EVENTONOME | Texto(200) | Nome do Evento do Log |
Necessário criar a sequence:
CALL CREATE_SEQUENCE('U_LOGINTEXPEDLENKE', 'U_LOGINTEXPEDLENKE_ID');
Tabela U_LOGCARREXPLENKE | ||
Nome da Coluna | Tipo da Coluna | Comentário |
CARGA | Numero (12,0) | Identificação da Carga |
ESTABCARGA | Numero (12,0) | Estab. da Carga |
ITEM | Numero (12,0) | Identificação do Item |
MENSAGEM | Documento | Mensagem de Log |
DATA | Data | Data do Lote |
HORA | Hora | Hora do Lote |
EVENTONOME | Texto(200) | Nome do Evento do Log |
Necessário criar a sequence:
CALL CREATE_SEQUENCE('U_LOGCARREXPLENKE', 'U_LOGCARREXPLENKE_ID');
Tabela U_CARGAFAT_MBSORDC | ||
Nome da Coluna | Tipo da Coluna | Comentário |
ESTAB | Numero (12,0) |
|
CARGA | Numero (12,0) |
|
CD_EMPRESA | Numero (12,0) |
|
CD_FILIAL | Numero (12,0) |
|
NR_OC | Numero (12,0) |
|
Necessário criar a sequence:
CALL CREATE_SEQUENCE('U_CARGAFAT_MBSORDC', 'U_CARGAFAT_MBSORDC_ID');
Tabela U_PEDITEM_MBSOCITE | ||
Nome da Coluna | Tipo da Coluna | Comentário |
ESTAB | Numero (12,0) |
|
SERIE | Texto(3) |
|
NUMERO | Numero (12,0) |
|
SEQPEDITE | Numero (12,0) |
|
CD_EMPRESA | Numero (12,0) |
|
CD_FILIAL | Numero (12,0) |
|
NR_OC | Numero (12,0) |
|
NR_OC_ITEM | Numero (12,0) |
|
CARREGADO | Numero (1,0) |
|
Necessário criar a sequence:
CALL CREATE_SEQUENCE('U_PEDITEM_MBSOCITE', 'U_PEDITEM_MBSOCITE_ID');
Tabela U_EXLCAB_MBSOCITE | ||
Nome da Coluna | Tipo da Coluna | Comentário |
ESTAB | Numero (12,0) |
|
CARREGAMENTO | Texto(3) |
|
CD_EMPRESA | Numero (12,0) |
|
CD_FILIAL | Numero (12,0) |
|
NR_OC | Numero (12,0) |
|
NR_OC_ITEM | Numero (12,0) |
|
Necessário criar a sequence:
CALL CREATE_SEQUENCE('U_EXLCAB_MBSOCITE', 'U_EXLCAB_MBSOCITE_ID');
Tabela U_EXLDET_MBSPLTOIT | ||
Nome da Coluna | Tipo da Coluna | Comentário |
ESTAB | Numero (12,0) |
|
CARREGAMENTO | Texto(3) |
|
CD_EMPRESA | Numero (12,0) |
|
CD_FILIAL | Numero (12,0) |
|
NR_OC | Numero (12,0) |
|
NR_OC_ITEM | Numero (12,0) |
|
NR_PALLET_OC_IT | Numero (12,0) |
|
Necessário criar a sequence:
CALL CREATE_SEQUENCE('U_EXLDET_MBSPLTOIT', 'U_EXLDET_MBSPLTOIT_ID');
Tabela U_CARREGAMENTO_ERR | ||
Nome da Coluna | Tipo da Coluna | Comentário |
ESTAB | Numero (12,0) |
|
CARGA | Numero (12,0) |
|
ERRO | Documento |
|
ESTABPEDIDO | Numero (12,0) |
|
SERIE | Texto(3) |
|
NUMERO | Numero (12,0) |
|
SEQPEDITEM | Numero (12,0) |
|
DTHORAERRO | Data e Hora |
|
Necessário criar a sequence:
CALL CREATE_SEQUENCE('U_CARREGAMENTO_ERR', 'U_CARREGAMENTO_ERR_ID');
Tabela ITEMGRUPO
Necessário criar novo campo na tabela ITEMGRUPO para que defina quais grupos serão sincronizados com o Sistema da Lenke a cada envio de Cargas.
Desc. Completa | Sincronizar Com a Lenke? |
Desc. Reduzida | Sincronizar? |
Nome da Coluna | SINCLENKE |
Dica p/ o Usuário | Sincronizar Com a Lenke? |
Tipo da Coluna | Sim/Não (S/N) |
Nome da Guia | Integração Lenke |
Rodar Update abaixo para popular os dados setando os grupos para que não envie para Lenke.
INSERT INTO ITEMGRUPO_U (GRUPO, SINCLENKE) SELECT (GRUPO), ('N') FROM ITEMGRUPO;
Tabela CARGAFAT
Necessário criar novos campos na tabela CARGAFAT para que seja possível alimentar informações na tabela MBS_ORDEM_CARREGAMENTO.
Desc. Completa | Data Planejamento |
Desc. Reduzida | Data Planej. |
Nome da Coluna | DT_PLANEJADA |
Dica p/ o Usuário | Data Planejamento Carregamento da Carga. |
Tipo da Coluna | Data |
Nome da Guia | Integração Lenke |
Desc. Completa | Destino do Produto |
Desc. Reduzida | Dest. do Produto |
Nome da Coluna | DESTINO_PRODUTO |
Dica p/ o Usuário | Destino do Produto |
Tipo da Coluna | Texto(80) |
Nome da Guia | Integração Lenke |
Trigger & Procedure
Se faz necessário criar duas Trigger e uma Procedure para que a Integração de dados do Sistema Agrotitan passe a alimentar/modificar algumas colunas como a Resposta NF e o Fechamento da Carga.
Atualizar Resposta NF
Necessário criar uma Procedure e uma Trigger que estão localizadas na pasta Trigger & Procedure com o nome de ATUALIZAR_RESPOSTA_NF.SQL. Para que seja possível realizar esse procedimento precisará estar logado com o usuário SYSDBA no banco e rodar a linha abaixo.
GRANT INSERT, SELECT, UPDATE, DELETE ON LENKE.MBS_OC_ITEM TO VIASOFT;
Atualizar Situação Carga
Necessário criar uma Trigger que está localizada na pasta Trigger & Procedure com o nome de ATUALIZAR_SITUACAO_CARGA.SQL.Para que seja possível realizar esse procedimento precisará estar logado com o usuário SYSDBA no banco e rodar a linha abaixo.
GRANT INSERT, SELECT, UPDATE, DELETE ON LENKE.MBS_ORDEM_CARREGAMENTO TO VIASOFT;
Consultas Personalizadas
Necessário a criação de Algumas consultas Personalizadas para que a Integração funcione corretamente. Utilizando o Person3c logado com o usuário VIASOFT criara as Consultas abaixo.
Será disponibilizado em arquivos “.SQL” os Scripts das consultas para melhor entendimento.
Em uso setar 0: Privado (Plugin), tipo S = Seleção (SELECT) e marcar a Consulta Liberada para ser Utilizada pelos Usuários.
Criar em banco a VIEW VW_CARREGAMENTOS (Consultas\VW_CARREGAMENTOS.SQL). Para oracle criar a view no schema VIASOFT
PLUGIN (IntegracaoLenke.exe) - Plugin de Log’s
Abrir o banco de dados e executar os 2 comandos abaixo.
UPDATE VSCONSULTA SET TIPO='S', USO=0, LIBERADO='S' WHERE TABELA IN ('SEL_ENVIARITEMLENKE', 'SEL_REMOVERITEMLENKE');
Criar um usuário LENKE com a senha LENKE no Viasoft3c.
Criar uma conexão nos arquivos Viasoft.Start.server e no Viasoft.Server.Agro com o nome [INTEGRACAO_LENKE].
Também será necessário utilizar o ServerAgroXE pois a funções de integração estão nele, para configurar a conexão com a base Viasoft abra o arquivo ViasoftServerAgroXE.conexoes e insira na primeira conexão as informações para se conectar com a base Viasoft.
Copiar o IntegracaoLenke.exe para a pasta de plugin e pode abri-lo.