
Andrew Hanna

Andrew Hanna

الإجابة باختصار: حطّ الـ permission sets في نظام التحكم في الإصدارات كمصدر الحقيقة الفعلي، وفكّكها لملفات أصغر علشان اتنين يعدّلوا من غير تعارض دمج، وخلّي البروفايلات خفيفة، واتعامل مع أي نشر بروفايل على إنه تغطية فوق الموجود مش استبدال كامل. وبعدين بطّل تتبّع الحاجات المرتبطة بالبيئة عن قصد، لأن أغلب ضجيج البروفايلات في المستودع محدش بيقراه.
في سلوكين موثّقين بيخلّوا البروفايل مختلف عن أي ملف تاني في المستودع.
اجمع الاتنين هتلاقي نفس البروفايل بيطلّع diff مختلف حسب مين اللي استرجعه وإيه اللي كان معاه في الحزمة. علشان كده diff البروفايلات هو أكتر ملف بيتخانقوا عليه وأقلهم ثقة في أغلب مستودعات سيلزفورس.
سيلزفورس كانت أعلنت إن الصلاحيات جوه البروفايلات هتتوقف ابتداءً من Spring '26. وفي 6 يونيو 2026 اتلغى التطبيق ده، بسبب ملاحظات العملاء وفجوات في المميزات، مع استمرار سيلزفورس في التوصية بنموذج أمان بيقوده الـ permission sets (مساعدة سيلزفورس).
القراية العملية: الموعد النهائي راح، لكن الاتجاه فاضل. البروفايلات لسه مدعومة، فمحدش محتاج يهاجر بسرعة، لكن لو بتقرر تستثمر انضباطك في التحكم في الإصدارات فين، استثمره في الـ permission sets. هي إضافية، وبتتفكك، وبتتدمج.
الـ permission set لما بيترجع بيبقى ملف XML كبير فيه كل صلاحيات الكائنات والحقول والمستخدمين. اتنين أدمن بيلمسوا حقلين مالهمش علاقة ببعض بيصطدموا في نفس الملف. سيلزفورس بتقدّم حل في الـ CLI: خيارات سلوك المصدر اللي بتقسّم الملف لملف لكل مجموعة صلاحيات (دليل مطوّري Salesforce DX).
sf project convert source-behavior --behavior decomposePermissionSetBeta2
--dry-run.
sfdx-project.json بيتحدّث علشان السلوك يفضل ثابت
للكل، والسورس الحالي بيتحوّل في مكانه.
نفس الآلية بتغطي الـ custom labels والـ workflows وقواعد المشاركة وتسجيلات الخدمات الخارجية. خد بالك من الفجوة: البروفايلات مش موجودة في قايمة الأنواع القابلة للتفكيك. الكائنات وترجماتها بتتفكك افتراضيًا، والباقي بيتا اختيارية، والبروفايل فاضل ملف واحد.
نص الوجع ده إنت السبب فيه. الحاجات دي مكانها بره المستودع، أو ورا استثناء مقصود.
اكتب الاستثناءات دي كقاعدة جوه المستودع، مش كمعرفة شفهية في تاريخ أوامر حد واحد. القاعدة اللي عايشة في alias بتاع حد بتتكسر أول ما زميل جديد يعمل retrieve.
متعملش الخطوة التالتة والرابعة في نفس الإصدار أبدًا. التغييرات الإضافية والتغييرات اللي بتشيل صلاحيات ليها قصص رجوع مختلفة تمامًا، وخلطهم هو السبب في إن حد يلاقي نفسه مقفول عليه صباح الاتنين. في أدلة هندسة إصدار تانية في مكتبة SF Guides بتاعتنا.
مين مصدر الحقيقة: البروفايلات ولا الـ permission sets؟
الـ permission sets. هي إضافية، وبتتفكك لملفات قابلة للدمج، وسيلزفورس بتوصي بنموذج بيقودوه. سيب البروفايل للإعدادات الأساسية زي الترخيص وأنواع السجلات الافتراضية وتخطيطات الصفحات.
هل الصلاحيات جوه البروفايلات هتتلغي؟
لأ. الإيقاف اللي كان مخطط لـ Spring '26 اتلغى في 6 يونيو 2026. الهجرة بقت على مزاجك مش على موعد نهائي.
ليه الـ diff بتاع البروفايل بيتغيّر وأنا ملمستوش؟
لأن استرجاع البروفايل بيرجّع إعدادات الميتاداتا اللي في نفس الطلب بس. غيّر محتوى الحزمة يتغيّر الملف. صلّح ملف الاسترجاع، مش الملف نفسه.
ينفع نفكّك البروفايلات زي الـ permission sets؟
مش دلوقتي. خيارات سلوك المصدر بتغطي الـ permission sets والـ custom labels والـ workflows وقواعد المشاركة والخدمات الخارجية. البروفايل فاضل ملف واحد، وده سبب إضافي إنك تخليه خفيف.
بدون التزام.