انواع رویداد میانی در بیزاجی (Intermediate)
رویدادهای میانی بین ابتدا و انتهای فرایند اتفاق میافتند. این رویدادها میتوانند هم از نوع Catching و هم از نوع Throwing باشند، رویدادهای میانی بر اساس کاربردی که دارند به 7 دسته تقسیم میشوند:
1) رویداد میانی ساده (None Event)
این رویداد از جنس ارسال و یا دریافت نمیباشد و بهمحض اینکه توکن فرایند به آن میرسد اتفاق میافتد، نکته مهم در این رویدادها این است که برای این رویداد میتوان فرم تعریف کرد، همچنین میتوان با کلیک راست بر روی این رویداد، آن را به یکی از رویدادهای زیر تبدیل نمود.
نکته: هرگاه رویداد None Event به هریک از رویدادهای فوق تبدیل شود دیگر تعریف فرم برای آن امکانپذیر نیست.
بعد از کلیک راست کردن بر روی این رویداد 5 حالت قابلمشاهده هست، از این پنج حالت سه رویداد بهصورت زوجی کار میکنند؛ یعنی هم گیرنده و هم فرستنده دارند و بهتنهایی عملکردی ندارند که عبارتاند از: رویدادهای میانی Message ، Signal و link
بعد از تبدیلشدن رویداد به هریک از این سه حالت با کلیک راست کردن دوباره روی آن، حالت Is throw را مشاهده میکنیم که پس از فعالنمودن آن، شکل رویداد به حالت توپر تبدیل میشود. وقتی جریان فرایند (توکن فرایند) به رویداد میرسد آن را به بخشی که زوج این رویداد قرار دارد ارسال میکند. زوج این رویداد یا همان حالت دریافتی (Catch ) بهصورت دایرهای توخالی نمایش داده می شود.
2) رویداد میانی پیام (Message Event)
به دو نوع ارسالی و دریافتی تقسیم میشود:
پیام ارسالی (Message Throw): فرایند در این نقطه یک پیام ارسال میکند یا به عبارتی دیگر وقتی که جریان فرایند به این رویداد میرسد، رویداد فعال و پیام را ارسال میکند و باقی فرایند ادامه مییابد.
پیام دریافتی (Message Catch): برای دریافت یک پیام منتظر میماند و جریان فرایند تا نرسیدن پیام، ادامه نمییابد.
نکته: پیامهای ارسالی و دریافتی باید دقیقاً یک نام داشته باشند و باید در فرایندهای مختلف باشند.
3) رویداد میانی سیگنال (Signal Event)
این رویداد نیز همانند رویداد پیام دو نوع ارسالی و دریافتی دارد (زوجی). در این رویداد یک سیگنال برای تمام گیرنده سیگنال (آغازین یا میانی) که ممکن است منتظر باشند ارسال میشود. تفاوت اصلی این رویداد با رویداد میانی پیام این است که رویداد پیام یک فرستنده و یک گیرنده دارد؛ ولی رویداد میانی سیگنال لزوماً یک گیرنده ندارد و تمام رویدادهای میانی دریافتی (Signsl Cstch) این سیگنال را دریافت میکنند.
رویداد سیگنال هم مانند رویداد پیام برای ارتباط بین فرایندهای مختلف بکار میرود.
نکته: گیرنده باید همان نام رویداد سیگنال ارسالی را داشته باشد.
4) رویداد میانی پیوند (Link Event)
این رویدادها مانند پرتابکننده هستند هنگامی که مدلسازی فرایند خیلی گسترده باشد از این رویداد استفاده میکنیم. شما میتوانید از دو link مرتبط به هم بهعنوان جایگزینی برای یک جریان توالی استفاده نمایید. در این رویداد هم مانند رویداد سیگنال پیوند ارسال و دریافت باید دقیقاً یک نام داشته باشند.
این رویداد تنها محدود به یک فرایند است و در همان فرایند استفاده میشود و برای یک رویداد پیوند ارسال فقط یک رویداد پیوند دریافت وجود دارد.
5) رویداد میانی تایمر (Timer Event)
این رویدادها از نوع دریافتی هستند، برای عملکرد درست نیاز است تنظیمات زمانبندی برنامه مربوطه فعال باشد که این کار را میتوان به سه روش انجام داد:
- مشخصکردن تاریخ و زمان خاص بهعنوانمثال 15 دسامبر 2022
- مشخصکردن یک محدوده زمانی تکرارشونده مانند هر پنجشنبه ساعت 10 صبح
- تعریف مدتزمان مانند یک هفته
بهعنوان نمونه میخواهیم بین دو فعالیت 1 و 2، 5 دقیقه فاصله داشته باشیم بین فعالیتها تایمر را قرارداده و روی 5 دقیقه تنظیم میکنیم:
اگر به پورتال کاری برویم جریان فرایند در تایمر منتظر اتمام زمان میماند.
6) رویداد میانی شرطی (Conditinal Event)
رویدادهای شرطی از نوع دریافتی هستند و بهمحض رسیدن توکن فعال میشوند؛ اما برای رفتن به مرحله بعد باید شرط موردنظر برآورده شود.
کلیه رویدادها جریان فرایند را بدون قید شرط (بهصورت صددرصد) عبور میدهند، ولی در رویداد شرطی تنها در صورت برآوردهشدن شرط اجازه عبور به مرحله بعد داده میشود.
در رویدادهای شرطی مانند فعالیتهای شرطی قسمت Define Experssionبرای تنظیم جریان فعال است.
7) رویدادهای میانی مرزی
رویدادهای مرزی همیشه از نوع دریافتی هستند. این رویدادها را میتوان به مرز فعالیتها چسباند که در هنگامی که جریان از آن فعالیت عبور میکند رویداد رخ دهد بهجای مسیر فعالیت، مسیر رویداد فعال شود و اگر مسیر رویداد رخ ندهد مسیر فعالیت ادامه خواهد یافت.
1) رویداد مرزی پیام (Boundary message event)
در شکل زیر اگر رویداد پیام مرزی فعال شود توکن به فعالیت D منتقل میشود و اگر رویداد فعال نشود به فعالیت C منتقل میشود.
2) رویداد مرزی تایمر (Boundary Timer event)
در شکل زیر اگر فعالیت A تا زمان تعیین شده در تایمر Boundary Timer event انجام نشود کار به فعالیت D منتقل میشود.
3) رویداد مرزی خطا (Boundary Error event)
در این حالت اگر در اجرای فعالیت A اشکالی رخ دهد کار توسط رویداد به فعالیت D منتقل میشود، مانند شکل زیر:
4) رویداد مرزی سیگنال (Boundary signal event)
در شکل زیر اگر در اجرای فعالیت A سیگنال دریافت گردد جریان فرایند توسط رویداد Boundary signal event به فعالیت C منتقل میشود.