قد يعيد Apex سجلات أقل في إصدار Summer '26

يجلب إصدار Salesforce Summer '26 (API v67.0) تغييراً جذرياً لـ Apex. يمكن لهذا التغيير أن يغير نتائج الكود الخاص بك دون إظهار أي خطأ.

لسنوات عديدة، كان Apex يعمل في "وضع النظام" (system mode) بشكل افتراضي. وهذا يعني أن SOQL و SOSL و DML كانت تتجاهل أذونات المستخدم وقواعد المشاركة (sharing rules). قد يعرض الكود الخاص بك بيانات لمستخدمين لا ينبغي لهم رؤيتها.

في الإصدار API v67.0، ينعكس الوضع الافتراضي؛ حيث تعمل عمليات قاعدة البيانات الآن في "وضع المستخدم" (user mode).

ما الذي سيتغير في الإصدار v67.0:

• تفرض SOQL و SOSL و DML أذونات المستخدم وقواعد المشاركة بشكل افتراضي. • الفئات (Classes) التي لا تحتوي على إعلان مشاركة (sharing declaration) ستعتمد الآن "with sharing" كوضع افتراضي. • تمت إزالة "WITH SECURITY_ENFORCED"، ويجب عليك استخدام "WITH USER_MODE" بدلاً منها. • تعمل الـ Triggers دائماً في وضع النظام (system mode).

يرتبط هذا التغيير بإصدار الـ API الخاص بالفئة (class) الخاصة بك. ستظل الفئات القديمة كما هي حتى تقوم بترقيتها إلى الإصدار 67.0، مما يتيح لك التحكم في عملية الانتقال.

احذر من هذه المشكلات الصامتة:

كيفية الانتقال بأمان:

إجراء هذه التغييرات الآن يمنع حدوث أخطاء صامتة في بيئة الإنتاج (production) لاحقاً.

المصدر: https://dev.to/maintask/your-apex-might-return-fewer-records-in-summer-26-and-not-throw-a-single-error-26de

مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi