كيفية إصلاح DUPLICATE_DEVELOPER_NAME في عمليات نشر Salesforce

يشترك مكوّنا metadata في نفس الـ Developer Name، الذي يتطلب Salesforce أن يكون فريدًا.

تظهر أثناء: التحقق من نشر metadata، قبل تنفيذ أي DML

المعنى

يعني DUPLICATE_DEVELOPER_NAME أن عملية النشر تحاول إنشاء مكوّن، أو record type، أو global value set، أو permission set، يكون فيه الـ Developer Name موجودًا بالفعل في المؤسسة المستهدفة، أو يتعارض مع مكوّن آخر في نفس عملية النشر. يجب أن تكون أسماء الـ Developer Name فريدة ضمن الـ namespace الخاص بها، لذا يحظر Salesforce عملية النشر بدلاً من اختيار فائز.

يشيع هذا الخطأ في المكوّنات التي لا تملك namespace خاصًا بكل كائن، مثل global value sets وpermission sets، لأن record types والـ custom fields مرتبطة بنطاق الكائن الأصل ولا تتعارض إلا مع مثيلاتها على نفس الكائن.

التشخيص

الأسباب الشائعة

تعارض بسبب التطوير المتوازي
أنشأ مطوّران بشكل مستقل مكوّنًا بنفس الـ Developer Name في فروع أو sandboxes منفصلة.
مكوّن أُعيدت تسميته ترك نسخة قديمة مكررة
أُعيدت تسمية مكوّن في المصدر، لكن الـ Developer Name القديم لا يزال موجودًا في المؤسسة المستهدفة، وتحاول عملية النشر إضافة نسخة ثانية.
metadata تم نسخها ولصقها ولم تُعَد تسميتها أبدًا
تم تكرار ملف metadata XML كنقطة انطلاق لمكوّن جديد، ولم يتم تغيير الـ Developer Name أبدًا قبل الـ commit.

الحل

  1. أعِد تسمية المكوّن الأحدث
    امنح المكوّن الوارد Developer Name فريدًا وحدّث أي metadata تشير إليه بهذا الاسم.
  2. احذف النسخة القديمة المكررة إن كانت غير مستخدمة
    إذا لم تعد المكوّن الموجود في المؤسسة المستهدفة مطلوبًا فعليًا، فأزله قبل إعادة النشر.
  3. نسّق قواعد التسمية
    اتفقوا كفريق على نمط تسمية لـ record types وvalue sets وpermission sets لمنع التعارضات المستقبلية.
من واقع الاستخدام

إزاي Serpent بتمنع ده

يرصد Serpent AI تداخل أسماء الـ Developer Name عبر المهام المتزامنة في وقت تحديد النطاق، قبل أن يتصادم فرعا عمل في عملية نشر. راجع مكتبة أخطاء نشر Salesforce.

أداة بناء pipelines لـ CI/CD بلا كود في Serpent

الوقاية

أضف بادئة لأسماء الـ Developer Name حسب الفريق أو مجال الميزة
اعتمدوا اصطلاح تسمية، مثل بادئة الفريق أو الوحدة، لـ global value sets وpermission sets حتى لا يختار شخصان يعملان بالتوازي نفس الاسم.
استرجع metadata حديثة قبل إنشاء مكوّن جديد
زامن مع المؤسسة المستهدفة مباشرة قبل إضافة record type أو value set، حتى يكون أي اسم موجود هناك مسبقًا مرئيًا محليًا أولاً.
لا تترك أبدًا Developer Name منسوخًا ولصقًا دون تعديل
اجعل إعادة تسمية الـ Developer Name والـ label أول تعديل عند تكرار ملف metadata موجود كقالب.
أسئلة شائعة

DUPLICATE_DEVELOPER_NAME، بالإجابات

هل يحل Salesforce تعارض الـ Developer Name تلقائيًا في أي وقت؟
لا. يحظر Salesforce عملية النشر دائمًا بدلاً من إعادة تسمية المكوّنات أو دمجها بصمت، لذا يجب حل التعارض يدويًا.
هل يمكنني إعادة تسمية Developer Name بعد إنشاء المكوّن؟
بالنسبة لمعظم أنواع metadata، لا؛ يُحدَّد الـ Developer Name عند الإنشاء ويكون دائمًا فعليًا. يمكنك عادةً تغيير الـ label، لكن الـ Developer Name الأساسي يبقى ثابتًا.
هل يجب أن تكون أسماء الـ Developer Name فريدة عبر المؤسسة بأكملها، أم لكل كائن فقط؟
يعتمد ذلك على نوع metadata. تقتصر record types والـ custom fields على نطاق كائنها، لذا يمكن أن يوجد نفس الاسم على كائنين مختلفين؛ أما global value sets وpermission sets فهي على مستوى المؤسسة بأكملها ويجب أن تكون فريدة في كل مكان.

ابدأ مجانًا. بدون بطاقة ائتمان، وبدون تثبيت، وبدون التزام.

يتم الإعداد في أقل من 15 دقيقة. دون الحاجة لتوظيف متخصص DevOps.

هل تريد معرفة كيف يمكنكم الشحن أسرع قبل البدء؟ لنتحدث

بدون التزام.