الأعراض
أثناء إصدار دفعة فاتورة الحسابات المدينة، تتوقف الدفعة مؤقتا مع رسالة النظام 6909. سيعطي ardebug رسالة الخطأ التالية:
انتهاك قيد PRIMARY KEY 'HistDocSlsTax0'. لا يمكن إدراج مفتاح مكرر في الكائن 'HistDocSlsTax'.
السبب
هناك فاتورة أخرى في جدول ardoc بنفس الرقم المرجعي مثل إحدى الفواتير في هذه الدفعة. والنتيجة هي أن سليمان يحاول إدراج سجل مكرر في جدول HistDocSlsTax.
الحل البديل
للتغلب على هذه المشكلة، اتبع الخطوات التالية:
-
ابحث عن السجلات المكررة. للقيام بذلك، قم بتشغيل عبارة SQL التالية:
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
لاحظ <XXXXXX> هو عنصر نائب لرقم الدفعة المعلقة.سيعيد هذا البرنامج النصي سجل ardoc للفاتورة (أو أكثر) بنفس الرقم المرجعي.
-
قم بتحديث الفاتورة في الدفعة المعلقة إلى شيء مختلف قليلا، مثل إضافة "A" إلى النهاية. فيما يلي مثال على عبارات التحديث الضرورية:
update ardoc set refnbr='01013A' where refnbr='010130' and batnbr='<XXXXXX>'update artran set refnbr='01013A' where refnbr='010130' and batnbr='<XXXXXX>'
مزيد من المعلومات
عند تحديد رقم مرجع جديد، تأكد من عدم استخدام الرقم المرجعي الجديد بالفعل. حاول أيضا الاحتفاظ برقم الفاتورة بنفس طول الأرقام المرجعية الأخرى.