شرط گذاری بر روی فعالیت در activiti برای ارسال پیام یاداوری

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

با تشکر از شما
سوال 9 ماه قبل در تالار کامپیوتر و اینترنت توسط m.heidari (6 امتیاز)
ویرایش 9 ماه قبل توسط seyyedjamalal

1 جواب

0 رأی
 
بهترین جواب

باید نمودار به گونه‌ای طراحی شود که پس از رسیدن به مهلت اولیه، کار لغو شده و یک بار دیگر کار به کاربر 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}} فرصت داريد.

جواب 9 ماه قبل توسط mofarn (1,342 امتیاز)
انتخاب شده در 9 ماه قبل توسط m.heidari

سوال های مشابه

+2 رأی
1 جواب میانگین بازدید روزانه 0.1750 بازدید
سوال 9 ماه قبل در تالار کامپیوتر و اینترنت توسط nirvana (72 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.0722 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1133 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1956 بازدید
سوال 9 ماه قبل در تالار برنامه نویسی توسط mmajlesi (5 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.1337 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.4351 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.237 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1851 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1339 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.2167 بازدید
سوال 10 ماه قبل در تالار برنامه نویسی توسط nirvana (72 امتیاز)
کانال تلگرام جواب یاب
...