تخطَّ إلى المحتوى

التكوين

يمكن تكوين مكون Object Team Member مباشرة في Lightning App Builder بالخصائص التالية:

الخاصيةالنوعالافتراضيالوصف
Card TitleStringTeam Membersالعنوان المعروض على بطاقة المكون
Max Displayed MembersInteger5الحد الأقصى لعدد أعضاء الفريق المعروضين قبل الطي. اضبطه على 0 لإظهار الجميع

عندما يتجاوز عدد أعضاء الفريق الحد المكوّن، تنطوي القائمة وتظهر زر “Show all (X more)”. النقر عليه يوسع القائمة الكاملة، مع زر “Show less” لطيها مرة أخرى. يظهر مالك السجل دائمًا أولاً في القائمة، بغض النظر عن حد العرض.

قائمة أعضاء الفريق المطوية

Lightning App Builder — خصائص المكون

الإعدادالسلوك
Max Displayed Members = 5 (افتراضي)يعرض أول 5 أعضاء، “Show X more” للباقي
Max Displayed Members = 0جميع أعضاء الفريق مرئيون، بدون طي/توسيع
Max Displayed Members = 3 (مخصص)يعرض أول 3 أعضاء، “Show X more” للباقي

عند إضافة مستخدمين إلى فريق، تقوم بتعيين أحد الأدوار التالية لهم:

الدورالوصفالقدرات
Ownerمالك السجليتم تعيينه تلقائيًا عند إنشاء سجل. لا يمكن تعيينه أو إزالته يدويًا. لديه وصول كامل لإدارة أعضاء الفريق. يتم حذفه تلقائيًا عندما لا يوجد مستخدمون آخرون في الفريق.
Managerمسؤول الفريقيمكنه إضافة وتحرير وإزالة أعضاء الفريق. استخدم هذا الدور للمستخدمين الذين يحتاجون لإدارة تكوين الفريق.
Userعضو فريق قياسييمكنه عرض قائمة أعضاء الفريق ولكن لا يمكنه تعديلها. استخدم هذا الدور للمستخدمين الذين يحتاجون فقط للوصول إلى السجل.

مكون Team Members يعرض الأدوار

عندما يتغير مالك السجل (مثل إعادة تعيين حساب Account لمندوب مبيعات آخر)، لا يتم تحديث عضو فريق Owner تلقائيًا. ينشئ النظام سجل Owner عند إضافة أول عضو فريق، لكنه لا يتتبع تغييرات المالك اللاحقة على السجل الأصلي.

للحفاظ على مزامنة Owner في الفريق مع مالك السجل، تحتاج لإنشاء Record-Triggered Flow.

الإعداد عبر Flow (موصى به)

Section titled “الإعداد عبر Flow (موصى به)”
  1. انتقل إلى Setup > Flows
  2. انقر على New Flow > Record-Triggered Flow
  3. حدد الكائن (مثل Account)
  4. كوّن المشغل: “A record is updated”
  5. أضف Entry Condition: Formula > ISCHANGED({!$Record.OwnerId}) evaluates to true
  6. اضبط “When to Run the Flow” على “After the record is saved”
  7. أضف عنصر Action
  8. ابحث عن “Sync Team Member Owner”
  9. اضبط معامل “Record ID” على {!$Record.Id}
  10. اترك “Object API Name” فارغًا (يتم اشتقاقه تلقائيًا من Record ID)
  11. احفظ وقم بـ Activate الـ Flow

Flow Builder - Owner Sync Flow تكوين إجراء Sync Team Member Owner

trigger AccountOwnerSync on Account(after update) {
List<tucariofts.SyncOwnerInvocable.SyncOwnerRequest> requests =
new List<tucariofts.SyncOwnerInvocable.SyncOwnerRequest>();
for (Account acc : Trigger.new) {
Account oldAcc = Trigger.oldMap.get(acc.Id);
if (acc.OwnerId != oldAcc.OwnerId) {
tucariofts.SyncOwnerInvocable.SyncOwnerRequest req =
new tucariofts.SyncOwnerInvocable.SyncOwnerRequest();
req.recordId = acc.Id;
requests.add(req);
}
}
if (!requests.isEmpty()) {
tucariofts.SyncOwnerInvocable.syncOwners(requests);
}
}

الاستدعاء من كود Apex (سجل واحد)

Section titled “الاستدعاء من كود Apex (سجل واحد)”
tucariofts.SyncOwnerInvocable.SyncOwnerRequest request =
new tucariofts.SyncOwnerInvocable.SyncOwnerRequest();
request.recordId = accountId;
List<tucariofts.SyncOwnerInvocable.SyncOwnerResult> results =
tucariofts.SyncOwnerInvocable.syncOwners(
new List<tucariofts.SyncOwnerInvocable.SyncOwnerRequest>{ request }
);
if (results[0].success) {
System.debug('Owner synced: ' + results[0].oldOwnerId +
'' + results[0].newOwnerId);
} else {
System.debug('Sync failed: ' + results[0].message);
}
الحقلالنوعالوصف
successBooleanهل نجحت المزامنة
messageStringرسالة النتيجة أو تفاصيل الخطأ
oldOwnerIdIdمعرف المستخدم للمالك السابق
newOwnerIdIdمعرف المستخدم للمالك الجديد
السيناريوالنتيجة
لا يوجد أعضاء فريق على السجلsuccess = false، “No Owner team member found”
المالك لم يتغيرsuccess = true، “Owner unchanged, no update needed”
Record ID nullsuccess = false، “Record ID is required”
معرف سجل غير صالحsuccess = false، رسالة خطأ

