ظهور رسالة خطأ عند حذف سجل في Microsoft Dynamics CRM: "خطأ: فشل خدمة الحذف لتنظيف بعض الجداول"


الأعراض


عند حذف سجل في Microsoft Dynamics CRM، قد يتم تسجيل رسالة الخطأ التالية في سجل التطبيق:
نوع الحدث: خطأ
مصدر الحدث: مسكرمديليتيونسيرفيسي
فئة الحدث: بلا

معرف الحدث: 16387
التاريخ: التاريخ
الوقت: الوقت
أنا المستخدم: n/A

اسم _ جهاز الكمبيوتر من جهاز الكمبيوتر:
الوصف:
خطأ: فشل في حذف خدمة لتنظيف بعض الجداول.

السبب


تحدث هذه المشكلة لعدم وجود قيد على جدول وحدة السجل الذي يتم حذفه. بالإضافة إلى ذلك، قد لا يكون المستخدم الذي قام بحذف السجل الحقوق حذف كافة السجلات المرتبطة.

على سبيل المثال، افترض أن لديك حقوق لحذف جهات الاتصال فقط. حاول حذف جهة اتصال المقترنة بالحالات الثلاث. في Microsoft Dynamics CRM، يتم تعيين علاقة تتالي بين الكيان المسؤول وكيان الحالة إلى "تتالي حذف كافة". ولذلك، يتم تعيين سجل جهة الاتصال إلى حالة حذف في قاعدة بيانات Microsoft Dynamics CRM. ومع ذلك، لم تكن حقوق لحذف الحالات. لذلك، لم يتم تعيين حالة الحذف على ملفات القضايا. عند محاولة "خدمة الحذف" لحذف سجل جهة الاتصال، حظر قيد هذا الحذف لأن هناك ثلاث حالات الموجودة التي تم تعيينها لجهة الاتصال. لحذف هذا السجل بنجاح، يجب حذف السجلات التي تسبب تعارض القيد.

الحل


لحل هذه المشكلة، اتبع الخطوات التالية.

ملاحظة: قبل اتباع الإرشادات الموجودة في هذه المقالة، تأكد من أن لديك نسخة احتياطية كاملة من قاعدة البيانات التي يمكنك استعادة حالة حدوث مشكلة.

لتحديد الجدول الذي فشل "خدمة الحذف"، اتبع الخطوات التالية:
  1. في خادم Microsoft Dynamics CRM، انقر فوق ابدأ، انقر فوق
    تشغيل، اكتب cmdوانقر فوق
    OK.
  2. في موجه الأوامر، اكتب الدليلcrmdeletionservice.exe – runonceومن ثم اضغط ENTER.

    ملاحظة: بشكل افتراضي، ملف Crmdeletionservice.exe موجود في محرك الأقراص: دليل Dynamics CRM\server\bin \program files\Microsoft.

    وبعد ذلك، تتلقى رسالة مشابهة للرسالة التالية:
    لا يمكن مسح الجداول التالية: الحملة
    ملاحظة: الجدول الذي يتم إرجاعه في الرسالة هو الجدول الذي فشل "خدمة الحذف".
يوضح المثال التالي كيفية حل هذه المشكلة لجدول الحملة.

لحل هذه المشكلة لجدول الحملة، اتبع الخطوات التالية:
  1. تشغيل عبارة في محلل استعلام SQL. للقيام بذلك، اتبع الخطوات التالية:
    1. انقر فوق ابدأوأشر إلى كافة البرامج، وأشر إلى Microsoft SQL Server، وثم انقر فوق استعلام محلل.
    2. تشغيل الاستعلام التالي مقابل
      قاعدة بيانات عن اسم المؤسسة.

      ملاحظة: اسم المؤسسة عنصرا نائبا لاسم المؤسسة الفعلي.
      delete from Campaign where DeletionStateCode = 2
      هذا الاستعلام بإرجاع رسالة مشابهة للرسالة التالية:
      حذف العبارة يتعارض مع القيد "مرجع العمود" 'campaign_leads'. حدث التعارض في قاعدة بيانات 'اسم المؤسسةعن'، الجدول 'ليدباسي' عمود 'معرف الحملة'. تم إنهاء العبارة.
  2. تصحيح السجلات التي تتسبب في حدوث تعارض القيد باستخدام عبارة مشابهة بالبيان التالي.
    Update LeadBase set CampaignId=null WHERE CampaignId IN (SELECT CampaignId FROM CampaignBase WHERE DeletionStateCode = 2)
    ملاحظة: الجدول والحقول التي يمكنك استخدامها في القائمة تعتمد على الرسالة التي تلقيتها في الخطوة 1b سابقا في هذا القسم. في هذا المثال، يتم تعيين الحقل معرف الحملة في الجدول ليدباسي إلى قيمة خالية في حالة الحملة تم وضع علامة للحذف.
  3. تشغيل الأمر التالي للتحقق من أنه قد تم تصحيح كافة الجداول.
    crmdeletionservice.exe –runonce 
    إذا استمرت مشكلة، كرر الخطوات من 1 إلى 3 سابقا في هذا القسم لتصحيح القيود الأخرى.