نموذج المشاركة
بنية المشاركة
Section titled “بنية المشاركة”flowchart TB
subgraph SHARING["SHARING ARCHITECTURE"]
subgraph OTM["ObjectTeamMember__c"]
OTM1["OWD: Private"]
OTM2["Sharing: Custom via ObjectTeamMember__Share"]
OTM3["RowCause: ManualAccess__c"]
end
subgraph TSC["Team_Sharing_Config__c"]
TSC1["OWD: Public Read Only"]
TSC2["All users can read, admins modify"]
end
subgraph PARENT["Parent Objects<br/>(Account, Case, etc.)"]
P1["Requires: Private or Public Read Only OWD"]
P2["Sharing: Via [Object]Share"]
P3["RowCause: Manual"]
end
end
كيف تعمل المشاركة
Section titled “كيف تعمل المشاركة”ObjectTeamMember__c
Section titled “ObjectTeamMember__c”- OWD: Private
- آلية المشاركة: مشاركة مخصصة عبر
ObjectTeamMember__Share - RowCause:
ManualAccess__c
عند إضافة عضو فريق، ينشئ النظام سجل ObjectTeamMember__Share بحيث يمكن لعضو الفريق رؤية سجل عضوية فريقه الخاص.
Team_Sharing_Config__c
Section titled “Team_Sharing_Config__c”- OWD: Public Read Only
- يمكن لجميع المستخدمين قراءة التكوين (مطلوب لعرض المكون)
- يمكن للمسؤولين فقط تعديل التكوينات
الكائنات الأصلية
Section titled “الكائنات الأصلية”- المتطلب: يجب أن يكون للكائنات Private أو Public Read Only OWD
- آلية المشاركة: عبر جداول
[Object]Shareالقياسية (مثلAccountShare،CaseShare) - RowCause: Manual
تعيين مستوى الوصول
Section titled “تعيين مستوى الوصول”عند إضافة عضو فريق بمستوى وصول، يتم تعيينه لوصول سجل مشاركة Salesforce:
| ObjectTeamMember__c Access_Level__c | [Object]Share AccessLevel | الوصف |
|---|---|---|
| Read Only | Read | يمكن لعضو الفريق عرض السجل |
| Read/Write | Edit | يمكن لعضو الفريق عرض وتحرير السجل |
دورة حياة سجل المشاركة
Section titled “دورة حياة سجل المشاركة”إنشاء المشاركات
Section titled “إنشاء المشاركات”عند إضافة عضو فريق:
- يتم إدراج سجل
ObjectTeamMember__c - يعمل Trigger ويضع
ShareRecordQueueableفي قائمة الانتظار - ينشئ Queueable سجلي مشاركة:
- مشاركة أصلية: سجل
[Object]Shareيمنح المستخدم وصولاً للسجل الأصلي - مشاركة عضو فريق: سجل
ObjectTeamMember__Shareيمنح المستخدم رؤية لعضوية فريقه
- مشاركة أصلية: سجل
تحديث المشاركات
Section titled “تحديث المشاركات”عند تغيير مستوى وصول عضو فريق:
- يتم تحديث سجل
ObjectTeamMember__c - يعمل Trigger ويضع
ShareRecordQueueableفي قائمة الانتظار - يحذف Queueable المشاركة القديمة وينشئ واحدة جديدة بمستوى الوصول المحدث
حذف المشاركات
Section titled “حذف المشاركات”عند إزالة عضو فريق:
- يتم حذف سجل
ObjectTeamMember__c - يعمل Trigger ويضع
ShareRecordQueueableفي قائمة الانتظار - يحذف Queueable سجلي المشاركة (الأصلي وعضو الفريق)
إعادة الحساب الجماعي
Section titled “إعادة الحساب الجماعي”عند تبديل تكوين المشاركة:
- معطل: يزيل
SharingRecalculationBatchجميع سجلات المشاركة لذلك الكائن - معاد تنشيطه: يعيد
SharingRecalculationBatchإنشاء سجلات المشاركة لجميع أعضاء الفريق الموجودين
كائنات المشاركة المدعومة
Section titled “كائنات المشاركة المدعومة”الكائنات القياسية
Section titled “الكائنات القياسية”| الكائن | جدول المشاركة |
|---|---|
| Account | AccountShare |
| Contact | ContactShare |
| Case | CaseShare |
| Lead | LeadShare |
| Opportunity | OpportunityShare |
| Campaign | CampaignShare |
| Order | OrderShare |
الكائنات المخصصة
Section titled “الكائنات المخصصة”تتبع الكائنات المخصصة النمط: ObjectName__c → ObjectName__Share
يستخدم النظام قائمة بيضاء مشفرة للكائنات القياسية ويشتق اسم جدول المشاركة للكائنات المخصصة تلقائيًا.
متطلبات النشر
Section titled “متطلبات النشر”متطلبات المؤسسة
Section titled “متطلبات المؤسسة”- Salesforce Enterprise Edition أو أعلى (لدعم نموذج المشاركة)
- يجب أن يكون للكائنات Private أو Public Read Only OWD للاستفادة من المشاركة
متطلبات المستخدم
Section titled “متطلبات المستخدم”- يحتاج المستخدمون لتعيين Permission Set المناسب
- يحتاج المستخدمون لوصول أساسي للكائن (مثل وصول قراءة Account لاستخدام فرق Account)