Problembeschreibung
Beim Freigeben eines Debitorenrechnungsbatches wird der Batch mit der Systemmeldung 6909 ausgesetzt. Der ardebug gibt die folgende Fehlermeldung aus:
Verletzung der PRIMARY KEY-Einschränkung "HistDocSlsTax0". Es kann kein doppelter Schlüssel in das 'HistDocSlsTax'-Objekt eingefügt werden.
Ursache
Die ardoc-Tabelle enthält eine weitere Rechnung mit der gleichen Referenznummer wie eine der Rechnungen in diesem Batch. Das Ergebnis ist, dass Solomon versucht, einen doppelten Datensatz in die HistDocSlsTax-Tabelle einzufügen.
Problemumgehung
Führen Sie die folgenden Schritte aus, um dieses Problem zu umgehen:
-
Suchen Sie die doppelten Datensätze. Führen Sie dazu die folgende SQL-Anweisung aus:
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
Beachten Sie<XXXXXXXX> ein Platzhalter für die angehaltene Batchnummer ist.Dieses Skript gibt den ardoc-Datensatz der beiden (oder mehr) Rechnungen mit der gleichen Referenznummer zurück.
-
Aktualisieren Sie die Rechnung im angehaltenen Batch auf etwas anderes, z. B. durch Hinzufügen eines "A" am Ende. Hier sehen Sie ein Beispiel für die erforderlichen Updateanweisungen:
update ardoc set refnbr='01013A' where refnbr='010130' and batnbr='<XXXXXX>'update artran set refnbr='01013A' where refnbr='010130' and batnbr='<XXXXXX>'
Weitere Informationen
Wenn Sie eine neue Referenznummer auswählen, stellen Sie sicher, dass die neue Referenznummer noch nicht verwendet wurde. Versuchen Sie auch, die Rechnungsnummer auf dieselbe Länge wie die anderen Referenznummern zu halten.