ERP – Produção e Estoque – Problema na execução do integrador "Integrador Saldos Estoques": Não foi possível incluir o produto "XXXXXX" derivação "XXX" devido ao erro: Violação de chave Erro ao executar a integração de dados do ERP para o SPED Fiscal Bloc
Incidente
No módulo Gestão de Tributos, ao tentar realizar a integração da produção e estoque através da tela F660ISP - Controladoria / Gestão de Tributos / Escrituração / Integrações / Produção e Estoque, é apresentada a mensagem:
Problema na execução do integrador "Integrador Saldos Estoques": Não foi possível incluir o produto "XXXXXX" derivação "XXX" devido ao erro: Violação de chave
Erro ao executar a integração de dados do ERP para o SPED Fiscal Bloco K: Não foi possível incluir o produto "XXXXXX" derivação "XXX" devido ao erro: Violação de chave
Observação:
A mensagem pode ocorrer para outros processos, como por exemplo Integrador Ficha Técnica Padrão.
Causa
Esta mensagem é apresentada, quando o campo LSTVAL da tabela de controle de rotinas R900NXV está diferente do IDE (identificador único) das tabelas E660ETE, E60ESP, E660EPT ou E660FTE.
Solução
Para que a mensagem não seja apresentada ao efetuar a integração da Produção e Estoque no Bloco K do Sped Fiscal, realize os passos a seguir:
1. Em uma ferramenta de banco de dados, consulte o select abaixo, alterando a tabela de acordo com o processo apresentado na mensagem:
1.1. Se Integrador Ficha Técnica Padrão:
SELECT * FROM R900NXV WHERE CODPKY LIKE '%E660FTE%'
1.2. Se Integrador Saldos Estoques:
SELECT * FROM R900NXV WHERE CODPKY LIKE '%E660EPT%'
SELECT * FROM R900NXV WHERE CODPKY LIKE '%E660ESP%'
SELECT * FROM R900NXV WHERE CODPKY LIKE '%E660ETE%'
2. Compare a LSTVAL de cada CODPKY do selects acima, correspondente ao IDE de cada uma das tabelas:
SELECT MAX (IDEFTE) FROM E660FTE
SELECT MAX (IDEEPT) FROM E660EPT
SELECT MAX (IDEESP) FROM E660ESP
SELECT MAX (IDEETE) FROM E660ETE
2.1. Exemplo:
2.2. Conforme exemplo acima, temos então o seguinte resultado:
Tabela de saldos Tabela R900NXV
E660EPT.IDEEPT = 1097 LSTVAL = 1097
E660ESP.IDEESP = 394579 LSTVAL = 393504
E660ETE.IDEETE = null LSTVAL = 2
3. As informações precisam ser iguais nas duas tabelas, portanto, é necessário ajustar via banco, segue exemplo de comando:
UPDATE R900NXV SET LSTVAL = 394579 WHERE CODPKY = 'E660ESP'
UPDATE R900NXV SET LSTVAL = NULL WHERE CODPKY = 'E660ETE'
4. Após ajustar a tabela R900NXV, realize novamente a integração.