انتخاب و تصمیم، ترکیب، چند شاخه کردن و هم گرا کردن بخش مهمی از فرایند ها هستند. در BPMN 2.0 از شکل لوزی به عنوان علامت تصمیم گیری و کنترل جریان اجرای فرایند استفاده می شود. دروزاه ها را می توان مانند مطرح کردن یک سوال در هنگام اجرای فرایند در نظر گرفت. پاسخ به این سوال مسیر جریان فرایند را تغییر می دهد. المان دروازه یا gateway انواع مختلفی دارد که در ادامه شرح داده شده است.
فرایند های کسب و کار الزاما به ترتیب و پشت سر هم انجام نمی شوند. از طرفی برخی از کارها نمی توانند در کنار هم انجام شوند. برای مثال تایید کردن یا رد کردن یک درخواست، کارهای متضاد هستند. در یک فرایند لازم است از گیت وی ها برای کنترل جریان اجرای فرایند و انتخاب فعالیت بعدی استفاده شود.
علاوه بر متفاوت بودن یا تضاد فعالیت ها، برخی از فعالیت ها لازم است توسط اشخاص مختلف یا واحد های سازمانی مختلف انجام شوند. در این حالت ممکن است لزومی به رعایت توالی نباشد و لازم باشد این کارها بطور موازی انجام شوند.
اصطلاح گیت وی یا دروازه از این رو استفاده می شود که در مرحله ای از انجام فرایند، لازم است مکانیزمی مانند یک درب وجود داشته باشد تا اجازه ورود یا عدم اجازه ورود به بخش بعدی را مدیریت کند. با این حال باید به یاد داشته باشیم که عملیات بررسی یک موضوع، قبل از گیت وی انجام می گیرد. گیت وی فقط از نتیجه بررسی استفاده می کند و مسیر بعدی جریان فرایند را نشان می دهند.
دروازه ها دو کاربرد جدا کننده و ترکیب کننده دارند. در حالت جدا کننده، جریان فرایند واگرا می شود و در حالت ترکیب کننده جریان های متفاوتی از فرایند همگرا می شوند.
انواع دروازه ها در BPMN
نگارش دوم BPMN پنج نوع مختلف از دروازه ها را تعریف کرده است. این دروازه ها شامل موارد زیر هستند که در ادامه به تفضیل در مورد هرکدام توضیح داده شده است:.
Exclusive
Parallel
Inclusive
Complex
Event-Based
Exclusive Decisions
Excusive به معنای انحصاری است. این گیت وی از نظر منطقی عملکرد XOR دارد. می تواند واگرایی یا همگرایی ایجاد کنید.
در حالت واگرایی یا XOR-Split ( یک ورودی و چند خروجی)، مسیر انجام فرایند را براساس شرایط مختلف تغییر می دهد. اما ادامه مسیر فقط از یک خروجی انجام می شود. علاوه بر بررسی شرط ها، می توان یک خروجی را به عنوان دیفالت یا پیش فرض مشخص نمود. در این صورت، اگر هیچکدام از شرط ها محقق نشود، ادامه مسیر فرایند از خروجی دیفالت ادامه پیدا می کند.
در حالت همگرایی یا XOR-Join ( چند ورودی و یک خروجی)، اگر هرکدام از ورودی ها فعال باشد، مسیر فعالیت از آن فعالیت به خروجی ادامه پیدا می کند. در این حالت اگر ورودی اول فعال شده باشد و بعد از آن ورودی دوم فعال شود، ادامه مسیر فرایند تنها از ورودی اول به خروجی انجام می شود و ورودی دوم نادیده گرفته می شود.
در مثال پایین، “فرایند بررسی تایید کننده فرم درخواست کالا” نشان داده شده است. فرض بر این است که فرم درخواست کالا از انبار، باید توسط یکی از مدیران تایید شده باشد. در اینجا، وقتی یک درخواست کالا به انبار وارد می شود فرایند شروع می شود. در صورتی که تایید کننده درخواست یکی از مدیران باشد، مسیر بالایی طی می شود، فعالیت “قبول درخواست کالا” ( برای مثال زدن مهر قبول توسط متصدی انبار) انجام می شود. پس از گذر از گیت وی همگرا کننده، به مرحله پایان می رسد
در صوتی که تایید کننده درخواست جزء مدیران مجاز نباشد، مسیر پایین طی می شود.
حال اگر فرم درخواست کالا توسط هیچ مدیری امضاء نشده باشد چه باید کرد؟ وجود خط کوچک برروی خروجی پایینی، به معنای مسیر پیش فرض یا دیفالت است. وجود این خط نشان می دهد که در صورتی که هیچکدام از شرط ها محقق نشود، مسیر پیش فرض برای ادامه فرایند کدام است.
Parallel Execution
وقتی که دو یا چند فعالیت تقدم و تاخر زمانی یا وابستگی اجرایی به هم ندارند می توانند بصورت هم زمان یا موازی اجرا شوند. برای این کار از علامت پارالل یا منطق AND استفاده می شود. عملگر موازی یا پارالل بصورت یک لوزی که یک علامت “+” در داخل آن قرار دارد نشان داده می شود. از عملگر AND-Split برای نمایش چند شاخه شدن مسیر اجرای فرایند استفاده می شود و از AND-Join برای نمایش هم مسیر شدن اجرای فرایند ها استفاده می شود.
عملگر AND-Split وقتی در مسیر قرار بگیرد، ادامه مسیر اجرای فرایند را به بطور هم زمان به تمامی شاخه های بعد از خود منتقل می کند. در اینجا هیچ اولویت یا شرطی بررسی نمی شود.
عملگر AND-Join برای هم مسیر کردن چند شاخه از اجرای فرایند بکار می رود. در اینجا لازم است اجرای عملیات از تمامی شاخه های ورودی به انجام برسد تا اجازه ادامه اجرای فرایند داده شود. برای مثال اگر یک AND-Join سه ورودی داشته باشد، حتما باید عملیات قبل از هرسه ورودی تمام شده باشد تا اجرای فرایند در خروجی آن ادامه پیدا کند.
در مثال زیر، کاربرد اجرای موازی نشان داده شده است. این مثال فرایند بازرسی امنیتی مسافر و لوازم همراه او را بعد از دریافت کارت پرواز نشان می دهد. پس از آنکه مسافر کارت پرواز دریافت می کند، لازم است به بخش امنیت پرواز مراجعه کند. در این بخش لازم است مسافر بازرسی بدنی شود و همچنین کلیه لوازم او ( کت، پالتو، چمدان، …) از دستگاه اکس-ری عبور داده شود و مورد بررسی امنیتی قرار گیرد. اما لازم نیست این دو کار در امتداد هم انجام شوند. لزومی ندارد اول بازرسی بدنی انجام شود و بعد از آن بازرسی لوزام انجام شود.
همان طور که در نمایش فرایند در زیر نشان داده شده است، هر دو کار بصورت موازی انجام می شود. اما تا زمانی که هر دو کار به اتمام نرسیده باشند، امکان رفتن به مرحله بعد، یعنی “مراجعه به بخش سوار شدن به هواپیما” قابل انجام نخواهد بود. در این حالت اگر بازرسی بدنی تمام شده باشد، به دلیل وجود علامت اجرای موازی، منتظر تمام شدن بازرسی لوازم می شود. در صورتی که هر دو فعالیت بازرسی بدنی و بازرسی لوازم انجام شده باشد ، ادامه مسیر فرایند به “مراجه به بخش سوار شدن هواپیما” می رسد.
Inclusive Decisions
در هنگام انجام کار، ممکن است نیاز به انتخاب دو یا چند مسیر باشد. برخلاف روش اکسکلوسیو ( انتخاب یک مسیر) یا پارالل ( ادامه از همه مسیر ها)، عملگر اینکلوسیو به ما این اجازه را می دهد که یک یا چند مسیری را که با شرایط تعیین شده همخوانی دارد انتخاب شود. اینکلوسیو به معنای شامل بود است و از نظر منطقی، عملگر OR می باشد.
وقتی از این عملگر در وضعیت واگرا یا OR-Split استفاده کنیم، ادامه مسیر اجرای فرایند می تواند با توجه به شرط های تعیین شده روی هرکدام از خروجی ادامه پیدا کند. در این حالت، یک یا چند یا همه خروجی ها در صورتی که شرط معتبری داشته باشند قابل انتخاب خواهند بود.
زمانی که عملگر اینکلوسیو در وضعیت همگرا یا OR-Join باشد، می تواند بطور همزمان یک یا چند ورودی را مورد قبول قرار دهند و ادامه مسیر اجرای فرایند را به سمت خروجی هدایت کند. در اینجا مانند XOR-Join فقط به اولیت ورودی فعال شده پاسخ نمی دهد و از طرفی مانند AND-Join نیز منتظر فعال شدن همه ورودی ها نمی ماند.
کاربرد Inclusive Decision در مثال زیر شرح داده شده است. در این مثال فرض بر این است که کالاها در دو انبار نگهداری می شوند. درخواست دهنده از نحوه نگهداری کالاها نا مطلع است. از این رو تمام کالاهای مورد نیاز خود را در یک فرم درخواست نوشته و به انبار تحویل می دهد.
فرایند آماده سازی کالای درخواست شده از زمانی که یک درخواست کالا به انبار برسد شروع می شود. ابتدا لیست درخواست بررسی می شود. اگر کالاها فقط در انبار شماره یک باشد، لیست کالا به انبار شماره یک ارسال می شود. اگر کالا ها فقط در انبار شماره 2 موجود باشد، لیست درخواست شده فقط به انبار شماره 2 ارسال می شد. اما در حالتی که لیست اقلام مورد درخواست در هر دو انبار باشد، این لیست به هر دو انبار ارسال می شود و هر انبار کالاهای موجودی خود را جمع آوری و به متصدی انبار تحویل می دهد.
قبل از بسته بندی کالهای درخواست شده، رسیدن کالا از هر کدام از انبار ها یا هر دو انبار مورد قبول می باشد.
Complex Execution
عملگر کامپلکس برای شرایط پیچیده در نظر گرفته شده است. در متون اصلی BPMN 2.0 در خصوص کاربرد واگرا برای این عملگر مثالی دیده نمی شود. اما مثال هایی از کاربرد همگرا برای عملگر کامپلکس وجود دارد.
در شکل زیر، مثالی از عملگر کامپلکس آورده شده است. در این مثال وجود دو ورودی برای رفتن به مرحله بعد کفایت می کند.
در مثال زیر فرض شده است که برای تشکیل جلسه هیات مدیره یک شرکت، از سه نفر اعضاء هیات مدیره، لازم است حداقل دو نفر حضور داشته باشند. در فرایند هماهنگ کردن جلسه هیات مدیره، ابتدا به به هر سه عضو هیات مدیره ایمیل دعوت به جلسه ارسال می شود. سپس با عملگر پارالل، ادامه اجرای فرایند به اعلام نظر این سه نفر می رسد. با توجه به عملگر کامپلکس و شرط “اگر دو نفر اعلام حضور کردند”، با اعلام امکان حضور از طرف دو نفر از سه نفر، اجرای فرایند ادامه پیدا می کند.
Event-Based Exclusive
Event-Base Gateway از نظر عملکردی مانندیک دروازه از نوع XOR است ( مانند Exclusive Decision). اما در اینجا شراط عبور از دروازه از نوع رخداد ها می باشد.
در نوع واگرا یا جداکننده ، این دروازه می تواند پنج نوع خروجی داشته باشد. در شکل زیر انواع خروجی ها نشان داده شده است. شرط عبور از این گیت وی، تنها فعال شدن یکی از این خروجی هاست. برای مثال اگر یک پیام و یک تایمر در خروجی وجود داشته باشد، اگر پیام برسد ادامه جریان فرایند از مسیر بعد از پیام خواهد بود و اگر زمان تایمر سپری شده باشد، مسیر بعدی از بعد از تایمر انتخاب خواهد شد.
در مثال زیر خلاصه ای از فرایند تایید اسناد مهندسی در یک پروژه نشان داده شده است. در این مثال، پس از ارسال پیش نویس مدرک مهندسی به کارفرما، اخذ تایید از کارفرما شامل دو شرط است. اول آنکه مدرک بدون کامنت و تایید شده بازگردانده شود و یا 14 روز از زمان ارسال به دفتر کارفرما گذشته باشد.