Page tree

Produto:

Logix.

Ocorrência:

LINV0010 - Inventário Contábil de Estoques - Tabelas do processo

Passo a passo:

Procedimento para geração do inventário Contábil: LINV0008 - Inventário Contábil de Estoques para Itens sem Grade/Dimensional, regra para o inventário contábil - registros nas tabelas:

SUP2730 - Seleciona itens da Empresa, SUP2740 - Seleciona Itens em Terceiros, SUP2750 - Seleciona Itens de terceiros, gravam registros nas tabelas W_INVENT e SUP_W_INV_COMPL.

O SUP2760 - Manutenção de dados selecionados, faz inclusão, consulta, modificação e exclusão os registros das tabelas W_INVENT e SUP_W_INV_COMPL, caso precise alterar.

O index unique das tabelas é o num_transac/num_trans.
O num_transac da tabela W_INVENT é serial e o da SUP_W_INV_COMPL é integer.
O num_transac é calculado na W_INVENT e é replicado para a SUP_W_INV_COMPL.
O num_transac/num_trans das tabelas é o relacionamento entre os dois registros.

Ao processar o SUP1930 - Livro de inventário, com o campo Versão oficial marcado, os dados das tabelas W_INVENT e SUP_W_INV_COMPL são replicados para as tabelas INVENT e SUP_INV_COMPL e excluídos das tabelas W_INVENT e SUP_W_INV_COMPL.
Nestas tabelas a lógica é:
O num_transac da tabela INVENT é serial e o da SUP_W_INV_COMPL é integer.
O num_transac é calculado na INVENT e é replicado para a SUP_W_INV_COMPL.
O num_transac/num_trans das tabelas é o relacionamento entre os dois registros.

No processamento do SUP1930 quando o campo Versão oficial está marcado, sempre mantém o mês/ano que está processando, e o mês anterior é transferido para as tabelas H_INVENT e SUP_H_INV_COMPL.

O serial das tabelas é alimentando pelo banco de dados, então nunca será duplicado.

Quando ocorre erro de registro duplicado nas tabelas SUP_W_INV_COMPL ou  SUP_INV_COMPL: pode ter ocorrido manutenção via banco de dados, onde somente os registros das tabelas W_INVENT e/ou INVENT foram excluídos, deixando como lixo nas tabelas complementares SUP_W_INV_COMPL ou  SUP_INV_COMPL. 

Para correção terá que executar select(max) nas tabelas pares, para verificar se estão iguais (deveriam ser iguais), verificar quais registros estão sem ligação (registros que estão sem o seu par) e excluí-los.

Comandos para verificação:

1.1. select max(num_transac) from w_invent where cod_empresa = '01'

1.2. select max(num_trans) from sup_w_inv_compl where empresa = '01'

---

2.1. select max(num_transac) from invent where cod_empresa = '01'

2. 2. select max(num_trans) from sup_inv_compl where empresa = '01'

---

3.1. select max(num_transac) from h_invent where cod_empresa = '01'

3.2. select max(num_trans) from sup_h_inv_compl where empresa = '01'

---

Registros sem pares:

4.1. select * from w_invent where cod_empresa = '01' and num_transac not in (select num_trans from sup_w_inv_compl where empresa = '01')

4.2. select * from sup_w_inv_compl where empresa = '01' and num_trans not in (select num_transac from w_invent where cod_empresa = '01')

---

5.1. Select * from invent where cod_empresa = '01' and num_transac not in (select num_trans from sup_inv_compl where empresa = '01')

5.2. select * from sup_inv_compl where empresa = '01' and num_trans not in (select num_transac from invent where cod_empresa = '01')

 

  • Registros inconsistentes, terão que ser excluídos das tabelas e casos onde a invent não tem registro correspondente na sup_inv_compl, até reprocessar o período.
  • Antes de qualquer alteração no banco de dados, indicado fazer Backup de todos os registros das tabelas.


Observações:

Versão 10.02/11 e 12.