14693 - Não foi encontrado o Registro-Mestre para este Registro
Problema: Descrição do Problema: Ao validar o plano na tela F043VMP - Cadastros / Modelos de plano / Validade: Ocorre a seguinte mensagem:
Não foi possível atualizar as contas nas tabelas contábeis:
Não foi possível atualizar conta 2648 para 2648: Erro de acesso ao banco de dados:
Não foi encontrado o Registro-Mestre para este Registro.
E640Rat(CodEmp;NumLct) E640LCT(CodEmp;NumLct)
Rotina / Tela: Na tela F043VMP - Cadastros / Modelos de plano / Validade
Solução: Solução 14693: A mensagem ocorre porque:
Na tabela E640RAT, existe uma conta contábil diferente da tabela E640LCT.
Exemplo: Na tabela E640LCT existe o lançamento número 1300/000186, neste lançamento existe a conta 2648 no endereço do débito ou no endereço do crédito. A referida conta 2648 exige rateio, consequentemente gera um lançamento número 1300/000186 também na tabela E640RAT. Nesta tabela, ao invés existir a conta 2648, no campo CtaRed existe a conta 2730.
É necessário excluir este lançamento e fazer novamente. Após regularizar o lançamento, processar a tela novamente F043VMP - Cadastros / Modelos de plano / Validade.
OU
Em acesso via TeamViewer na base do cliente foi verificado a existência de lançamentos diferentes, para o mesmo número de lançamento.
Ex.:
O lançamento 1300193574 estava na E640LCT debitando na conta 3854 e creditando na conta 82507
Na E640RAT tinha, além do registro para a conta 3854 com 100% do valor, mais uma linha para a conta 2648 num valor muito diferente.
A impressão é que foi feito uma importação, pois o sistema não gravaria dois registros na RAT com configurações totalmente desconectadas.
Isso aconteceu para as contas 2648, 3211 e 3702.
O comando abaixo identifica todas as RAT inválidas nas tabelas _HIS:
SELECT * FROM E640RAT_HIS A
WHERE NOT EXISTS(SELECT 1 FROM E640LCT_HIS B
WHERE B.CODEMP=A.CODEMP
AND B.NUMLCT=A.NUMLCT
AND A.CTARED IN (B.CTADEB,B.CTACRE))
O mesmo script, sem _HIS foi executado na base de produção e retornaram os mesmos registros.
Na base de homologação, os registros listados pelo script acima foram eliminados e o processo de mudança do plano foi concluído.
Para eliminar todos os registros deve ser executado o seguinte comando:
begin transaction;
delete FROM E640RAT_HIS
WHERE SITRAT='3'
AND NOT EXISTS(SELECT 1 FROM E640LCT_HIS B
WHERE B.CODEMP=E640RAT_HIS.CODEMP
AND B.NUMLCT=E640RAT_HIS.NUMLCT
AND E640RAT_HIS.CTARED IN (B.CTADEB,B.CTACRE))
Após identificar que eliminou 37 registros, deve ser executado COMMIT.
Não foi possível atualizar as contas nas tabelas contábeis:
Não foi possível atualizar conta 2648 para 2648: Erro de acesso ao banco de dados:
Não foi encontrado o Registro-Mestre para este Registro.
E640Rat(CodEmp;NumLct) E640LCT(CodEmp;NumLct)
Rotina / Tela: Na tela F043VMP - Cadastros / Modelos de plano / Validade
Solução: Solução 14693: A mensagem ocorre porque:
Na tabela E640RAT, existe uma conta contábil diferente da tabela E640LCT.
Exemplo: Na tabela E640LCT existe o lançamento número 1300/000186, neste lançamento existe a conta 2648 no endereço do débito ou no endereço do crédito. A referida conta 2648 exige rateio, consequentemente gera um lançamento número 1300/000186 também na tabela E640RAT. Nesta tabela, ao invés existir a conta 2648, no campo CtaRed existe a conta 2730.
É necessário excluir este lançamento e fazer novamente. Após regularizar o lançamento, processar a tela novamente F043VMP - Cadastros / Modelos de plano / Validade.
OU
Em acesso via TeamViewer na base do cliente foi verificado a existência de lançamentos diferentes, para o mesmo número de lançamento.
Ex.:
O lançamento 1300193574 estava na E640LCT debitando na conta 3854 e creditando na conta 82507
Na E640RAT tinha, além do registro para a conta 3854 com 100% do valor, mais uma linha para a conta 2648 num valor muito diferente.
A impressão é que foi feito uma importação, pois o sistema não gravaria dois registros na RAT com configurações totalmente desconectadas.
Isso aconteceu para as contas 2648, 3211 e 3702.
O comando abaixo identifica todas as RAT inválidas nas tabelas _HIS:
SELECT * FROM E640RAT_HIS A
WHERE NOT EXISTS(SELECT 1 FROM E640LCT_HIS B
WHERE B.CODEMP=A.CODEMP
AND B.NUMLCT=A.NUMLCT
AND A.CTARED IN (B.CTADEB,B.CTACRE))
O mesmo script, sem _HIS foi executado na base de produção e retornaram os mesmos registros.
Na base de homologação, os registros listados pelo script acima foram eliminados e o processo de mudança do plano foi concluído.
Para eliminar todos os registros deve ser executado o seguinte comando:
begin transaction;
delete FROM E640RAT_HIS
WHERE SITRAT='3'
AND NOT EXISTS(SELECT 1 FROM E640LCT_HIS B
WHERE B.CODEMP=E640RAT_HIS.CODEMP
AND B.NUMLCT=E640RAT_HIS.NUMLCT
AND E640RAT_HIS.CTARED IN (B.CTADEB,B.CTACRE))
Após identificar que eliminou 37 registros, deve ser executado COMMIT.