Triệu chứng
Trong khi phát hành một tài khoản phải thu hóa đơn lô, lô tạm ngừng với hệ thống thông báo 6909. Ardebug sẽ đưa ra thông báo lỗi sau:
Vi phạm ràng buộc PRIMARY KEY 'HistDocSlsTax0'. Không thể chèn khóa trùng lặp vào đối tượng 'HistDocSlsTax'.
Nguyên nhân
Có một hóa đơn trong bảng ardoc cùng một số tham chiếu như một trong các hóa đơn trong lô này. Kết quả là Solomon đang cố gắng chèn một bản ghi trùng lặp trong bảng HistDocSlsTax.
Cách giải quyết
Để khắc phục sự cố này, hãy làm theo các bước sau:
-
Tìm bản ghi trùng lặp. Để thực hiện điều này, hãy chạy câu lệnh SQL sau đây:
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
Lưu <xxxXXX> là chỗ dành sẵn cho số lô đã tạm ngừng.Kịch bản này sẽ trả về hồ sơ ardoc của hai (hoặc nhiều hơn) hóa đơn với cùng một số tham chiếu.
-
Cập nhật hóa đơn trong lô tạm ngừng thành khác một chút, chẳng hạn như bằng cách thêm "A" vào cuối. Dưới đây là ví dụ về các câu lệnh cập nhật cần thiết:
update ardoc set refnbr='01013A' where refnbr='010130' and batnbr='<XXXXXX>'update artran set refnbr='01013A' where refnbr='010130' and batnbr='<XXXXXX>'
Thông tin Bổ sung
Khi bạn chọn một số tham chiếu mới, hãy đảm bảo rằng số tham chiếu mới chưa được sử dụng. Ngoài ra, cố gắng giữ cho số hóa đơn có cùng độ dài như các số tham chiếu khác.