0 امتیاز
قبل در برنامه نویسی توسط (89 امتیاز)
درود و عرض احترام

در یک سناریو ما نیاز داریم که در صورتیکه کارهایی  به صورت موازی به دو نفر رسید و نفر اول کار مربوطه را انجام نداد ولی نفر دوم کار مربوط به خود را انجام داد و فرایند جلو رفت تا یک کار جدید برای نفر اول ایجاد شود با ایجاد کار جدید، کار قبلی تکمیل شود یا به نحوی از کارتابل ایشان خارج شود

ایا راهی برای این کار هست؟ با سرویس تسک میشود این کار را انجام داد ؟

 

باتشکر

1 پاسخ

0 امتیاز
قبل توسط (1.4هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

بهترین راه استفاده از signal event است.

در مثال زیر Task 3 و Task 5 به reza تخصیص پیدا می‌کند. می‌خواهیم با رسیدن کار به Task 5، کار Task 3 لغو شود (از کارتابل reza خارج شود):

قبل از Task 5 یک intermediate signal throwing event می‌گذاریم و روی Task 3 نیز یک boundary signal event قرار دهیم. این دو signal event را به هم متصل می‌کنیم؛ بنابراین قبل از رسیدن به Task 5، سیگنالی پرتاب می‌شود و Task 3 را لغو می‌کند.

تعریف و استفاده از signal event:

1- در صفحه خالی فرآیند کلیک کنید. از ویژگی‌های پایین signal definitions را انتخاب کنید.

2- یک سیگنال اضافه کنید که مقدار scope آن process instance باشد (چون در داخل یک فرآیند قرار است پرتاب و گرفته شود).

3- برای نگاشت دو signal event به هم (intermediate throwing و boundary) هر کدام را انتخاب کرده و از ویژگی‌هایشان، برای فیلد signal reference مقداری یکسان انتخاب کنید (همان مقداری که در مرحله 2 تعریف کردید).

نکته: signal event ماهیت broad cast دارد و می‌تواند چند دریافت‌کننده (catching) داشته باشد

قبل توسط (89 امتیاز)
درود وسپاس

سوالات مشابه

0 امتیاز
2 پاسخ 983 بازدید
+1 امتیاز
1 پاسخ 316 بازدید
+1 امتیاز
1 پاسخ 407 بازدید
+1 امتیاز
1 پاسخ 302 بازدید
+1 امتیاز
0 پاسخ 457 بازدید
+2 امتیاز
1 پاسخ 374 بازدید
سوال شده 6 سال قبل در کامپیوتر و اینترنت توسط nirvana (89 امتیاز)
0 امتیاز
1 پاسخ 1.1هزار بازدید
+2 امتیاز
1 پاسخ 739 بازدید
+1 امتیاز
1 پاسخ 331 بازدید
...