Sintomi
Durante il rilascio di un batch di fatture contabilità clienti, il batch viene sospeso con il messaggio di sistema 6909. Il ardebug darà il seguente messaggio di errore:
Violazione del vincolo PRIMARY KEY 'HistDocSlsTax0'. Impossibile inserire una chiave duplicata nell'oggetto 'HistDocSlsTax'.
Causa
C'è un'altra fattura nella tabella ardoc con lo stesso numero di riferimento di una delle fatture in questo batch. Il risultato è che Salomone sta provando a inserire un record duplicato nella tabella HistDocSlsTax.
Soluzione alternativa
Per risolvere il problema, procedere come segue:
-
Trovare i record duplicati. A questo scopo, eseguire l'istruzione SQL seguente:
select refnbr, doctype, batnbr, * from ardoc tablea where doctype='IN' and refnbr IN (select refnbr from ardoc tableb where doctype='IN' and tablea.refnbr=tableb.refnbr and tablea.tstamp<>tableb.tstamp and (tablea.batnbr='<XXXXXX>' OR tableb.batnbr='<XXXXXX>')) order by refnbr, batnbr
Nota <> XXXXXX è un segnaposto per il numero batch sospeso.Questo script restituirà il record ardoc delle due (o più) fatture con lo stesso numero di riferimento.
-
Aggiornare la fattura nel batch sospeso a qualcosa di leggermente diverso, ad esempio aggiungendo una "A" alla fine. Ecco un esempio delle istruzioni di aggiornamento necessarie:
update ardoc set refnbr='01013A' where refnbr='010130' and batnbr='<XXXXXX>'update artran set refnbr='01013A' where refnbr='010130' and batnbr='<XXXXXX>'
Ulteriori informazioni
Quando si seleziona un nuovo numero di riferimento, verificare che il nuovo numero di riferimento non sia già stato usato. Provare anche a mantenere la lunghezza del numero di fattura uguale a quella degli altri numeri di riferimento.