شرط فعالسازی را میتوانیم با این سناریو تعریف کنیم:
-
در مسیرهای منتهی به User Task موردنظر که میخواهیم از آن مسیر History غیرفعال شود، متغیری تعریف و مقداردهی کنیم.
-
در شرط فعالسازی History از آن متغیر استفاده کرده و History را غیرفعال کنیم.
نکته: در صورتی که فرآیند تا به حال به User Task موردنظر نرسیده باشد، معیار History به صورت خودکار ignore میشود. بنابراین نیازی به درنظرگرفتن این حالت نیست.
مثال: فرض کنید میخواهیم در Task 1 از History استفاده کنیم. که وقتی از مسیر a به Task 1 میرسیم، History غیرفعال باشد وگرنه فعال باشد:
-
روی یال a یک Execution Listener از نوع Script برای ایجاد متغیر ignoreTask1History با مقدار true ایجاد میکنیم.
execution.setVariable('ignoreTask1History', true);
-
در فیلد Activation Condition از History در تخصیصِ کار Task 1، مقدار عبارت زیر را قرار میدهیم. دقت کنید: وجودنداشتن ignoreTask1History: فعالبودنِ History.
${!execution.hasVariable('ignoreTask1History') || !ignoreTask1History}
-
در Task 1 یک Task Listener از نوع Script برای false کردن مقدار متغیر ignoreTask1History اضافه میکنیم؛ این مرحله لازم است، زیرا میخواهیم از سایر مسیرها History فعال باشد. توجه: در تعریف Script، مقدار event باید برابر create باشد تا این مقداردهی با رسیدن به task بلافاصله انجام شود.
task.execution.setVariable('ignoreTask1History', false);