BPMN وتحليل عمليات الأعمال

بوابات BPMN

18 دقيقة الدرس 5 من 10

بوابات BPMN

كل عملية تجارية حقيقية تتفرع في مرحلة ما. طلب ما إما يُوافق عليه أو يُرفض. عملية شحن تنتظر تأكيد الدفع وتجهيز المخزن معًا قبل المضي قدمًا. طلب قرض قد يسلك مسارًا سريعًا أو معياريًا أو كليهما في آنٍ واحد، بحسب درجة المتقدم. يُمثَّل هذا كله في BPMN بعنصر واحد متعدد الاستخدامات: البوابة (Gateway)، ورمزها معين (◇).

تتحكم البوابات في كيفية انقسام تدفق التسلسل واندماجه. بوابة الانقسام (Split) لها مدخل واحد وعدة مخارج. بوابة الاندماج (Join) لها عدة مداخل ومخرج واحد. معرفة أي نوع تستخدم هي من أهم مهارات المحلل.

الأنواع الثلاثة الأساسية للبوابات

يُعرِّف BPMN 2.0 ثلاثة أنواع من البوابات تغطي الغالبية العظمى من حالات المنطق التجاري:

  • البوابة الحصرية (XOR) — يُؤخذ مسار خروج واحد فقط. تُميَّز بعلامة X داخل المعين.
  • البوابة المتوازية (AND) — تُفعَّل جميع مسارات الخروج في آنٍ واحد. تُميَّز بعلامة + داخل المعين.
  • البوابة الشاملة (OR) — يُفعَّل مسار واحد أو أكثر بحسب الشروط. تُميَّز بدائرة O داخل المعين.
مطابقة الانقسام مع الاندماج: يجب أن تقابل كل بوابة انقسام بوابة اندماج من النوع ذاته. خلط الأنواع (مثل الانقسام المتوازي مع الاندماج الحصري) يُنشئ أخطاء منطقية ويُربك القراء ومحركات التنفيذ على حد سواء.

البوابة الحصرية (XOR)

تمثل البوابة الحصرية قرارًا: يُتَّبع فرع واحد فقط. تُحدد الشروط الموضوعة على الأسهم الصادرة أيَّ الفروع نشط. من أفضل الممارسات تحديد فرع افتراضي (بشرطة مائلة على السهم) لتفادي توقف العملية حين لا يتحقق أي شرط.

سيناريو تجاري — حجز موعد في عيادة: بعد تقديم المريض طلب حجز، يتحقق النظام من توفر موعد. إن كان هناك موعد، يُؤكَّد الحجز؛ وإلا يُضاف المريض إلى قائمة الانتظار. لا يمكن حدوث النتيجتين معًا — هذه بوابة حصرية.

Exclusive Gateway Split and Join Request Check Availability Available Confirm Booking No Slot Add to Waiting List End
البوابة الحصرية (XOR): طلب الحجز يسلك مسارًا واحدًا فقط — تأكيد أو قائمة انتظار — ثم يلتقي المساران عند بوابة الاندماج.

البوابة المتوازية (AND)

تُنشِّط البوابة المتوازية جميع الفروع الصادرة في وقت واحد. وعند الاندماج تنتظر اكتمال جميع الفروع الواردة قبل مواصلة العملية. هذا هو العنصر الصحيح للمهام التي يجب تشغيلها بصورة متزامنة.

سيناريو تجاري — تنفيذ طلبات المتجر الإلكتروني: عند إتمام طلب شراء، يُخطر المتجر المستودع بتجهيز البضاعة وفي الوقت ذاته يُرسل رابط الدفع للعميل. فقط بعد اكتمال كلتا المهمتين (التجهيز والدفع) تبدأ مرحلة إرسال الطرد.

Parallel Gateway Split and Join Order Validate Order + parallel Notify Warehouse Send Payment Link + Dispatch Courier
البوابة المتوازية (AND): إخطار المستودع وإرسال رابط الدفع يعملان في وقت واحد؛ وبوابة الاندماج تنتظر اكتمالهما معًا قبل إرسال الطرد.
خطر التوقف: إذا لم يكتمل أحد فروع الانقسام المتوازي — مثلًا إذا لم يدفع العميل أبدًا — فستنتظر بوابة AND إلى الأبد. احرص دائمًا على نمذجة مهلة زمنية (Timeout) أو مسار تصعيد للفروع التي تعتمد على أطراف خارجية.