Queues كمالكين غير مدعومة — لا يدعم Flexible Team Share Queues كمالكي فريق. عندما يكون السجل مملوكًا لـ Queue:

  • يستخدم النظام المستخدم الحالي (الشخص الذي يضيف أول عضو فريق) كـ Owner في الفريق
  • إذا قمت لاحقًا بتغيير مالك السجل من Queue إلى User، قم بتشغيل إجراء Sync Owner لتحديث الفريق
  • إذا قمت بتغيير المالك من User إلى Queue، سيبقى Owner في الفريق كالمستخدم السابق

يجب إنشاء Flow لكل كائن — تحتاج لإنشاء Flow منفصل لكل نوع كائن تريد مزامنة المالك عليه. يعمل Invocable Action مع أي كائن، لكن Salesforce يتطلب Record-Triggered Flows منفصلة لكل كائن.

الوصول المؤقت مع تاريخ الانتهاء

Section titled “الوصول المؤقت مع تاريخ الانتهاء”

عند إضافة عضو فريق، يمكنك اختياريًا تعيين End Date لمنح وصول مؤقت لسجل. هذا مفيد لـ:

  • التعاون القائم على المشاريع مع جداول زمنية محددة
  • الاستشاريين أو المقاولين المؤقتين
  • تغطية الإجازات أو المسؤوليات المفوضة
  • فترات المراجعة أو التدقيق
  1. عند إضافة أو تحرير عضو فريق، اضبط حقل End Date على آخر يوم يجب أن يكون لديه وصول
  2. يحتفظ عضو الفريق بالوصول الكامل حتى نهاية ذلك اليوم
  3. بعد مرور End Date، تقوم مهمة التنظيف المجدولة تلقائيًا بإزالة عضو الفريق وإلغاء وصوله

عضو فريق مع End Date

عملية التنظيف التلقائية

Section titled “عملية التنظيف التلقائية”
  • تعمل مهمة batch المجدولة يوميًا (افتراضيًا في الساعة 2:00 صباحًا) لإزالة أعضاء الفريق منتهي الصلاحية
  • عند إزالة عضو فريق، يتم أيضًا حذف سجل المشاركة الخاص به، مما يلغي الوصول إلى السجل
  • يمكن إدارة مهمة التنظيف من معالج التكوين

إدارة المهمة المجدولة

يتضمن Flexible Team Share مهمة تنظيف تلقائية تزيل أعضاء الفريق منتهي الصلاحية. يتم جدولة هذه المهمة تلقائيًا أثناء تثبيت الحزمة.

  1. انتقل إلى Setup > Scheduled Jobs
  2. ابحث عن Flexible Team Share - Expired Member Cleanup
  3. تحقق من أن المهمة مجدولة للتشغيل يوميًا

Scheduled Jobs في Setup

يمكن للمسؤولين إدارة مهمة التنظيف من معالج التكوين:

  • Schedule Job — جدولة يدويًا إذا لم تكن قيد التشغيل
  • Unschedule Job — إيقاف التنظيف التلقائي
  • Run Now — تنفيذ التنظيف فورًا

استكشاف الأخطاء وإصلاحها

Section titled “استكشاف الأخطاء وإصلاحها”

العرض: يظهر نافذة تحذير منبثقة تنص على عدم وجود تكوين لهذا الكائن.

السبب: تمت إضافة مكون Team Member إلى صفحة سجل قبل تكوين الكائن في معالج التكوين.

الحل:

  1. انتقل إلى معالج التكوين (تطبيق Flexible Team Share > Configuration)
  2. أضف وانشر تكوينًا لهذا الكائن
  3. ارجع إلى صفحة السجل — يجب أن يعمل المكون الآن بشكل صحيح

تحذير Configuration Not Found

العرض: يعرض المكون رسالة “No Access” مع أيقونة قفل بدلاً من أعضاء الفريق.

السبب: المستخدم الحالي ليس لديه Permission Set Group المطلوب معينًا.

الحل:

  1. انتقل إلى Setup > Permission Set Groups
  2. قم بتعيين Admin أو User Permission Set Group للمستخدمين المتأثرين
  3. قد يحتاج المستخدمون لتسجيل الخروج وإعادة تسجيل الدخول لتطبيق التغييرات

خطأ No Access

العرض: زر “Add Team Member” معطل ورسالة تشير إلى الوصول للحد الأقصى.

السبب: لقد وصلت إلى الحد الأقصى لعدد أعضاء الفريق المسموح به.

الحل: قم بإزالة أعضاء الفريق غير النشطين أو غير الضروريين لتحرير المساحات.

أعضاء الفريق ضمن الحدأعضاء الفريق تجاوزوا الحد
ضمن الحدتجاوز الحد

تفاصيل تحذير الوصول للحد

العرض: تتم إضافة أعضاء الفريق بنجاح لكنهم لا يستطيعون الوصول إلى السجل.

السبب: إعداد المشاركة الافتراضي على مستوى المؤسسة (OWD) للكائن معين على Public Read/Write.

الحل:

  1. انتقل إلى Setup > Sharing Settings
  2. قم بتغيير OWD للكائن إلى Private أو Public Read Only
  3. ملاحظة: تغيير إعدادات OWD قد يؤثر على وصول المستخدمين الآخرين — استشر مسؤول Salesforce الخاص بك

للأسئلة أو المشاكل، يرجى الاتصال بـ support@tucario.com.