انتقل إلى المحتوى

المجموعات والإعارة عبر المجموعات

ما هي

المجموعة هي أصغر جزء من هرمية المؤسّسة يملك أشخاصًا — لكل موظف مجموعة موطن. والإعارة عبر المجموعات تتيح لمحرّك التخصيص تزويد عمل مجموعةٍ بموظفي مجموعة أخرى، لكن فقط حين يُنشئ مسؤول قاعدة إعارة مجموعات صريحة ومؤرَّخة تسمح بذلك.

لماذا توجد

لا يتطابق العمل دائمًا مع حدود الفرق: مجموعة ناقصة، وأخرى لديها سعة فائضة. الإعارة عبر المجموعات تتيح لمخطِّط الاستعارة عبر المجموعات دون حلّ بنية المؤسّسة — تبقى الإعارة مضبوطةً واتجاهيةً ومحدودةً زمنيًا، وكل قرار عبر-المجموعات يتّخذه المحرّك قابل للتفسير.

المفاهيم والمصطلحات الأساسية

  • المجموعة — مجموعة عمّال تحت قسم؛ مجموعة موطن الموظف هي مجموعته الأساسية.
  • المجموعة الافتراضية لقسم — يكون طلب قسم "مملوكًا" لمجموعته الافتراضية (مشتقّة كأدنى-معرّف مجموعة نشطة في ذلك القسم؛ وليست علَمًا مخزَّنًا).
  • قاعدة إعارة المجموعات — منحة مسؤول تقول "المجموعة المصدر A قد تُعير المجموعة الهدف B"، بين تاريخين، وتتطلّب اعتمادًا اختياريًا.
  • اتجاهية — تمنح القاعدة A→B فقط؛ وB→A يحتاج قاعدته المنفصلة الخاصة.
  • تتطلّب-اعتمادًا — علَم على قاعدة إعارة؛ في v1 قيمة true تحظر الإعارة.
  • قاعدة أهلية عبر المجموعات — القاعدة الصارمة في محرّك التخصيص التي تفرض الإعارة عند وقت التشغيل.

كيف تعمل

هناك نصفان مرتبطان وثيقًا: التهيئة (المجموعات وقواعد الإعارة) والفرض (المحرّك).

يدير مسؤول المجموعات، وفي صفحة تفاصيل مجموعة، قواعد الإعارة تحت المجموعة المصدر ("المجموعة A تُعير…"). سطح الـ CRUD ذاك يخزّن المنح فقط. أما الفرض فيحدث داخل جولة تخصيص: عندما يدرس المحرّك موظفًا من المجموعة A لطلب مملوك للمجموعة B، تقرّر القاعدة الصارمة أهلية عبر المجموعات:

flowchart TD
  E["مرشَّح من المجموعة A (الأصلية)"] --> Q{"طلب تملكه المجموعة B"}
  Q -->|A = B| Same["نفس المجموعة → ينجح (لا فحص عبر المجموعات)"]
  Q -->|A ≠ B| L{"قاعدة إعارة فعّالة A→B؟"}
  L -->|لا قاعدة / خارج تواريخها| F1["يُخفق بصرامة — غير مؤهَّل"]
  L -->|قاعدة موجودة، تتطلّب اعتمادًا| F2["يُخفق بصرامة — يحتاج اعتمادًا (لا تدفّق في v1)"]
  L -->|قاعدة موجودة، مُعتمَدة تلقائيًا، ضمن النافذة| Pass["ينجح — مؤهَّل عبر المجموعات"]

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

نجاح الإعارة عبر المجموعات — يظهر موظف مُعار كمؤهَّل بموجب قاعدة إعارة فعّالة.

الحجب الافتراضي عبر المجموعات — بلا قاعدة إعارة، يُخفق المرشَّح في البوابة الصارمة عبر المجموعات.

القواعد وما الذي يُفرَض

  • الإعارة اتجاهية ومؤرَّخة. تمنح القاعدة مصدر→هدف بين فعّال-من و(اختياري) فعّال-حتى؛ والحدود شاملة. "A تُعير B" لا تعني "B تُعير A".
  • لا قاعدة إعارة يعني لا تخصيص عبر المجموعات. افتراضيًا لا يمكن استخدام موظف إلا لطلب مجموعته الخاصة.
  • Requires approval = true تحظر في v1. لا يوجد سير عمل اعتماد بعد، فقاعدة تتطلّب اعتمادًا ترفض المرشَّح عبر-المجموعات. وحدها قواعد requires approval = false تُمرِّر أحدًا فعلًا. (يكون افتراض العلَم true.)
  • Max concurrent borrows مخزَّن لكن غير مفروض — لا يستطيع المحرّك حاليًا تحديد كم شخصًا يُستعار في آنٍ واحد.
  • حذف مجموعة محظور ما دام أي موظف نشط لا يزال يحملها كمجموعته الأساسية.
  • هوية قاعدة الإعارة (المصدر، الهدف) ثابتة — لإعادة التوجيه، احذف وأعِد الإنشاء.

ما هو حيّ مقابل المخطَّط

  • حيّ (v1): المجموعات وقواعد إعارة المجموعات (إنشاء/تحرير كامل وواجهة ويب)، وثابت المجموعة-الافتراضية-لكل-قسم، والفرض عند وقت التشغيل للإعارة عبر قاعدة الأهلية عبر المجموعات الصارمة (مدعومة بلقطة، مع احتياط قاعدة بيانات مطابق).
  • مخطَّط / مؤجَّل: سقف التزامن لكل قاعدة (max concurrent borrows)، وسير عمل الاعتماد الذي قد يُجيز قاعدة "تتطلّب اعتمادًا"، وسجل طلبات إعارة.

إشكال تشغيلي واحد: إذا كان قسمٌ يفتقر إلى مجموعته الافتراضية، فإن فحص عبر-المجموعات ينجح بدلًا من أن يُخفق (وقاية متعمَّدة "لا ترفض أبدًا دون استشهاد") — فالمجموعة الافتراضية المفقودة تظهر كفحوص تنجح بصمت، لا كخطأ.

ذات صلة