ERP – Integração – Violation of PRIMARY KEY constraint 'cp_e660rde'. Cannot insert duplicate key in object 'dbo.e660rde'. The duplicate key value is (3832, 1).]
Incidente
No módulo Gestão de Tributos, ao realizar a integração de notas fiscais, é retornada a mensagem: Violation of PRIMARY KEY constraint 'cp_e660rde'. Cannot insert duplicate key in object 'dbo.e660rde'. The duplicate key value is (3832, 1).].
Causa
Este incidente ocorre, pois o conteúdo da tabela E900NXV campo LstVal está com uma numeração inferior ao da tabela E660RDE campo IdeDis, assim o sistema atribui o próximo número que já existe na tabela E660RDE.
Conteúdo dos campos:
E900NXV.LSTVAL= 8
E660RDS.IDEDIS = 9
Durante a integração, é feito a leitura do campo E900NXV.LstVal e passado o próximo número, como o 9 já existe ocorre a violação de chave.
Solução
Para que esse incidente não ocorra, realize os passos a seguir:
1. Em uma ferramenta de banco, faça o select abaixo e verifique qual o último registro:
1.1. Se nota de Entrada:
SELECT MAX (IDEDIE) FROM E660RDE WHERE CODEMP = X
1.2. Se nota de Saída:
SELECT MAX (IDEDIS) FROM E660RDS WHERE CODEMP = X
2. Execute um segundo select abaixo:
2.1. Se nota de Entrada:
SELECT * FROM R900NXV WHERE CODPKY='E660RDE#1'
2.2. Se nota de Saída:
SELECT * FROM R900NXV WHERE CODPKY='E660RDS#1'
3. Como essas duas informações precisam ser iguais é necessário fazer o UPDATE abaixo:
3.1. Se nota de Entrada:
UPDATE R900NXV SET LSTVAL = (informar o número obtido no primeiro select) WHERE CODPKY='E660RDE#1'
3.2. Se nota de Saída:
UPDATE R900NXV SET LSTVAL = (informar o número obtido no primeiro select) WHERE CODPKY='E660RDS#1'
4. Após essa alteração, execute novamente a integração na tela F660INT- Controladoria / Gestão de Tributos / Escrituração / Integrações / Notas Fiscais.
Importante:
Utilizar o log do SQLMon para confirmar se o problema ocorre nas tabelas E660RDS e E660RDE.
Atenção! Antes de realizar qualquer alteração, analise o impacto que poderá ter em outros lançamentos/processos do sistema.