0 امتیاز
قبل در کامپیوتر و اینترنت توسط (6 امتیاز)
ویرایش شده قبل توسط
با سلام
من در activiti یک فرایند BPMN طراحی کرده ام. در آن یک UserTask دارم که به یک شخص تخصیص داده می شود. چطور میتونم اگر پس از گذشت زمان مثلا 3 روز اقدامی انجام نداد، پیام یادآوری برای او ارسال کنم و مجددا در صورتی که 5 روز اقدامی انجام نداد فرآیند را خاتمه دهم.

با تشکر از شما

1 پاسخ

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

باید نمودار به گونه‌ای طراحی شود که پس از رسیدن به مهلت اولیه، کار لغو شده و یک بار دیگر کار به کاربر assigne شود. در این بین می‌توان با فراخوانی سرویس کاربر را از مهلت اقدام با خبر کرد.

مراحل زیر باید انجام شود:

  • روی تسک، یک boundary timer event اضافه می‎کنیم که به یک gateway متصل است. یک یال خروجی از gateway به تسک برمی‎گردد و یک یال دیگر (با default flow condition) به یک End Event متصل است.
  • بر روی یال متصل‌کننده‌ی gateway به تسک (b)، با استفاده از یک Execution Listener از نوع اسکریپت، یک متغیر با نام task2DueDate و با مقدار P5D ایجاد می‎کنیم:
execution.setVariable('task2DueDate','P5D');
  • همچنین روی یال b یک شرط عبور (flow condition) باید قرار دهیم که تنها در صورتی که متغیر task2DueDate وجود نداشت، این یال انتخاب شود. به عبارت دیگر با توجه به نیازمندی، تنها یک بار باید این loop انجام شود:
${!execution.hasVariable('task2Duedate')}
  • ​با توجه به این که برای یال c گزینه‌ی مسیر پیش‌فرض (default flow) انتخاب شده است، در صورتی که شرط b برقرار نباشد، فرایند به اتمام می‌رسد.
  • مقدار عبارت زمانی (Time Duration) از boundary timer event (جنبه‌ی اجرایی) و مقدار فیلد due date از Task 2 (جنبه‌ی نمایشی) باید برابر با عبارت زیر شود. مقدار این عبارت، زمانی که متغیر task2DueDate وجود نداشته باشد، 3 روز است.
${execution.hasVariable('task2DueDate') ? task2DueDate: 'P3D'}

برای اطلاع‌رسانی کاربر:

  • یک Task Listener از نوع فراخوانی سرویس (Service Call) بر روی Task 2 قرار می‌دهیم و سرویس ارسال پیام به شهروند (که مستندات آن در ویکی موجود است) را فراخوانی می‌کنیم.
  • در این سرویس می‌توان متن پیام را به تفکیک کانال (اینترنتی، پیامک، ایمیل و تلگرام) با استفاده از متغیرهای پیش‌فرض و یا تعریف شده نوشت. برای مثال در متن پیام زیر از متغیرهای پیش‌فرض bpm_businesskey (شماره پیگیری) و bpm_dueDate (مهلت انجام کار) استفاده شده است:

كارفرماي محترم،
تيكت با شماره پيگيري {{bpm_businesskey}} براي اصلاح به شما ارسال شد. براي انجام اصلاحات تا {{bpm_dueDate}} فرصت داريد.

سوالات مشابه

+2 امتیاز
1 پاسخ 368 بازدید
سوال شده 6 سال قبل در کامپیوتر و اینترنت توسط nirvana (89 امتیاز)
0 امتیاز
1 پاسخ 271 بازدید
0 امتیاز
1 پاسخ 304 بازدید
+1 امتیاز
1 پاسخ 403 بازدید
0 امتیاز
1 پاسخ 216 بازدید
0 امتیاز
1 پاسخ 369 بازدید
+1 امتیاز
1 پاسخ 399 بازدید
+1 امتیاز
1 پاسخ 292 بازدید
...