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

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

با تشکر از شما
سوال 1 سال قبل در تالار کامپیوتر و اینترنت توسط m.heidari (6 امتیاز)
ویرایش 1 سال قبل توسط 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}} فرصت داريد.

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

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

+2 رأی
1 جواب میانگین بازدید روزانه 0.1566 بازدید
سوال 1 سال قبل در تالار کامپیوتر و اینترنت توسط nirvana (94 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.0731 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1149 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1776 بازدید
سوال 1 سال قبل در تالار برنامه نویسی توسط mmajlesi (5 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.145 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.2469 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1657 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1671 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1153 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1784 بازدید
سوال 1 سال قبل در تالار برنامه نویسی توسط nirvana (94 امتیاز)
کانال تلگرام جواب یاب
...