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

يفتقر سجل إلى قيمة لحقل معلَّم كمطلوب في المؤسسة الهدف.

يظهر أثناء: DML وقت التشغيل، غالبًا تنفيذ اختبار Apex أو تحميل بيانات

المعنى

يعني REQUIRED_FIELD_MISSING أن إدراج سجل أو تحديثه أغفل حقلاً تتطلب المؤسسة الهدف قيمة له. غالبًا ما يكون هذا خاصًا بالبيئة: إعداد الحقل كمطلوب، أو الأتمتة التي تملؤه عادةً، قد يختلفان بين المؤسسة المصدر والهدف.

يمكن أن يكون الحقل مطلوبًا بطريقتين مختلفتين، إما معلَّمًا كمطلوب على مستوى تعريف الحقل، أو مطلوبًا فقط على تخطيط صفحة معيّن، وتتصرف الطريقتان بشكل مختلف: تفرض الواجهة الحقول المطلوبة على مستوى التخطيط لكن API أو Apex لا يفعلان ذلك، وهو مصدر شائع للالتباس عندما ينجح الحفظ عبر Apex لكنه كان سيُحظر في المتصفح.

التشخيص

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

مصنع الاختبار لا يملأ حقلاً أصبح مطلوبًا حديثًا
أصبح حقل مطلوبًا مؤخرًا في المؤسسة الهدف، لكن مصنع بيانات اختبار Apex الذي يبني السجلات لم يُحدَّث أبدًا.
إعداد الحقل المطلوب يختلف بين البيئات
تم تغيير علامة "مطلوب" للحقل في بيئة اختبار واحدة لكن لم تُرقَّ إلى المؤسسة الهدف، أو العكس.
يتم تخطي أتمتة القيمة الافتراضية في سياق الاختبار
لا يعمل تدفق (flow) أو مشغّل (trigger) يملأ الحقل عادةً، أو يُتجاوَز عمدًا، أثناء تنفيذ اختبار عملية النشر.

الحل

  1. حدّث مصنع بيانات الاختبار
    أضف الحقل المفقود في كل مكان تبني فيه اختبارات Apex ذلك الكائن، بحيث تُملأ الحقول المطلوبة دائمًا.
  2. زامن إعداد "مطلوب" عبر المؤسسات
    انشر علامة "مطلوب" للحقل كجزء من نفس مجموعة التغييرات بحيث تتطابق المؤسسة المصدر والهدف.
  3. تأكد من تشغيل أتمتة القيمة الافتراضية
    تحقق من أن أي تدفق أو مشغّل مسؤول عن تعيين القيمة الافتراضية للحقل نشط وغير متجاوَز في سياق الاختبار.
من واقع الاستخدام

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

يكشف الفرق بين البيئات في Serpent AI عن تعارضات الحقول المطلوبة بين المؤسسة المصدر والهدف قبل تشغيل عملية النشر، لا بعد فشلها. راجع مكتبة أخطاء نشر Salesforce.

الـ metadata والبيانات في مسار نشر واحد داخل Serpent

الوقاية

ابنِ مصانع بيانات الاختبار من المخطط الحي، لا من قائمة حقول ثابتة
اقرأ الحقول المطلوبة من نتيجة describe الخاصة بالكائن عند بناء سجلات الاختبار، بحيث يُلتقَط أي حقل أصبح مطلوبًا حديثًا تلقائيًا بدلاً من الفشل الصامت في CI.
ميّز بين المطلوب على مستوى الحقل والمطلوب على مستوى التخطيط في مراجعة الكود
ضع علامة على أي تغيير في إعداد "مطلوب على مستوى التعريف" لمراجعة منفصلة عن التغييرات المطلوبة على مستوى التخطيط، لأن الأول فقط يؤثر على إدراجات Apex وAPI.
أطلق علامة "مطلوب" للحقل مع أي أتمتة تعتمد عليها
اجمع تغيير البيانات الوصفية للحقل مع تدفق أو مشغّل القيمة الافتراضية في نفس عملية النشر، بحيث لا يصلان أبدًا خارج التزامن.
أسئلة شائعة

REQUIRED_FIELD_MISSING، بالتفصيل

لماذا ينجح نفس اختبار Apex في مؤسسة لكنه يفشل في أخرى؟
من المرجح أن الحقل مطلوب في مؤسسة واختياري في الأخرى. قارن إعداد "مطلوب" للحقل بين البيئتين.
هل يمنع حقل مطلوب على تخطيط صفحة إدراج Apex؟
لا. تُفرض إعدادات "مطلوب" على مستوى تخطيط الصفحة في الواجهة فقط. لا تُحظر إدراجات Apex وAPI إلا بواسطة الحقول المعلَّمة كمطلوبة على مستوى تعريف الحقل.
هل يخبرني هذا الخطأ بأي حقل تحديدًا مفقود؟
عادةً نعم. عادةً ما يسرد نص الخطأ اسم API للحقل أو الحقول المطلوبة المفقودة مباشرة، فابدأ من هناك قبل التحقق من المخطط الكامل للكائن.

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

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

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

بدون التزام.