معرفی الگوهای “Cancel Case” و “Cancel Task” در BPMN
زمان تقریبی مطالعه: 2 دقیقه
گاهی اوقات در برخی قسمتهای فرآیندها نیاز داریم امکان لغو کل درخواست را فراهم کنیم. در این صورت میتوان از الگوی Cancel Case که در شکل شماره ۱ دیده میشود استفاده کرد.
شکل ۱
در شکل فوق همانطور که ملاحظه میکنید پس از انجام فعالیت Report Incident بصورت موازی هم امکان انجام فعالیت Analyze a Resolve Incident و هم انتخاب گزینه لغو درخواست برای کاربر وجود دارد.
همچنین مشاهده مینمایید که در انتهای هر دو شاخه یک Terminate Event برای پایان همه شاخههای باز و اتمام فرآیند وجود دارد. دلیل این امر آنست که در صورت انجام هر یک از شاخههای موازی نیاز به شاخه دیگر نداریم، اما در عین حال میخواهیم امکان انتخاب سایر شاخهها را تا انتهای کار داشته باشیم. توجه به این نکته ضروری است که رویداد Close Case را بصورت موازی با کارهایی طراحی مینماییم که میخواهیم همزمان با آنها امکان لغو فرآیند را داشته باشیم.
حال فرض کنید میخواهید درخواستی را که صادر شده است لغو کنید بطوری که پس از اینکه رویداد لغو درخواست را انتخاب کردید دیگر نمیتوانید این درخواست را ادامه دهید. یعنی بصورت موازی با انجام کار مانند شکل شماره ۱ امکان لغو وجود ندارد، بلکه در این حالت قبل از انجام کار باید تصمیم بگیرید که کار را انتخاب مینمایید یا آن را لغو میکنید. با استفاده از الگوی Cancel Task که در شکل شماره ۲ مشاهده مینمایید میتوانید این امکان را داشته باشید. همانطور که ملاحظه میکنید در این الگو از Event-Based Gateway استفاده شده است. بنابراین هنگامی که درخواست به این نقطه از فرآیند میرسد سیستم از شما میخواهد یکی از دو یا چند راه موجود را انتخاب کنید. زمانی که یکی ازمسیرها را انتخاب کنید دیگر انتخابها را نخواهید داشت.
شکل۲
همانطور که در مقالات قبلی اشاره شد این الگوهای BPMN را میتوان با توسعه بیشتر و تخصصیسازی، بصورت بهینهتری استفاده نمود و این الگوها در زمینههایی غیر از مثالهای مربوطه نیز کارایی دارند.