البوابة الشاملة (OR)

البوابة الشاملة هي الأكثر قدرةً والأكثر إساءةً في الاستخدام. تُطلق جميع الفروع التي تتحقق شروطها، أي قد يُفعَّل فرع واحد أو اثنان أو جميعها. وبوابة الاندماج المقابلة تنتظر فقط الفروع التي انطلقت فعليًا.

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

سلوك اندماج OR يعتمد على الحالة: يجب أن تُراجع بوابة الاندماج الشاملة العملية بأكملها لتحديد الفروع التي لا تزال نشطة. هذا يجعلها أكثر تعقيدًا لمحركات التنفيذ. استخدم المتوازية أو الحصرية حيثما أمكن، ولجأ إلى الشاملة فقط حين تكون عدة مسارات شرطية مطلوبة فعلًا.

مرجع مقارن: الانقسام مقابل الاندماج

Gateway Split and Join Reference Gateway Split (1 in → N out) Join (N in → 1 out) Exclusive (XOR) one path only based on condition first arrival passes through Parallel (AND) + all paths fire concurrently + waits for ALL incoming tokens Inclusive (OR) 1+ paths fire if conditions are true waits for active branches only
مرجع مقارن: سلوك الانقسام (العمود الأيسر) وسلوك الاندماج (العمود الأيمن) لكل نوع من البوابات.

اختيار البوابة المناسبة

اختبار ذهني مفيد قبل وضع أي بوابة:

  1. "هل هذا قرار؟" — إذا كانت نتيجة واحدة فقط ممكنة، استخدم XOR.
  2. "هل يجب أن يحدث كل شيء؟" — إذا كان لا بد من تشغيل جميع المسارات بالتوازي، استخدم AND.
  3. "هل قد تتحقق عدة نتائج معًا؟" — إذا كانت مسارات شرطية متعددة قد تنشط في آنٍ واحد، استخدم OR.

في الواقع العملي، تستخدم معظم العمليات التجارية البوابتين الحصرية والمتوازية. أما الشاملة فهي الأكثر شيوعًا في العمليات التي تدفع خيارات المستخدم (مثل اشتراك يُفعِّل وحدات مختلفة) أو أنظمة تسجيل النقاط (مثل طلب قرض يُطلق خطوات مراجعة متعددة بحسب نطاقات الدرجات).

البوابات الحصرية غير المسماة: يسمح BPMN باستخدام معين بلا علامة كبوابة حصرية ضمنية. وإن كان ذلك صحيحًا من الناحية التقنية، إلا أنه يُضعف قابلية القراءة. استخدم دائمًا علامة X الصريحة على البوابات الحصرية، لا سيما في النماذج المعقدة.

أخطاء شائعة يجب تجنبها

  • بوابة اندماج مفقودة: الانقسام بدون اندماج ينتج عدة مسارات مفتوحة تصل إلى حدث النهاية باستقلالية — صحيح في BPMN لكنه نادرًا ما يُعبِّر عن المنطق المقصود.
  • اندماج AND بعد انقسام XOR: تنتظر البوابة رموزًا (tokens) لن تصل أبدًا، مما يُسبب توقفًا في التنفيذ.
  • غياب الفرع الافتراضي في XOR: إذا لم يتحقق أي شرط، يتوقف الرمز. حدد دائمًا تدفقًا افتراضيًا للخروج.
  • الإفراط في استخدام OR: إذا كانت الشروط متبادلة الاستبعاد، فالبوابة الشاملة تعقيد غير ضروري — استخدم الحصرية بدلًا منها.

البوابات هي موطن المنطق التجاري في نموذج BPMN. إتقان الأنواع الثلاثة الأساسية يُمكِّنك من تمثيل أي قرار أو تسلسل متوازٍ أو شرط تجاري، من قرارات الموافقة البسيطة إلى عمليات تنسيق الخدمات المتعددة المعقدة. في الدرس القادم ستتعلم كيفية نمذجة التعاون عبر الحدود التنظيمية باستخدام المسابح والممرات.