مرجع BPMN
BPMN چیست
مدل و نشانهگذاری فرآیند کسبوکار
مدل و نشانهگذاری فرآیند کسبوکار (Business Process Model and Notation) یک نمایش گرافیکی برای مشخص کردن فرآیندهای یک کسب و کار است.
هدف اصلی BPMN ارائه یک یادداشت استاندارد است به طوری که برای همه ذینفعان تجاری قابل فهم باشد. این ذینفعان اعم از تحلیلگران تجاری میشود که فرآیندها را ایجاد و بهسازی میکنند، توسعه دهندگان فنی که مسئول اجرای آنها هستند و مدیران تجاری که نظارت و مدیریت آن فرآیندها را انجام میدهند. در نتیجه، BPMN به عنوان یک زبان مشترک عمل میکند.
در ادامه با نمادها و مفاهیم BPMN آشنا خواهید شد:
خطوط شناوری: Swim Lane
فعالیت ها: Activities
رویدادها: Event
Type | شروع | میانی | پایانی | |||||
Normal | Event Subprocess | Event Subprocess non-interrupt | catch | boundary | boundary non-interrupt | throw | ||
None | ||||||||
Message | ||||||||
Timer | ||||||||
Conditional | ||||||||
Link | ||||||||
Signal | ||||||||
Error | ||||||||
Escalation | ||||||||
Termination | ||||||||
Compensation | ||||||||
Cancel | ||||||||
Multiple | ||||||||
Multiple Parallel |
نمادهای BPMN
نمادهای BPMN مجموعه عناصری هستند که بر اساس استاندارد BPMN در طراحی دیاگرام فرآیندها مورد استفاده قرار می گیرند.
ممکن است در مقالات دیگر از آنها با عنوان نمادهای BPMN، نوتیشن های BPMN، عناصر BPMN، المان های BPMN و یا سمبل های BPMN نیز یاد شود.
در این بخش شما با نماد های BPMN 2.0 آشنا می شوید و می توانید در بخش نمایشگاه فرآیندها ، تعداد زیادی فرآیند از پیش طراحی شده را مشاهده کنید و با کلیک بر روی دکمه “خودتان امتحان کنید” وارد بخش کارگاه آنلاین BPMN شده و به صورت آنلاین آنها را تغییر داده و حتی فایل XML خروجی را دانلود نمایید تا در صورت نیاز در برنامه های دیگری که از این استاندارد استفاده می کنند همچون Bonita، JBPN، Camunda ، Process Maker، Oracel، Bizagi، MyProcess, Visual Paradigm و … ایمپورت کنید.
مقدمه
BPD از مجموعه عناصر گرافیکی آسانی تشکیل شده که رسم دیاگرام های ساده و قابل فهم را ممکن می سازد. برای سادگی بیشتر، عناصر گرافیکی به گونهای انتخاب شدهاند که بیشتر تجزیه و تحلیلکنندگان با آنها آشنا باشند. به عنوان مثال از نماد لوزی برای نمایش تصمیمگیریها و از نماد مستطیل جهت نشان دادن فعالیتها استفاده شده است.
گروه توسعه دهنده BPMN به دنبال یافتن مکانیزمی آسان برای مدلسازی پیچیدگیهای ذاتی موجود در فرآیندهای کسب و کار بودند و به منظور فراهم کردن این دو مقصود متناقض از روش سازماندهی علائم استفاده کردند. بدین ترتیب که علائم گرافیکی را به مقوله های مشخصی تقسیم بندی نمودند. با دانستن مجموعهای کوچک از گروههای عناصر، کاربر با مشاهدهی یک نمودار فرآیند کسب وکار (BPD) میتواند به سهولت عناصر اصلی و مقدماتی را تشخیص داده و نمودار را درک کند. شکلها و اطلاعات اضافی میتوانند بدون ایجاد تغییر عمدهای به نمودار اولیه اضافه شوند و بدین ترتیب پیچیدگیهای موجود در فرآیند را به نمایش درآورند. چهار گروه اصلی تشکیلدهندهی یک نمودار BPD به شرح زیر میباشند :
اشیاء جریان (Flow Objects)
اشیاء ارتباط دهنده (Connecting Objects)
خطوط شناوری یا مسیرهای جریان(Swim lanes)
مصنوعات(Artifacts)
۱- اشیاء جریان (Flow Objects)
سه عنصر کلیدی و هستهای در یک BPD وجود دارد که در زمرهی اشیاء جریان قرار میگیرند. این سه عنصر عبارتند از رخداد (Event)، فعالیت (Activity) و راه ورود و خروج یا دروازه(Gateway) .
۱-۱- Event
رویدادها می توانند فرآیند را شروع کنند، آنرا به تاخیر بیندازند، متوقف کرده و یا پایان دهند.
۱-۱-۱- شروع
نقطه آغاز برای هر فرایند است. هر کدام از رویدادها بر حسب نوع شان، دارای راه انداز (trigger) می باشند که به آن تحریک کننده نیز می گوییم.
۱-۱-۱-۱- Normal
نقطه شروع فرآیند است .رویدادهای شروع نرمال را با یک دایره با خط نازک نمایش می دهیم. این رویدادها تنها از نوع دریافت گرا (Catching) هستند.
۱-۱-۱-۲- Interrupting
رویدادها در Bpmn2 از لحاظ ایجاد وقفه به دو نوع تقسیم میشود:
- رویداد همراه با وقفه (Interrupting Event)
- رویداد بدون وقفه (Non-Interrupting Event)
اگر رویداد شروع با وقفه باشد، فعالیتهای درون فرآیند اصلی متوقف می شود و فعالیت های درون Sub Process ایجاد و اجرا می شود و پس از اتمام آن، اجرای فرایند ادامه پیدا خواهد کرد.
۱-۱-۱-۳- Non-Interrupting
در Event Sub Process زمانی که رویداد شروع درون آن رخ می دهد، اگر از نوع بدون وقفه باشد، فعالیت های درون Sub Process به صورت موازی با فرآیند اصلی ادامه می یابد.
۱-۱-۲- میانی
رویدادهای میانی رویداد هایی هستند که در میانه راه فرآیند محقق می گردند و بر روند فرآیند تاثیر می گذارند. این رویدادها هم می توانند دریافت گرا (Catching )و هم مخابره ای (Throwing) باشند.
به عنوان مثال وقتی جریان فرآیند به این رویدادها رسید، محقق شوند و پیغامی را مخابره کنند و یا وقتی جریان فرآیند به این رویدادها می رسد، صبر کند تا این رویداد پیغامی را دریافت کرده و محقق شود و سپس به جریان فرآیند اجازه عبور دهد. رویدادهای دریافت گرا رویدادهای توخالی و رویدادهای مخابره ای رویدادهای توپر می باشند. مثالی از آن را می توانید در شکل مشاهده کنید. رویدادهای میانی را با دایره دو خط نشان می دهیم.
رویدادها(تنها رویدادهای میانی) از لحاظ استقلال دو نوع هستند:
۱- به صورت یک نماد مستقل در روند فرآیند قرار بگیرد.
۲- بر روی مرز یک activity نشان داده می شود که در زمان اجرای آن فعالیت هر زمان که رویداد دریافت شد روند بعد از رویداد ادامه میابد .
۱-۱-۲-۱- Boundary Catching
Catching events رویداد هایی هستند که وظیفه و هدف آن ها از پیش تعریف شده است. به عبارت دیگر، این رویدادها نقاطی هستند که نتیجه عملی که قبلا انجام شده است را دریافت نموده و از آن برای ادامه فرآیند و یا شروع فرآیند دیگری استفاده می کنند. در واقع این رویدادها در طول فرآیند تنها یکبار فعال می شوند و پس از آن از مدل کنار گذاشته می شوند. از آنجایی که این رویدادها می توانند به عنوان یک نقطه مهم در فرآیند بر روی کل مدل تاثیر بگذارند، از این رو دارای نقش مهمی در مدل های فرآیندی می باشند، به گونه ای که Catching events می توانند منجر به :
- شروع یک فرآیند شوند.
- ادامه یک فرآیند و یا مسیری از یک فرآیند شوند.
- اجرای یک فعالیت شوند و یا یک sub process را لغو نمایند.
- استفاده از مسیر دیگری در فرآیند شوند در حالیکه Taskو sub process در حال اجرا باشند
۱-۱-۲-۲- بخش Boundary Interrpting
فعالیتی که رویدادهای مرزی با وقفه، روی مرز آن قرار گرفته و در حال اجرا است ، وقفه اجرای آن را سریعا متوقف می کند و ابتدا مسیر وقفه اجرا خواهد شد..
۱-۱-۲-۳- Boundary Non-Interrupting
در این نوع رویداد های مرزی بدون وقفه ، فرایند به صورت همزمان کار خود را پیش می برد . به عبارت دیگر ، مسیر اصلی فرایند و مسیر وقفه به طور هم زمان و موازی اجرا خواهند شد.
۱-۱-۲-۴- Throwing
Throwing eventsرویدادهایی هستند که بر خلاف Catching events ، به عنوان نقاطی از فرآیند که در آن یک محصول (خروجی) تولید شده و حال، این محصول بایستی به قسمت دیگری از همان فرایند و یا یک فرآیند دیگر ارسال شود، استفاده می شوند. در واقع Throwing events نقش ارسال کننده و Catching events نقش دریافت کننده را در این پروسه ایفا می کنند. می توان گفت این رویدادها تا زمانی فعال هستند که Catching events متناظر با آن ها هنوز فعال نشده و به محض فعال شدن Catching events متناظرشان، این رویدادها غیر فعال می شوند.
این رویداد ها می توانند به عنوان :
- هدفی تحقق یافته در طول فرآیند که نتیجه را برای قسمت دیگری ارسال می کنند.
- هدفی تحقق یافته در پایان فرآیند که در این حالت نیز نتیجه بدست آمده از اتمام فرآیند را برای قسمت و یا فرآیند دیگری ارسال می کنند.
علاوه بر مطالب بیان شده درباره Event ها، می توان intermediate event ها را به فعالیتها ضمیمه کرد. این کار می تواند منجر به ایجاد وقفه در task ها و sub process ها شود. در این حالت ما intermediate event ها را بر روی لبه فعالیت هایی قرار می دهیم که می خواهیم تحت شرایط خاصی در آن فعالیت وقفه ای ایجاد شود
فرض کنید در نمودار زیر با رسیدن به وظیفه ۱، فرآیند آغاز شود.
- اگر در حین اجرای وظیفه ۱، event 1 رخ دهد، task1 سریعاً متوقف شده و از مسیر دیگر به سمت وظیفه ۳ حرکت می کنیم، به عبارت دیگر، اگر event 1 رخ ندهد، وظیفه ۱ اجرا خواهد شد و در مرحله بعد به سمت وظیفه ۲ خواهیم رفت.
- همچنین اگر event 1 بعد از اینکه وظیفه ۱ به طور کامل اجرا شد رخ دهد، این رویداد تاثیری بر مدل نخواهد گذاشت و می توان آنرا نادیده گرفت.
در BPMN 1.2، به جز compensation event ها، سایر intermediate events قطعا باعث لغو شدن فعالیت ها خواهند شد و این در حالیست که در BPMN 2.0 نمادهای جدیدی در نظر گرفته شده است که intermediate event می توانند بدون ایجاد وقفه در مدل اتفاق بیفتند. هر چند این موضوع بسیار پیچیده می باشد ولی می تواند مفید واقع شود.
برای درک بهتر موضوع بالا به مثال زیر توجه نمایید:
فرض کنید در نمودار بالا با رسیدن به وظیفه ۱ فرآیند آغاز شود.
- اگر event 1 در حالیکه وظیفه ۱ در حال اجراست اتفاق بیفتد، این event یک همزاد تولید می کند. در این حالت اجرای وظیفه ۱ در حالی ادامه می یابد که همزاد event به سمت وظیفه ۳ حرکت می کند که باعث اجرای آن می شود. این پروسه ممکن است بارها تکرار شود، به عبارت دیگر event می تواند بارها اتفاق بیفتد که هر بار رخداد آن، منجر به تولید یک همزاد دیگر می شود.
- اگر event 1 رخ ندهد، وظیفه ۱ کامل اجرا خواهد شد و با توجه به نمودار به سمت وظیفه ۲ حرکت خواهیم نمود.
- اما اگر event 1 بعد از اینکه وظیفه ۱ کامل اجرا شد رخ دهد، همانند حالت قبل این رویداد تاثیری بر مدل نخواهد گذاشت و میتوان آنرا نادیده گرفت.
۱-۱-۳- پایانی
رویدادهای پایانی رویداد هایی از نوع Throwing می باشند و به محض رسیدن جریان فرآیند به این رویدادها اتفاق میافتد. این رویدادها به شکل دایره های ضخیم نشان داده می شود و شاخه ای از جریان فرایند و یا کل آن را خاتمه می دهد.
۱-۲- انواع Event
۱-۲-۱- None
این رویداد دستی است و هیچ راه اندازی برای آن تعریف نمی شود.
۱-۲-۱-۱- None Start Event
نمایش آغاز فرآیندی که نحوه شروع آن تعریف نشده باشد . همواره زیر فرایند ها با این نوع رویداد آغاز می شوند.
۱-۲-۱-۲- Throwing Start Event
برای تغییر حالت در مسیر فرآیند طی جریان عادی از آن استفاده می شود.
۱-۲-۱-۳- None End Event
پایان یک زیر فرآیند و بازگشت فرآیند به جریان اصلی است.
۱-۲-۲- Message
بیشتر فرآیندها نیاز به ارتباطات دارند که این ارتباطات در BPMN می تواند از طریق رویداد message نشان داده شود. شما می توانید این رویداد را از طریق پاکت کوچکی که درون آن گنجانده شده تشخیص دهید. معنی message در BPMN ،تنها به چیزهایی مانند نامه، ایمیل و یا تماس محدود نمی شود، بلکه هر اقدامی که به آدرس خاصی اشاره داشته باشد و یا حاوی اطلاعاتی برای یک آدرس خاص باشد message در نظر گرفته می شود.
۱-۲-۲-۱- Message Start Event Normal
نماد آن، یک پاکت نامه است و trigger آن، دریافت پیغام از فرآیندهای دیگر می باشد.
مثلا در فرآیند فروش، در صورتی که مشتری اعتبارسنجی نشده باشد، یک پیغام از فرآیند فروش به فرآیند اعتبار سنجی می رود و فرآیند اعتبار سنجی شروع می شود.
۱-۲-۲-۲- Message Start Event Sub-Process Interrupting
رویداد پیام شروع زیر فرایند با وقفه است . تنها تفاوت آن این است که برای شروع زیر فرایند ها استفاده می شود و زمانی که از این رویداد استفاده میشود، باعث ایجاد وقفه در مسیر زیر فرایند خواهد شد .
۱-۲-۲-۳- Message Start Event Sub-Process Non-Interrupting
رویداد شروع فرایند با پیام بدون وقفه است. به این معنا که این نماد بدون اینکه در فرایند وقفه ای ایجاد کند یک زیر فرایند را همزمان آغاز و اجرا می کند.
۱-۲-۲-۴- Message Intermediate Catching
رویداد پیام دریافتی میانی که نماد داخلی آن یک پاکت نامه سفید رنگ است و برای دریافت یک پیام، منتظر می ماند و جریان فرآیند تا نرسیدن پیام ، ادامه نمی یابد.
۱-۲-۲-۵- Message Intermediate Boundary interrupting
رویداد پیام میانی مرزی همراه با وقفه، برای زمانی که بخواهیم در یک فعالیت توسط یک پیام وقفه ای ایجاد کنیم از این نماد استفاده خواهیم کرد:
۱-۲-۲-۶- Message Intermediate Boundary Non-interrupting
رویداد پیام میانی مرزی بدون وقفه، برای ارسال پیام در فرایند به نحوی که در روال اجرای فرایند وقفه ای صورت نپذیرد استفاده می شود.
۱-۲-۲-۷- Message Intermediate Throwing
وقتی در فرآیند، منتظر دریافت یک پیام باشیم و در صورت دریافت آن، مسیر عادی فرآیند طی شود یا وقتی در فرآیند، منتظر دریافت یک پیام باشیم و در صورت دریافت آن، مسیر استثنا فرآیند طی شود.
۱-۲-۲-۸- Message End
با استفاده از نماد پیام پایان ، فرایند ما با ارسال یک پیام خاتمه پیدا می کند.
۱-۲-۳- Timer
رویداد timer یکی دیگر از نمادهایBPMN است که در رسم فرایندها بسیار از آن می کنیم استفاده می شود چرا که این رویداد قابلیت انعطاف پذیری بالایی در فرآیندها دارد و با نماد ساعت نمایش داده می شود.
از آنجایی که زمان بدون توجه به این موضوع که ما و یا فرآیند قصد انجام چه کاری را داریم در گذر می باشد، از این رویدادهای timer تنها می توانند به عنوان رویداد شروع و یا میانی استفاده شوند. شما می توانید با ضمیمه کردن یک رویداد زمانسنج، یک فعالیت خاصیتی شبیه شمارش معکوس در آن ایجاد نمایید که در مدلهای BPMN از این خاصیت به مراتب استفاده می شود.
۱-۲-۳-۱- Timer Start Event Normal
وقتی شروع فرآیند در زمان خاصی (مثلا هر روز ساعت ۷ صبح) باشد می توان از این نماد استفاده کرد.
۱-۲-۳-۲- Timer Start Event Sub-Process Interrupting
وقتی قرار باشد که در یک زیر فرایند مربوط به یک فرآیند، در زمان خاصی (مثلا ۲۸ هر ماه) اتفاق خاصی رخ دهد، میتوان از رویداد زمانسنج زیرفرایند استفاده کرد.
۱-۲-۳-۳- Timer Start Event Sub-Process Non-Interrupting
در BPMN 2.0 این رویداد به تازگی اضافه شده و از آن میتوان برای تنظیم کردن زمانی خاص بدون اینکه در روال فرایند وقفه ای ایجاد شود استفاده کرد.
۱-۲-۳-۴- Timer Intermediate Catching
رویداد میانی زمانسنج دریافت گرا برای مواقعی که میخواهیم مشخص کنیم اگر یک وظیفه بعد از گذشتن زمان مشخصی انجام نشود چه اتفاقی رخ بدهد میتوان از این رویداد استفاده کرد.
۱-۲-۳-۵- Timer Intermediate Boundary Interrupting
رویداد زمانسنج مرزی همراه با وقفه، مشخص کردن وضعیت وظیفه بعد از سپری شدن زمان مشخصی است که البته با ایجاد وقفه همراه است، به این معنی که به اندازه زمان تعیین شده، فرایند می بایست در حالت انتظار قرار بگیرد.
۱-۲-۳-۶- Timer Intermediate Boundary Non-Interrupting
رویداد زمان سنج میانی مرزی بدون اینکه در روال انجام فرایند وقفه ای ایجاد کند بعد از گذشت مدت زمان مشخص شده یک وظیفه را اجرا می کند.
۱-۲-۴- Conditional
گاهی اوقات ما فقط می خواهیم یک فرآیند تحت شرایط خاصی شروع و یا ادامه پیدا کند. در اینجا هر چیزی می تواند به عنوان شرط درنظر گرفته شود و ماهیت شرایط مستقل از نوع فرایند می باشد و این باعث می شود که رویداد condition نیز مانند رویداد timer تنها بتواند در قالب یک catching event استفاده شود. از این رو فرآیندی که خروجی اش باعث ادامه و یا شروع فرایند دیگری می شود نمی تواند به یک رویداد condition ختم شود.
از نماد کاغذ خط دار در شکل رویداد استفاده می شود . از این رویداد می توان به سه روش استفاده کرد :
۱- در جریان طبیعی فرآیند و فقط به عنوان دریافت کننده
۲- Attach شدن به بدنه فعالیت جهت متوقف کردن آن
۳- بعنوان قسمتی از یک دروازه مبتنی بر رویداد
در بیشتر موارد رویداد میانی مشروط به فعالیت Attach می شود. بطوریکه تغییر شرط منجر به توقف فعالیت می گردد.
۱-۲-۴-۱- Conditional Start Normal
در صورت برقرار شدن شرایط، رویداد میتواند آغاز بشود. مثلا اگر شرط کنسل شدن اپلیکیشن برقرار شود در این صورت میتوان وارد وظیفه شد.
۱-۲-۴-۲- Conditional Event Sub-Process Interrupting
زمانی که نیاز باشد یک شرط خاص را به صورت شروع شونده بر روی یک وظیفه خاص داشته باشیم، از یک رویداد شرط زیر فرایند وقفه دار استفاده می شود و ساختاری کاملا شبیه به شرط شروع نرمال دارد.
۱-۲-۴-۳- Conditional Event Sub-Process Non-Interrupting
تنها تفاوت این شرط با موارد قبل این است که در صورت برقرار نشدن شرط، فرایند کار خود را ادامه خواهد داد و وقفه ای رخ نمیدهد.
۱-۲-۴-۴- Conditional Intermediate Catching
رویداد شرطی میانی دریافت گرا است.
۱-۲-۴-۵- Conditional Intermediate Boundary Interrupting
رویداد شرطی میانی مرزی با ایجاد وقفه است.
۱-۲-۴-۶- Conditional Intermediate Boundary Non-Interrupting
رویداد شرطی میانی مرزی بدون ایجاد وقفه است.
۱-۲-۵- Link
از بین رویدادهای بکار رفته شده در BPMN، رویداد link یکی از موارد خاص به شمار می رود و هیچ ارتباطی با محتوای فرآیند ندارد اما روند نمودار فرآیند را می تواند تسهیل ببخشد. همانطور که در شکل زیر نشان داده شده است، شما می توانید از دو link مرتبط به هم به عنوان جایگزینی برای یک جریان توالی استفاده نمایید. در اینجا از یک throwing link event به عنوان نقطه خروج استفاده و از سوی دیگر از یک catching link event به عنوان نقطه ورود استفاده می شود و بدین ترتیب این دو رویداد را به عنوان یک جفت مرتبط با هم در نظر میگیریم.
رویدادهای Link می توانند بسیار مفید باشند اگر:
- شما مجبور باشید نمودار فرآیند را در بین چندین صفحه توزیع دهید. در این حالت Link ها خواننده را از یک صفحه به صفحه دیگر منتقل می کند.
- شما نمودارهای فرآیند جامعی را با جریان های توالی فراوان رسم کرده باشید. در این حالت Link ها به ما کمک می کنند تا از بوجود آمدن جریان های توالی نامنظم و به هم ریخته اجتناب کنیم.
نکته آخر اینکه رویدادهای Link تنها می توانند به عنوان رویدادهای میانی مورد استفاده قرار گیرند.
۱-۲-۵-۱- Link Intermediate Catching
رویداد اتصال میانی مرزی دریافت گرا است و گیرنده یک فرایند ارسالی از poolدیگر یا فرایند دیگری است.
۱-۲-۵-۲- Link Intermediate Throwing
رویداد اتصال میانی مرزی مخابره ای است و از طریق آن، فرآیند جاری به یک فرآیند دیگر یا یک Pool ارسال می شود.
۱-۲-۶- Signal
رویداد Signal بسیار شبیه رویداد message می باشد و در جاهایی که رویداد message می تواند استفاده شود، این رویداد نیز بکار گرفته می شود که نماد این رویداد یک مثلث می باشد. در واقع تفاوت اصلی بین رویدادهای message و Signal این می باشد که message همیشه به یک گیرنده خاص آدرس داده می شود (برای مثال یک ایمیل ادرس دریافت کننده ایمیل را شامل می شود و یا یک تماس تلفنی با شماره گیری یک شماره خاص شروع می شود و مثالهایی از این قبیل). یک Signal بیشتر شبیه یک تبلیغ در روزنامه و یا یک تلویزیون تجاری است. در واقع Signal برای آدرس و یا نفر خاصی ارسال نمی شود و هرکسی می تواند دریافت کننده آن باشد و اگر بخواهد می تواند نسبت به آن واکنش نشان دهد.
۱-۲-۶-۱- Signal Start Normal
رویداد شروع سیگنال ، یک سیگنال را ارسال می کند و گیرندگان مربوط آن را دریافت خواهند کرد.
۱-۲-۶-۲- Signal Event Sub Process Interrupting
رویداد سیگنال زیر فرایند با وقفه است.
۱-۲-۶-۳- Signal Event Sub Process Non- Interrupting
رویداد سیگنال زیر فرایند بدون وقفه است.
۱-۲-۶-۴- Signal Intermediate Catching
رویداد سیگنال میانی دریافت گرا است.
۱-۲-۶-۵- Signal Intermediate Boundary Interrupting
رویداد سیگنال میانی مرزی با وقفه است.
۱-۲-۶-۶- Signal Intermediate Boundary Non-Interrupting
رویداد سیگنال مرزی میانی بدون وقفه است.
۱-۲-۶-۷- intermediate Throwing Signal
سیگنال میانی مخابره ای است .
۱-۲-۶-۸- Signal End
در رویداد پایانی سیگنال، به محض اینکه جریان فرآیند به این شاخه می رسد، جریان فرایند را خاتمه میدهد و سیگنالی را ارسال میکند که تمام فرآیندها آن را دریافت میکنند ولی فرآیندهایی که میخواهند نسبت به آن عکس العمل نشان میدهد.
۱-۲-۷- Error
این نماد صرفا چسبیده به زیر فرآیند (Sub Process ) برای مدل سازی خطاها درون زیر فرآیند استفاده میشود. مثلا فرض کنید فرآیند بررسی مدارک درخواست کننده ی وام را به صورت زیر فرآیند (درون فرآیند اعطای وام) مدل کرده اید، حال اگر داخل زیر فرآیند مدرکی ناقص باشد، درون زیر فرآیند یک خطا رخ میدهد و برای مدل سازی این خطا از این نماد استفاده میکنیم. همچنین در صورت رخداد این خطا میخواهید به درخواست کننده وام در مورد تکمیل مدرک اطلاع دهید که گام بعد از خطا را اطلاع رسانی به کاربر قرار میدهید . توجه کنید که مسیر عادی فرآیند، پس از زیر فرآیند، مرحله بعدی اعطای وام (مثلا تایید اعطای وام) بوده است.
۱-۲-۷-۱- Error start event sub-process interrupting
رویداد شروع خطا زیر فرایند دارای وقفه زمانی استفاده میشود که بخواهیم علاوه بر بیان کردن وجود خطا، وقفه هم ایجاد کنیم.
۱-۲-۷-۲- Error Intermediate Boundary Interrupting
رویداد خطا مرزی دارای وقفه نیز برای بیان خطا ایجاد وقفه مورد استفاده قرار می گیرد.
۱-۲-۷-۳- Error End
رویداد پایانی خطا، معمولا برای مواقعی کاربرد دارد که خطایی در اجرای روند فرآیند به وجود آید و رخ دادن خطا را به قسمت های دیگری از فرآیند که میتوانند آن را دریافت کنند، مخابره میکند. به عنوان مثال فرآیند خرید یک مشتری که میخواهد با کارت اعتباری مبلغ خرید را پرداخت کند را در نظر بگیرید، اگر شماره کارت وارده نا معتبر بود، جریان فرآیند به یک رویداد پایانی خطا خاتمه می یابد که علاوه بر خاتمه دادن به فرآیند، رخداد یک خطا را به شاخه دیگری از فرآیند ارسال کند که به کاربر در مورد نا معتبر بودن کارت بانکی هشداری نشان دهد.
۱-۲-۸- Escalation
رویداد تشدیدEscalation events) ) معمولا برای برقراری ارتباط بین یک Sub process و فرآیند بالاتر استفاده میشود. برخلاف رویداد خطا، یک رویداد تشدید غیر بحرانی است و فرآیند در همان محل ارسال رویداد تشدید، هم ادامه پیدا میکند.
این رویداد بیشتر برای پشتیبانی از حالتی که در ادامه روند نیاز به کمک شخص دیگری (مخصوصا یک سطح بالاتر) باشد استفاده میشود. به عنوان مثال در فرآیند اعطای وام در صورتی که مبلغ وام بالا باشد، نیاز است تا کارمند مدارک را به همراه مدیر خود بررسی کند. دقت کنید که
رویداد میانی و پایانی تشدید تنها در Sub processها استفاده میشود. در توالی یک جریان فقط رویداد تشدید در حالت ارسال میتواند استفاده شود. این بدین معنی است که رویداد تشدید تنها میتواند از درون یک زیر فرآیند (که دارای یک رویداد میانی تشدید دریافت روی مرز زیر فرآیند است) به فرآیند بالاتر ارسال شود.
۱-۲-۸-۱- Escalation Start event Sub-Process
رویداد شروع تشدید تنها در Event Sub Process استفاده میشود. رویداد تشدید، اقدامات لازم را برای تسریع تکمیل پیاده سازی فرایند انجام می دهد و فعالیت باید در محدوده مشخص شده زمانی اجرای شود و یادآوری این زمان به وسیله نماد هشدار شروع (مانند یک مهلت زمانی مبتنی) انجام میگیرد.
۱-۲-۸-۲- Escalation Start Event Sub-Process Non-Interrupting
رویداد هشدار زیر فرایند بدون ایجاد وقفه است.
۱-۲-۸-۳- Escalation Intermediate boundary Interrupting
رویداد هشدار میانی مرزی با وقفه است.
۱-۲-۸-۴- Escalation Intermediate Boundary Non-Interrupting
رویداد هشدار مرزی میانی بدون وقفه است.
۱-۲-۸-۵- Escalation Intermediate Throwing
رویداد هشدار میانی مخابره ای است.
۱-۲-۸-۶- Escalation End
رویداد هشدار پایانی است.
۱-۲-۹- Termination
نوع دیگری از رویداد پایانی رویداد پایانی خاتمه گرا می باشد. این رویداد مانند رویداد پایانی ساده عمل می کند، فقط علاوه بر اینکه جریان شاخه مربوط به خود را از بین می برد، جریان های فعال دیگر در فرآیند را نیز خاتمه داده و موجب اتمام فرآیند می شود.
۱-۲-۹-۱- End Termination
این رویداد فقط دارای نوع پایانی است.
۱-۲-۱۰- Compensation
بعضی وقت ها ممکن در فرآیند ما فعالیتی اجرا شود که گاهی اوقات نیاز به لغو آن تحت شرایط خاصی باشد.
Throwing compensationsها به فرآیندهای خود ارجاع داده می شوند ، از این رو خود رویداد می تواند در درون Pool موثر باشد. این موضوع نشان می دهد که چگونه این نوع رویداد با throwing message event متفاوت است.
یک رویداد compensation ضمیمه شده تنها در صورتی که فعالیتی که به آن ضمیمه شده به طور کامل و با موفقیت اجرا شده باشد و فرآیند منجر به اصلاح شود ، می تواند رخ دهد و این در حالیست که انواع رویدادهای ضمیمه شده دیگر تنها در صورتی می توانند رخ بدهند که فعالیتی که بر روی آن ضمیمه شده اند فعال شود.
رویدادهای compensation ضمیمه شده از طریق وابستگی های مجازی به compensation tasks متصل می شوند و برای این اتصال نیازی به جریان های توالی ندارند.
۱-۲-۱۰-۱- Compensation Start Event Sub-Process
بعضی وقت ها ممکن در فرآیند ما فعالیتی اجرا شود که گاهی اوقات نیاز به لغو آن تحت شرایط خاصی باشد.
در این رابطه می توان مثال هایی نظیر موارد زیر بیان نمود:
- رزرو بلیط هواپیما یا قطار
- رزرو کردن یک ماشین کرایه ای
- شارژ کردن یک کارت اعتباری
- راه اندازی یک ارائه دهنده خدمات
در چنین شرایطی به راحتی می توان ازاین رویداد استفاده کرد.
۱-۲-۱۰-۲- Compensation Intermediate Boundary Interrupting
رویداد جبران میانی مرزی با وقفه است.
۱-۲-۱۰-۳- Compensation Intermediate Throwing
رویداد میانی جبران مخابره ای است.
۱-۲-۱۰-۴- Compensation End
رویداد جبران پایانی است.
۱-۲-۱-۱- Cancel
از نماد ضربدر به عنوان نماد درونی این رویداد استفاده می شود و نشان دهنده دریافت خطا است و مسیر بعد از آن نحوه عکس العمل نشان دادن به خطا را مشخص میکند.
۱-۲-۱۱-۱- Cancel Intermediate Boundary
این نماد صرفا با Transaction Sub process استفاده میشود و گام بعد از آن نشان دهنده مسیر جایگزین در صورت لغو sub process میباشد. زمانی که زیر فرآیند به علتی لغو شد این رویداد اجرا میشود.
۱-۲-۱۱-۲- Cancel End
رویداد پایانی کنسل، تنها در درون یک Transaction Sub-process میتواند استفاده شود که اگر شرایط به گونه ای بود که فرآیند به آن برسد باعث کنسل شدن آن فرآیند میشود.
۱-۲-۱۲- Multiple
از نماد پنج گوش در شکل رویداد استفاده شده و به دو نوع پرتاب کننده و دریافت کننده مورد استفاده قرار میگیرند.
راه اندازهایی که برای این رویداد معتبر هستند: پیام، جبران و علامت.
نکته: رویدادهای میانی پیوند که نوع خاصی از رویدادهای (پرتاب کننده–دریافت کننده) هستند را نمی توان در رویدادهای چندگانه استفاده کرد
ما می توانیم از رویدادهای Multiple به منظور خلاصه کردن چند رویداد در یک نماد جداگانه استفاده نماییم.
۱-۲-۱۲-۱- Multiple Start Normal
رویداد چند گانه شروع عادی است.
۱-۲-۱۲-۲- Multiple Start Event Sub-Process Interrupting
رویداد چند گانه زیر فرایند دارای وقفه است.
۱-۲-۱۲-۳- Multiple Start Event Sub-Process Non-Interrupting
رویداد شروع چند گانه زیر فرایند بدون وقفه است.
۱-۲-۱۲-۴- Multiple Intermediate Catching
رویداد چند گانه میانی دریافت کننده است.
۱-۲-۱۲-۵- Multiple Intermediate Boundary Interrupting
رویداد چند گانه میانی مرزی دارای وقفه است.
۱-۲-۱۲-۶- Multiple Intermediate Boundary Non-Interrupting
رویداد چند گانه میانی مرزی بدون وقفه است.
۱-۲-۱۲-۷- Multiple Intermediate Throwing
رویداد چند گانه میانی مخابره ای است.
۱-۲-۱۲-۸- Multiple End
رویداد چندگانه پایان، چند نتیجه از جمله (خطا، پیام، جبران و علامت) را مشخص می کند و تحریک کننده آنهاست.
۱-۲-۱۳- Multiple Parallel
رویداد parallel به منظور تکمیل نمودن رویداد multiple در BPMN 2.0 اضافه شده است. در حالیکه یک رویداد catching multiple به محض وقوع یکی از رویدادهایی را که شامل می شود اتفاق می افتد اما رویداد parallel تا زمانیکه کل رویدادهای وارده به آن فعال نشوند رخ نمی دهد و در بیشتر مواقع به عنوان یک catching event از آن استفاده می شود.
۱-۲-۱۳-۱- Multiple Parallel Start Normal
رویداد چند گانه موازی شروع است.
۱-۲-۱۳-۲- Multiple Parallel Start Event Sub-Process Interrupting
رویداد چند گانه موازی زیر فرایند دارای وقفه است.
۱-۲-۱۳-۳- Multiple Parallel Start Event Sub-Process Non-Interrupting
رویداد موازی چند گانه زیر فرایند بدون وقفه است.
۱-۲-۱۳-۴- Multiple Parallel Intermediate Catching
رویداد چند گانه موازی میانی دریافت کننده است.
۱-۲-۱۳-۵- Multiple Parallel Intermediate Boundary Interrupting
رویداد چند گانه موازی میانی مرزی دارای وقفه است.
۱-۲-۱۳-۶- Multiple Parallel Intermediate Boundary Non-Interrupting
رویداد چند گانه موازی میانی مرزی بدون وقفه است.
۱-۳- Activity
معمولا از مستطیل برای نشان دادن فعالیت(Activity )استفاده میشود. فعالیت نشان دهنده کاری است که در یک گام از اجرای فرآیند انجام میشود و میتواند به صورت تک واحدی Atomic) ) و یا مرکب Compound) ) باشد. فعالیتها میتواند یک بار اجرا شود و یا در یک حلقه تکرار شوند.
۱-۳-۱- Task
در استاندارد Bpmn2 چندین نوع وظیفه تعریف شده است، که دارای خواص، رفتار و مجریان گوناگونی است. نوع این وظایف با نمادهایی که درون مستطیل بالا سمت چپ استفاده میشود مشخص میشود.
درون مستطیل نزدیک ضلع پایین نیز میتوان از علامت هایی همانند حلقه normal looping ، موازی parallel multiple instance ، ترتیبی sequential multiple برای نشان دادن نوع رفتار تکراری Task، استفاده کرد.
متداولترین وظیفه Abstract Task است که نشان دهنده وظیفه ای بدون نوع و رفتار خاصی است و کاملا ساده است و در شکل نماد آن را مشاهده میکنید.
۱-۳-۱-۱- User Task
یک User Taskنشان دهنده فعالیتی است که کاربر سیستم باید انجام دهد. وقتی اجرای فرآیند به این قسمت میرسد یک کار در کارتابل کاربر ایجاد میشود.
این فعالیت توسط کاربر درون یک برنامه کاربردی با در اختیار قرار دادن یک اینترفیس (مثل BPMSها) تکمیل میشود. این بدین معنی است که چرخه حیات کاربر توسط نرم افزار مدیریت میشود و در متن فرآیند درحال اجرا است. یک User Task نماد یک انسان را در بالا سمت چپ درون مستطیل دارد.
۱-۳-۱-۲- Manual Task
یک Manual Task نشان دهنده فعالیتی است که نیازمند دخالت انسانی برای تکمیل آن است. برخلاف یک User Task، انتظار می رود که یک Manual Task بدون دخالت یک برنامه کاربردی و یا موتور فرآیند کار اجرا شود. یک Manual Task هیچ اینترفیسی برای اجرای وظیفه ارائه نمیکند، بنابراین به صورت ذاتی در یک BPMS قابل اجرا نمیباشد. نمونه مثال برای یک Manual Task در ادامه آمده است:
- نصب یک تلفن در مکان مشتری توسط یک تکنسین تلفن
- یک مشکل توسط پشتیبانی به صورت تلفنی حل میشود.
۱-۳-۱-۳- Script Task
نوع دیگری از Task های اتوماتیک Script Task است. برخلاف Service Task، یک Script Task بوسیله موتور فرآیند کسب و کار قابل اجرا است. از لحاظ فنی، یک Script Task نشان دهنده یک کد است که میتواند درون موتور فرآیند اجرا شود. یک مدل کننده یک Script Task را در یک زبان قابل تفسیر برای موتور فرآیند تعریف میکند. هنگامی که یک فرآیند به یک Script Task رسید. موتور کد را اجرا کرده و زمانی که Script تکمیل شد، وظیفه کامل خواهد شد.
چندین مثال برای Script Task در ادامه آورده میشود:
- دریافت یک مسئله برای پشتیبانی و ارسال آن به یک اپرا تور
- جمع زدن مجموع هزینه ها بوسیله جمع هزینه های محصول و حمل و نقل
- اضافه کردن یکID منحصر به فرد برای پشتیبانی یک مورد
۱-۳-۱-۴- Receive Message Task
نشان دهنده فعالیتی است که منتظر دریافت پیام از یک شرکت کننده خارجی (در یک Pool دیگر)
زمانی که پیام دریافت شد فعالیت تکمیل میشود.
جریان دریافت یک پیام با استفاده از Message Flow مشخص میشود.
موارد مورد استفاده از Receive Message Task
- انتظار برای تایید نویسنده برای ادامه فرآیند انتشار
- انتظار برای اطلاعات مشتری برای حل یک مشکل موجود
- شروع فرآیند تحویل کالا بعد از تایید آدرس ارسال
۱-۳-۱-۵- Send Message Task
یک Send Message Task یک وظیفه ساده BPMN است که برای ارسال یک پیام به یک شرکت کننده خارجی (معمولا در Pool های دیگر (BPMN) طراحی شده است. هنگامی که پیام ارسال شد وظیفه کامل میشود. میتوان با استفاده از یک Message Flow شرکت کننده ای که پیام را ارسال میکند را مشخص کرد. این نماد با یک پاکت نامه سیاه رنگ و توپر درون یک مستطیل نمایش داده میشود.
مثال هایی برای Send Message Task را ادامه مشاهده میکنید:
- اطلاع رسانی به همکار در مورد اتمام فرآیند
- هنگامی که یک خرید کامل میشود و فاکتور برای مشتری ارسال میشود.
- هنگامی که یک مقاله انتشار میابد به نویسنده خبر داده میشود.
۱-۳-۱-۶- Rule Task
یک Rule Task، مکانیزمی را برای فرآیند فراهم میکند که با دادن یک ورودی، یک خروجی که حاصل محاسبات موتور قانون فرآیند (Business Rules Engine)است، را ارائه میکند. مثال هایی در این مورد را در ادامه میتوانید مشاهده کنید:
- تعریف اولویت هایی برای موارد مورد پشتیبانی بر اساس کاربر
- محاسبه هزینه بیمه با توجه به پروفایل کاربر
- ارسال یک پیشنهاد محصول مناسب بر اساس رفتار کاربر
۱-۳-۱-۷- Loop Task
یک Loop Task تا زمانی که شرایط تعریف شده صادق باشد و یا اینکه متوقف شود، تکرار می شود. برای مثال ممکن است ما غذاهای مختلفی را آنقدر به میهمانان پیشنهاد میدهیم تا در انتها یکی از آنها را انتخاب کنند و بعد از آن میتوانیم غذاهای موردنیاز را آماده نماییم.
در این مثال ما Loop Task را برای یکبار اجرا میکنیم و پس از آن بررسی میکنیم تا در صورت نیاز Task را دوباره اجرا نماییم که برنامه نویسان برای انجام این کار از ساختار Do While استفاده می نمایند. همچنین می توانیم از ساختار While Do نیز استفاده نماییم که در آن وظیفه قبل از اینکه اجرا شود چک می شود. هرچند که مورد دوم به ندرت پیش می آید اما در مواردی که Task قابل اجرا نیست این مورد رخ می دهد.
۱-۳-۱-۸- Compassion Task
یک وظیفه جبران (Compensation Task) یک وظیفه خاصی است که زمانی که در مدلسازی فرآیند نیاز به خنثی کردن یک گام از فرآیند باشد، از این وظیفه استفاده می شود. در بعضی مواقع هنگام خنثی سازی نیاز به ثبت کارهای بازگشت خورده است، پس ما نیازمند یک گام جدا درون فرآیند هستیم. گاهی این فرآیند خنثی سازی پیچیده تر و فراتر از یک گام می شود که از زیر فرآیند جبران استفاده می شود.
در ادامه ی مثالهای ارائه شده در ز مینه عناصر BPMN، به مثالی جامع در زمینه تراکنش و تمام موارد مربوط به آن خواهیم پرداخت.
فرآیند درخواست مسافرت در یک سازمان را درنظر بگیرید. کارمند درخواست سفر را ثبت می کند، پس از آن کارهای مربوط به رزرو بلیط هواپیما، رزرو هتل، رزرو اتومبیل انجام می شود و سپس اطلاعات مربوط به رزرواسیون به کارمند اطلاع داده می شود.
این فرآیند به صورت زیر پیاده سازی می شود.
اگر به صورت دقیق تری به این فرآیند توجه شود، موارد دیگری هم میتوان در تحلیل و پیاده سازی این فرآیند لحاظ کرد. مثلا موردی را درنظر بگیرید که رزرو هتل و اتومبیل با موفقیت به پایان رسیده است، ولی در روز تعیین شده بلیط هواپیما موجود نباشد و رزرو بلیط هواپیما به صورت موفقیت آمیز به انتها نمی رسد. پس باید رزرو هتل و اتومبیل هم لغو شود. برای پشتیبانی از این مورد نیاز به استفاده نمادهای تراکنش و رویداد جبران و وظیفه جبران و رویداد کنسل هستیم.
زیر فرآیند رزرواسیون را اگر ساده در نظر بگیریم به صورت ۱ در می آید.
حال اگر به صورت دقیقتری به این فرآیند توجه شود، موارد دیگری هم میتوان در تحلیل و پیاده سازی این فرآیند لحاظ کرد. در صورت موفقیت آمیز نبودن هر یک از رزروها (اتومبیل، بلیط هواپیما، هتل) باید رزروهای دیگر لغو شود . برای پشتیبانی از این حالت ، نماد SubProcess در فرآیند اصلی باید تبدیل به تراکنش شود و فرآیند رزرواسیون باید به شکل ۲ عوض شود. در این شکل ما از یک رویداد غرامت متصل به وظیفه ، بر روی هریک از فعالیت های مربوط به رزرو استفاده میکنیم . پس از اجرای (Trigger شدن) هر یک از این رویدادها، جریان استثنا دنبال می شود. که در این مثال، فعالیتی هایی است که باید برای برگرداندن وضعیت به حالت قبلی و جبران کارهای انجام شده و با دخالت انسان انجام می شود.
برای مثال اگر رزرو هتل و ماشین انجام شده باشد، ولی رزرو هواپیما انجام نشده باشد، رویداد کنسل اجرا می شود، که باعث می شود رویدادهای غرامت رزرو هتل و ماشین (متصل به کارهایی که به صورت کامل انجام شده اند) رخ دهد و جریان بعد از آن فعال می شود که فعالیت های لغو رزرو هتل و ماشین باید توسط واحد اداری انجام شود. این فعالیتها از نوع غرامت هستند یعنی جز جریان معمول فرآیند نیستند.
رزرواسیون را درنظر بگیرید، اگر تراکنش رزرواسیون موفقیت آمیز بود، نیاز است به شخص اطلاعات رزرو ارسال شود، ولی اگر این عملیات موفقیت آمیز نبود به کاربر در مورد عدم موفقیت رزرواسیون اطلاع رسانی شود. این قسمت از فرآیند باید خارج از تراکنش و در فرآیند اصلی مدلسازی شود ولی برای تشخیص موفقیت آمیز بودن یا نبودن تراکنش میتوان از نماد رویداد میانی کنسل بر روی تراکنش (Intermediate catching cancel Boundary Event) استفاده کنید. که اگر تراکنش با رویداد کنسل به اتمام رسید این رویداد، فعال می شود و مسیر بعد از آن (وظیفه اطلاع رسانی در مورد عدم موفقیت رزرواسیون) ادامه می یابد و مسیر معمول بعد از تراکنش اجرامی شود.
موردی را در نظر بگیرید که در زیر فرآیند رزرواسیون، وظیفه رزرو بلیط هواپیما با استفاده از یک سرویس انجام می شود، پس از نماد Service Task برای آن استفاده می کنیم. در این صورت فرض کنید که خطایی غیرقابل پیش بینی و غیر منتظره ای در این وظیفه رخ داده است (همانند خطای اتصال و ..) ترجیح می دهیم، در فرآیند اصلی وظیفه ای تحت عنوان “اطلاع رسانی و انجام اقدامات موردنیاز برای رفع خطای سرویس” انجام شود.
برای مدلسازی این روند، باید از رویداد دریافت خطای میانی متصل بر روی زیر فرآیند (Intermediate Catching Error Boundry Event ) استفاده شود. با استفاده از این رویداد اگر خطایی در زیرفرآیند رزرواسیون رخ دهد، مسیر بعد از رویداد خطا (وظیفه “اطلاع رسانی و انجام اقدامات موردنیاز برای رفع خطای سرویس”)در فرآیند اصلی اجرا می شود
۱-۳-۲- Multiple Instance Task
در مدلسازی فرآیند از عنصر Multiple Instance Task ، زمانی استفاده می شود که نیاز باشد یک وظیفه خاص در چندین نمونه و کاملا مستقل اجرا شود. توجه داشته باشید قبل از اجرای این وظیفه ما از تعداد نمونه هایی که از این وظیفه باید ایجاد شود، مطلع هستیم.
۱-۳-۲-۱- Multi Instance Parallel
در صورتی که بخواهیم تعداد مشخصی از وظایف به صورت مستقل و همزمان با هم شروع شوند، از این نماد استفاده می کنیم.
۱-۳-۲-۲- Multi Instance Sequential
اگر بخواهیم یک فعالیت به تعداد مشخص و به صورت سری اجرا شود از این نماد استفاده می کنیم.
به عنوان مثال فرآیند ایجاد یک داکیومنت را در نظر بگیرید در این فرآیند ابتدا نسخه اولیه از داکیومنت موردنظر، تهیه می شود و این داکیومنت نیاز دارد که به بررسی و تایید چندین داور برسد. این بررسی و تایید میتواند به صورت موازی انجام شود و نظرات داوران از یکدیگر مستقل هستند. برای مدلسازی چنین وضعیتی، نیازمند استفاده از Multiple Instance Task هستیم که باعث می شود زمانی که روند فرآیند به این نقطه برسد به ازای هر داور یک وظیفه مستقل از دومین وظیفه (بررسی داکیومنت) ایجاد شود و سپس میتوان پس از دریافت نظرات تمام داوران یک داکیومنت نهایی تدوین کرد.
تفاوت Loop و Multi Instance
هدف یک زیرفرآیند Multi-instance تکرار مجموعه ای از فعالیت ها (به صورت موازی و یا سری ) به تعداد مشخص است ولی در Loop بعد از اجرای هر چرخه فعالیت، باید شرط تکرار حلقه بررسی شود اگر شرط صحیح بود چرخه باز هم تکرار می شود.
۱-۳-۳- Sub-Process
زیر فرآیند (Sub Process ) فعالیتی است که خود شامل فعالیتهای دیگر است و در آنها از Sub Process، Task ، Event، Gateway و … استفاده میشود. آنها می توانند به صورتی مجزا تعریف شده که امکان فراخوانی در فرآیندهای دیگر نیز باشد و یا کامل درون یک فرآیند برای ایجاد سادگی و سهولت در درک فرآیند مدل شود.
استفاده از Sub processها در فرآیند,، علاوه بر نمایش جزئیات Sub process در یک نمودار فرآیند جداگانه، باعث سهولت توسعه مدل فرآیندی می شود، که با کلیک بر روی + می توانید جزئیات را مشاهده کنید و این عملکرد شما را قادر می سازد تا علاوه بر توسعه مدل، بتوانید تغییرات توسعه داده شده را مستقیما در مدل نمایش دهید و یا آنها را مخفی نمایید.
۱-۳-۳-۱- Parallel Sub-Process
نشانگر Multi Instance نشان دهنده یک زیر فرآیند است که چندین بار (که تعداد آن مشخص شده است) تکرار می شود.
در حالت موازی(Parallel) نمونه های زیر فرآیند به صورت هم زمان شروع می شوند.
۱-۳-۳-۲- Sequential Sub-Process
نشانگر Multi Instance نشان دهنده یک زیر فرآیند است که چندین بار (که تعداد آن مشخص شده است) تکرار می شود.
در حالت سری نمونه های فرایند (instance) پشت سرهم و بعد از تمام شدن یک نمونه، نمونه ای دیگر آغاز می شود.
۱-۳-۳-۳- Loop Sub-Process
نشانگر حلقه همراه با Sub process نشان دهنده زیر فرآیندی است که تا زمانی که شرط تعریف شده برای حلقه صحیح باشد، کل زیر فرآیند دوباره تکرار می شود. توجه داشته باشید که در هر بار تکرار وضعیت شرط بررسی و ارزیابی می گردد، (در انتها یا ابتدای هر تکرار). نشانگر حلقه می تواند به صورت ترکیبی با نشانگرهای ad-hoc و compensation استفاده شود.
۱-۳-۳-۴- Ad-Hoc Sub-Process
یک زیر فرآیند از نوع Adhoc گروهی از وظایف است که هدف آن تکمیل قسمتی از فرآیند است. الزامی برای اجرا فعالیت های درون یک زیر فرآیند Adhoc وجود ندارد و تعداد اجرا و توالی آن مشخص نیست و توسط انجام دهندگان رقم خواهد خورد. در هر وظیفه شخص انجام دهنده تصمیم می گیرد که کار را چگونه انجام دهد و در چه زمانی انجام دهد.
این نماد برای مدل سازی فرآیندی که اطلاعات دقیقی از آن نداریم و یا انجام دهندگان به نحو دلخواه وظایف مربوط به تکمیل فرآیند را انجام می دهند مفید است و می توان در جهت استانداردسازی فرآیندها در قدم های بعدی از آن کمک گرفت.
۱-۳-۳-۵- Compensation Sub-Process
یک زیر فرآیند جبران (Compensation Sub process) دنباله ای از فعالیت ها است که برای خنثی سازی نتایج فعالیتی ( Activity) که انجام شده است ولی به دلایلی باید تمام اثرات ایجاد شده و نتایج آن به حالت قبل از اجرای آن فعالیت برگردانده شود، اجرا می شود.
۱-۳-۴- Event Sub-Process
ماژول Event Sub process درون یک فرآیند و یا Sub process دیگر قرار می گیرد و هیچ ورودی و خروجی ( Sequence Flow) به/از آن وارد/خارج نمی شود، به شرط اینکه فرآیندی که Event Sub Process درون آن قرار گرفته است درحال اجرا باشد، یک رویداد شروع، یک Event Sub process را می تواند به راه اندازی کند..
این ماژول دارای دو نوع است:
۱- همراه با وقفه (Interrupting): که با خط ممتد نمایش داده می شوند و با شروع آن تمام فعالیتهای فرآیند اصلیterminate می شود.
۲- بدون وقفه(Non-Interrupting): که با خط چین نمایش داده می شوند که به طور همزمان با فرآیند اصلی اجرا خواهد شد.
انواع رویداد هایی که می توانند Event Sub process های Interrupting و Non-Interrupting را راه بیندازند عبارتند از:
- پیام (Message)
- زمان (Timer)
- تشدید (Escalation)
- شرط (Conditional)
- سیگنال (Signal)
- چند گانه(Multiple)
- چند گانه موازی (Multiple parallel)
و دو نوع دیگر از این رویدادها وجود دارد که تنها برای Interrupting وجود دارد:
- خطا (error)
- جبران (Compensation)
۱-۳-۵- Call Activity
استاندارد BPMN2 بین Call Activity و Sub Process تمایز قائل شده است. از نقطه نظر مفهومی ، زمانی که یک فرآیند به هر دوی این نمادها می رسد، یک زیر فرآیند اجرا می شود ، ولی تفاوت در اینجا است که Call Activity یک فرآیند خارج از فرآیند جاری است، در حالی که Sub Process ها به صورت تعبیه شده در زیر فرآیند (Embedded Sub process) وجود دارد. این تفاوت بیشتر در مدل سازی BPMS ها معنا پیدا می کند.
۱-۳-۶- Transaction
نوعی از زیر فرآیند است که تضمین می کند یا اجرای گروهی از فعالیت ها موفق اجرا شود و یا در صورتی که یکی از آن ها ناموفق اجرا شود، همه فعالیت های آن به وضعیت قبلی بازگردانده شود، گویی که هیچ کدام اجرا نشده اند .
برای مثال فرآیند انتقال وجه از یک حساب به حساب دیگر را در نظر بگیرید، که در آن دو فعالیت وجود دارد کم کردن از حساب شما و واریز به حساب طرف مقابل. فرض کنید در واریز به حساب طرف مقابل خطایی رخ دهد، پس باید کم کردن از حساب شما هم کنسل شود و گرنه پول از حساب شما کم شده ولی به حساب طرف مقابل واریز نمی شود.
۱-۴- Gateway
از این عنصر برای کنترل چگونگی تعامل جریان های توالی استفاده می شود. این عناصر به کار گرفته می شود تا جریان فرآیند را از طریق تصمیم گیری تعیین کند. به واقع اگر جریان نیازی به کنترل نداشته باشد، دیگر نیازی به دروازه نیست. اصطلاح “دروازه” نشان دهنده یک گلوگاه است که ممکن است اجازه عبور را بدهد یا مانع از عبور گردد؛ زمانی که جریان های توالی به دروازه می رسند، می توانند بر اساس مکانیزمی که دروازه به آن استناد نموده است، برای گذر از یک دروازه ورودی در کنار هم قرار بگیرند (همگرا) و یا برای عبور از یک دروازه خروجی به چند بخش تقسیم شوند(واگرا).
دروازه ها( Gateway) به صورت لوزی نمایش داده می شود و با توجه به نوع رفتار دروازه، درون لوزی نماد خاصی قرار میگیرد.
۱-۴-۱- Exclusive Gateway
دروازه انحصاری که دروازه XOR نیز نامیده می شود و یا از نظر فنی در اکثر موارد، دروازه مبتنی بر داده های منحصر به فرد نام گذاری شده است.
زمانی که از این دروازه در یک فرآیند استفاده می شود، حداقل یک شرط می بایست بررسی گردد، به عبارتی “شرط اول” چک می شود؛ چنانچه برقرار بود مسیر ۱ انتخاب می شود و شرط های دیگر چک نخواهند شد، در صورت برقرار نبودن شرط اول، به سراغ چک نمودن “شرط دوم” می رود و به همین ترتیب روال تا “شرط آخر” ادامه پیدا می کند و اگر شرط آخر هم برقرار نبود آن گاه به سراغ مسیر “پیش فرض می رود”، بنابراین تحت هر شرایطی “فقط و فقط” یک مسیر برای ادامه فرآیند انتخاب خواهد شد.
یک دروازه انحصاری همگرا هر توکنی که به آن میرسد را بدون هماهنگ سازی( without synchronization) عبور می دهد. به صورت ذاتی این دروازه اغلب بعد از یک دروازه واگرای انحصاری استفاده می شود که در آن فقط یکی از مسیرهای بعد از دروازه واگرا قابل اجرا است.
۱-۴-۲- Parallel Gateway
دروازه موازی که به آن دروازه “هم زمانی” نیز گفته می شود، ساده ترین نوع از دروازه های BPMN به شمار می رود که امکان ایجاد همزمان چندین انشعاب در یک فرآیند را ممکن می سازد.
زمانی که در یک فرآیند از دروازه موازی واگرا استفاده شده باشد، کار در تمامی مسیر هایی که از دروازه موازی خارج شده اند، به صورت همزمان اجرا خواهد شد. به عنوان مثال در شکل زمانی که وظیفه ۱ انجام شود هر سه وظیفه ۲و۳و۴ همزمان اجرا میشود.
و زمانی که از دروازه همگرا موازی در یک فرآیند استفاده شود، باید تمام کارهایی که به دروازه وارد شده اند کامل شود تا مسیر بعد از دروازه در فرآیند ادامه یابد. به عنوان مثال وظیفه ۵ در صورتی اجرا خواهد شد که وظایف ۲و ۳و ۴ همگی کامل شده باشند.
۱-۴-۳- Inclusive Gateway
دروازه جامع ترکیبی خاص از دروازه های انحصاری و موازی است
همانند دروازه انحصاری می توان بر روی تمامی شروط درگاه ها نظارت داشت و همانند دروازه موازی می توان بیش از یک مسیر را طی کند؛ یعنی زمانی که در یک فرآیند قرار می گیرد، تمامی شرط های درگاه ها را چک می کند و بر اساس برقراری شروط می تواند یک و یا بیش از یک مسیر را انتخاب نماید و اگر هیچ یک از شرط ها برقرار نبود، مسیر پیش فرض برای ادامه در نظر گرفته می شود.
یک دروازه جامع همگرا، منتظر رسیدن همه توکن ها برای ادغام و همگام سازی جریان می ماند. زمانی که از یک دروازه جامع همگرا استفاده می شود نیاز است باید قبل از آن، در جریان فرآیند از یک دروازه واگرا وابسته نیز استفاده کنیم که مسیرهای فعال موجود را شناسایی کند.
به عنوان مثال در شکل زیر شرط Condition1 بررسی می شود اگر صحیح بود Task2 اجرا می شود . همچنین شرط Condition2 بررسی می شود اگر صحیح بود Task3 اجرا می شود اگر هیچ کدام از شروط صحیح نبود مسیر پیش فرض که به Task3 منتهی می شود اجرا می شود.
۱-۴-۴- Event-Base Gateway
دروازه مبتنی بر رویداد رفتاری همانند دروازه انحصاری (Exclusive) دارد، با این تفاوت که به جای قرارگیری شروط بر روی مسیرها ، از رویدادهای مختلف استفاده می شود و منتظر فراخوانی یکی از این رویدادها برای طی شدن مسیر مناسب می ماند و اولین رویدادی فراخوانی شده ، تنها مسیر انتخابی این دروازه است و مسیرهای دیگر طی نمی شوند.
در استفاده از دروازه مبتنی بر رویداد باید به نکات زیر توجه داشت:
- یک دروازه مبتنی بر رویداد باید دو و یا بیش از دو جریان خروجی داشته باشد.
- یک دروازه مبتنی بر رویداد می تواند فقط به اجزایی از نوع Intermediate Catch Event و یا وظیفه از نوع دریافت پیام متصل شده باشد.
- یک Intermediate Catch Event متصل شده به یک دروازه مبتنی بر فرآیند باید یک جریان تک رشته ای ورودی داشته باشد.
به طور مثال در شکل، بعد از رسیدن به دروازه مبتنی بر رویداد، فرآیند منتظر فراخوانی یکی از رویدادها می شود، اگر قبل از سر رسید رویداد زمان ، پیام یا سیگنال مربوطه دریافت شود مسیر اول یا دوم ادامه پیدا می کند و در غیر اینصورت مسیر سوم پس از گذشت ۳روز ادامه می یابد.
۱-۴-۵- Event-Base Gateway To Start a Process
نوع خاصی از دروازه ها وجود دارد که می تواند شروع کننده یک فرآیند باشد. هنگامی که اولین Event متصل به دروازه رخ بدهد یک instance از فرآیند ساخته می شود و مسیر بعد از آن رویداد فراخوانی شده، اجرا می شود.
در اینجا دو نوع Start Event Gateway وجود دارد:
در نوع انحصاری ( Exclusive) بقیه ی رویدادهای متصل بهStart Event Gateway ، به محض فراخوانی، یکی از رویدادها غیرفعال می شود و در آن Instance دیگر اجرا نخواهد شد.
ولی در نوع موازی (Parallel) رویدادهای دیگر درون Instance ایجاد شده، فعال باقی می مانند و تا اتمام فرآیند، رویدادهای متصل دیگر نیز قابلیت فراخوانی و اجرای مسیر بعد از آنها وجود دارد.
توجه داشته باشید در نوع موازی، Start Event Gatewayمنتظر رسیدن همه رویدادها نمی ماند بلکه با فراخوانی یکی از رویدادها، یک Instance ساخته می شود و این نماد هیچگونه همگام سازی بر روی رویدادها انجام نمی دهد.
نماد Parallel Start Event Gateway از لوزی که نشان دهنده دروازه و یک دایره که نشان دهنده رویداد آغازین و یک علامت + به معنای موازی بودن تشکیل شده است
نماد Exclusive Start Event Gateway از لوزی که نشان دهنده دروازه و یک دایره که نشان دهنده رویداد آغازین و یک علامت ۵ضلعی تشکیل شده است.
۱-۴-۶- Complex Gateway
این دروازه همانطور که از نامش پیداست وظیفه پیچیده تری را برعهده دارد و کاربرد اصلی آن در حالت ترکیبی است (برای دروازه های قبلی حالت تفکیکی بررسی شد). این دروازه در حالت ترکیبی یعنی وقتی که مسیر هایی به آن منتهی می شود براساس شروطی که برای آن تعیین می شود مشخص می کند که چه فعالیتهایی باهم اجازه خروج را دارند.
۱-۴-۷- Parallel Event-Base Gateway
این دروازه ها می توانند یک نمونه جدید را در فرایند شروع کنند.
۲- اشیاء ارتباط دهنده (Connecting Objects)
اشیاء ارتباط دهنده برای پیوند دادن Flow Object ها یا اشیاء جریان در یک BPD بکار میروند تا ساختار شماتیک فرآیند کسب و کار را نمایش دهند. سه نوع شئ پیونددهنده عبارتند از (Sequence Flow)جریان توالی،) Message Flow (جریان پیغام و (Association)پیوند که در جدول بعدی تشریح شدهاند.
برای مدلسازانی که بهدنبال مدلهایی با سطح دقت پایین (به منظور اهداف مستندسازی یا برقراری ارتباط) میباشند دو گروه عناصر ذکر شده در بالا، یعنی اشیاء جریان و اشیاء ارتباط دهنده، کفایت میکند. لیکن در شرایطی که دقت بیشتری مورد نیاز است تا مدلها مورد تجزیه و تحلیل قرار گیرند و یا قرار است که آنها با نرم افزار) BPMS سیستم مدیریت فرآیند کسب و کار) مدیریت شوند، جزئیات اضافی میتواند به این عناصر اضافه شود. با استفاد از برخی علائم و نشانهها که در داخل این عناصر به نمایش در میآید امکان انتقال اطلاعات بیشتر فراهم میآید. بعنوان نمونه در داخل یک رخداد میتوان از نشانههای پیغام، تایمر، قانون و … استفاده نمود تا وضعیت مربوطه را نشان داد.
۲-۱- Sequence Flow
از این عنصر برای اتصال اجزای جریان فرآیند به یکدیگر و نمایش ترتیب اجرای فرآیند استفاده می شود و نشان دهنده جریان اطلاعات در فرآیند می باشد.
دقت کنید که از واژه Control Flow در BPMN استفاده نمی شود.
۲-۲- Default Sequence Flow
جهت نمایش مسیر پیش فرض فرآیند از این نماد استفاده می کنیم.
مسیر پیش فرض بعد از دروازه انحصاری و جامع قرار می گیرد و اگر مسیرهای شرطی دیگر صحیح نبودند ،مسیر فرآیند از مسیر پیش فرض ادامه پیدا خواهد کرد.
۲-۳- Conditional Sequence Flow
این عنصر نیز برای نمایش مسیر فرآیند استفاده می شود، با این تفاوت که ادامه مسیر وابسته به شرط است و در صورت صحیح بودن شرط، مسیر ادامه پیدا می کند.
۲-۴- Message Flow
از این عنصر عموما برای نمایش جریان یک پیام، بین دو participantsکه قادر به ارسال و یا دریافت پیام هستند، استفاده می شود.
در BPMN دو Pool جدا در یک دیاگرام Collaboration نشان دهنده دو موجودیت هستند.
۲-۵- Association
یک خط نقطه چین که برای اتصال Artifact و Text ها به سایر نمادهای BPMN استفاده می شود.
Association دارای دو نوع است: جهت دار و بدون جهت.
در جهت دار اگر فلش به سمت Artifact باشد به معنای نشان دادن نتیجه است، و اگر از Artifact فلش خارج شده است به معنای یک ورودی است، و اگر دوطرفه باشد به معنای خواندن و آپدیت کردن اطلاعات است.
از نوع بدون جهت برای اتصال یک Artifact یا Text به یک جریان پیام sequence or message flow استفاده می شود.
۳- خطوط شناوری یا مسیرهای جریان(Swim lanes)
بسياري از متدولوژيهاي مدلسازي موجود از مفهوم Swim lanes براي سازماندهي فعاليتها در گروهها استفاده ميکنند. اين نشان گرافيکي براي جداکردن مسئوليتها يا تواناييهاي کارکردي مختلف مورد استفاده قرار ميگيرد. در يک BPD خطوط شناوري به دو صورت مختلف قابل ارائه هستند: Pool و Lane (خط سير).
۳-۱- Pool
یک Pool ، عنصری اصلی در BPMN است که مرزهای یک فرآیند کسب وکار را مشخص می کند. یک Pool شامل حداکثر یک فرآیند خواهد بود و این بدین معنی است که دو فرآیند مجزا بایستی در دو Pool مختلف مدلسازی شوند. یک Pool ممکن است جزئیات داخلی قابل مشاهده ای را به صورت فرآیندی که اجرا خواهد شد، داشته باشد (به آن یک White-box Pool گفته می شود) و یا می تواند جزئیات داخلی قابل مشاهده ای را شامل نگردد (به آن یک Black-box Pool گفته می شود). نوع Pool ی که مورد استفاده قرار می گیرد، بستگی به سطح جزئیات مورد نیاز و محتوای خاص دارد.
یک Pool نشان دهنده شرکت کنندگان درون یک فرآیند کسب و کار است. Poolها می توانند در فرآیندها موراد مختلفی را نشان دهند یا به عنوان افراد انجام دهنده فرایند (همانند تا مین کننده و تولیدکننده و یا خریدار) و یا به صورت کلی تر برای مدلسازی یک کسب و کار منفرد بدون وابستگی خارجی (همانند یک سازمان یا شرکت خاص) استفاده بشوند.
مثال:
تا اینجا نحوه استفاده از Lane و چگونگی تخصیص وظایف و زیرفرآیندهای مختلف به مشارکت کنندگان توضیح داده شد. در BPMN همیشه، Lane ها درون یک Pool قرار می گیرند و یک Pool نشان دهنده سطح بالاتر و جامع تری در مقایسه با Lane می باشد چرا که هر Pool از چند Lane تشکیل شده است. در واقع Pool با توجه به ارتباط وظایف با هم، هر وظیفه را به Lane مناسب تخصیص داده و از این طریق فرآیند را کنترل می نماید.
دقیقا Pool شبیه یک استخر است Lane شبیه خطوطی است که شناگران در آن شنا می کنند.
در نمودار زیر مشاهده می شود به محض اینکه وظیفه ۱ توسط رابرت تکمیل می شود، وظیفه ۲ در Lane فالکو شروع می شود. همانطور که در نمودار مشاهده می شود، وظایف هر بخش به صورت جداگانه در هر Lane تکمیل شده و درنهایت همه این وظایف منجر به انجام کل فعالیت در Pool فرآیند ارتباطی می شود.
در مثال قبلی برای تشریح Pool، وظایف هر بخش، به صورت جداگانه در هر Lane تکمیل شده و درنهایت اجرای همه این وظایف، منجر به انجام کل فعالیت در Pool فرآیند ارتباطی می شود. بسیاری از مدلسازان با تجربه، با این طرز تفکر مشکل دارند. آنها ترجیح می دهند تا مجموعه فرآیند در مثال قبلی را به شکل زیر مدل نمایند، با این فرض که هیچ ارتباط دهنده ای در بین بخشهای مختلف شرکت وجود ندارد و بخش های مختلف به ناچار بایستی هماهنگی و همکاری بین بخشها را خود ایجاد نمایند.
در BPMN به هر Participant یک Pool اختصاص داده می شود و برای تعریف همکاری و هماهنگی بین بخشهای مختلف یک Pool نیازی به انجام کار خاصی نیست و به خودی خود این همکاری و یا انتقال وظایف درون یک Pool با تعریف Connector ها ایجاد می شود، ولی برای ایجاد ارتباط بین Pool ها از ارسال Message استفاده می شود.
۳-۲- Lane
یک Lane یک زیر بخش در Pool است و برای سازماندهی و گروه بندی فعالیت های یک فرآیند استفاده می شود. عمومأ، یک Lane یک نقش سازمانی را نمایش می دهد (به عنوان مثال توسعه دهنده، تحلیل گر و مدیر)، همچنین Lane ها ممکن است برای اهداف دیگری نیز مورد استفاده قرار گیرند (به عنوان مثال فاز اول، فاز دوم و فاز سوم)
مثال:
در BPMN توضیح اینکه چه کسی مسئول انجام هر کار است را Lane ها بر عهده دارند.
در نمودار زیر نشان می دهد که وظایف در فرآیند نمونه ما به افرادی خاص، اختصاص داده شده است. با توجه به نمودار می توان نتیجه گرفت که روال کاری فرآیند به شرح زیر می باشد.
اگر کریستین گرسنه باشد، یک غذا انتخاب میکند. با توجه به آنکه انتخاب کریستین چه چیزی بوده است دو حالت پیش می آید:
در حالت اول کریستین ماکارونی میپزد و در حالت دوم کریستین میتواند از همکارانش کمک بگیرد که در این حالت فالکو وظیفه پختن استیک و رابرت وظیفه آماده کردن سالاد را بر عهده دارد.
در پایان کریستین غذار را سرو می کند در این مثال ۳ lane با نامهای کریستین و فالکو و رابرت در قالب یک Pool واحد تحت عنوان فرآیند رفع گرسنگی قرار گرفته اند.
در اینجا سوالی پیش می آید آیا بایستی به هر Lane یک نفر را نسبت داد؟؟؟
در مثال ذکر شده، Lane به افراد نسبت داده شد اما در BPMN این موضوع کلیت ندارد و شما می توانید Lane ها را تحت عناوین مختلف طراحی نموده و نسبت دهید. در عمل Lane ها اغلب برای تخصیص عناوین زیر نسبت داده می شوند:
- پوزیشنهای شغلی در سازمانها نظیر حسابداری
- نقشهای سازمانی در سازمانها همانند افسر حفاظت اطلاعات
- نقشهای کلی مانند مشتری
- بخشها همانند بخش فروش
- برنامه های فناوری اطلاعات همانند سیستمCRM
۴- مصنوعات(Artifacts)
در مدل سازی فرآیند از مصنوعات(Artifact )برای ارائه اطلاعات بیشتر در مورد نحوه انجام فرآیند استفاده می شود.
انواع مختلفی از مصنوعات مختلف در مدل سازی فرآیند کسب و کار وجود دارد. مصنوعات اجازه می دهد که شما به صورت تصویری خروجی و یا ورودی یک فرآیند واقعی را ارائه کنید. همچنین مصنوعات میتوانند نشان دهنده داده و یا یادداشت باشند که جزئیات فرآیند را ارائه می کنند.
. نسخه فعلي BPMN سه نوع از مصنوعات را از پيش تعريف نموده است که شامل:
- اشیا داده(data objects)
- حاشیه نویسی ها (annotations)
- گروه (groups)
مدلسازان ميتوانند انواع مصنوعات را براي انتقال جزئيات بيشتر در مورد نحوهي انجام فرآيند (غالباً براي نمايش ورودي و خروجي فعاليتها) ايجاد کنند؛ با اين وجود ساختار ابتدايي فرآيند در نمودار (به همان صورتي که با Activity ها، Gatewayها، و Sequence Flow ها تعريف شده است) تغييري نخواهد کرد.
شکل زیر مثال خوبی برای نمایش کاربرد مصنوعات است:
۴-۱- Data Object
برای نمایش چگونگی درخواست یا تولید شدن داده ها و اطلاعات توسط فعالیت ها بکار می رود و با Association به فعالیت ها پیوند داده می شود.
۴-۲- Data Input
وظایف، اغلب به داده هایی وابسته هستند. داده های ورودی(Input Data Object) نشان دهنده داده هایی است که در فرآیند کسب و کار به آن نیاز داریم.
۴-۳- Data Output
اگر یک فرآیند داده ای تولید کند، یک داده خروجی (data output) در نمودار گردش کار، ارائه دهنده اطلاعات تولید شده به عنوان نتیجه است.
۴-۴- Collection Data Object
به صورت عمومی ،علامت ||| در استاندارBPMN نشان دهنده تعدد(multiplicity )است. به عنوان مثال این علامت در Data Objectها می تواند به معنای چندین داکیومنت یا مجموعه ای از داده ها باشد. در دنیای کامپیوتر ، مجموعه ای از داده ها در آرایه نماد سازی می شود.
۴-۵- Data Store
یک data store ارتباط فرآیند را با پایگاه داده نشان می دهد و مکانیزمی برای فعالیت ها ارائه می دهد که اطلاعات ذخیره شده در حوزه فرآیند را بازیابی و آپدیت می کند. این اشیا می تواند برای نشان دادن ارتباط بین دو فرآیند استفاده شوند.
۴-۶- Group
با استفاده از نماد گروه (Groups )می توان وظایف و یا اجزای فرآیند را برای درک و فهم ساده تر، گروه بندی کرد.
۴-۷- Text Annotation
از عنصرText Annotation برای ارائه جزئیات بیشتر و تکمیلی درمورد فرآیند استفاده می شود. این عنصر هیچگونه تاثیری در جریان روند فرآیند به صورت عملی ندارد.
۴-۸- Message
یک پیام برای نشان دادن محتویات بین دو ارتباط استفاده می شود.