كيفية إصلاح CIRCULAR_DEPENDENCY في عمليات نشر Salesforce
يشير مكوّنان أو أكثر من الميتاداتا إلى بعضهما البعض، فلا تستطيع Salesforce تحديد ترتيب نشر صالح.
يظهر أثناء: التحقق من صحة نشر الميتاداتا، قبل تنفيذ أي اختبارالمعنى
يحدث CIRCULAR_DEPENDENCY عندما يتطلب كل من مكونين، غالبًا فئات Apex أو سجلات ميتاداتا مخصصة أو أنواع سجلات، وجود الآخر أولًا. تنشر Metadata API المكونات وفق ترتيب الاعتماد، والحلقة تعني عدم وجود ترتيب صالح يحقق الشرطين معًا.
يُعد Apex السبب الأكثر شيوعًا لأن المُصرّف يحل مراجع الفئات وقت النشر: إذا كان توقيع الفئة A يشير إلى الفئة B وتوقيع الفئة B يشير إلى الفئة A، فلا يمكن لأي منهما أن يُصرَّف بمفرده أولًا، بل معًا فقط ضمن نفس معاملة النشر.
الأسباب الشائعة
الحل
- انشر نسخة مبدئية (stub) أولًا لكسر الحلقةانشر جانبًا واحدًا من الزوج بتطبيق بسيط أو فارغ، ثم انشر المنطق الفعلي في خطوة ثانية.
- ادمج المكونين في عملية نشر واحدةاجمع الفئات أو الميتاداتا المترابطة في عملية نشر واحدة بحيث تحل Salesforce المجموعة بأكملها معًا بدلًا من ترتيبها فرديًا.
sf project deploy start --source-dir force-app/main/default/classes/ClassA.cls force-app/main/default/classes/ClassB.cls - أعد الهيكلة لإزالة الإشارة المتبادلةاستخرج المنطق المشترك إلى فئة أو واجهة ثالثة بحيث لا يعتمد أي من المكونين الأصليين مباشرة على الآخر.
إزاي Serpent بتمنع ده
يتتبّع Serpent المكونات التي تمسّها المهمة ويشير إلى المكونات المترابطة قبل تقسيمها بين مهام منفصلة، بحيث يُنشر الزوج الدائري معًا بدلًا من الفشل في منتصف الطريق. اطّلع على مكتبة أخطاء نشر Salesforce.

الوقاية
أخطاء ذات صلة
CIRCULAR_DEPENDENCY: الإجابة
ابدأ مجانًا. بدون بطاقة ائتمان، وبدون تثبيت، وبدون التزام.
يتم الإعداد في أقل من 15 دقيقة. بدون الحاجة لتوظيف DevOps.
