我有一个关于 Activiti/Camunda 中用户任务的计时器边界事件的特殊问题:
启动流程时,我使用流程变量设置计时器持续时间,并使用边界定义中的表达式来解析该变量。边界事件是在用户任务上定义的。
<bpmn2:timerEventDefinition id="_TimerEventDefinition_11">
<bpmn2:timeDuration xsi:type="bpmn2:tFormalExpression">${hurry}</bpmn2:timeDuration>
</bpmn2:timerEventDefinition>
在某些情况下,当计时器已经运行时,可能会出现截止日期 (dueDate) 应延长的情况,因为受让人请求更多时间。为此,我想更改定义截止日期的流程变量的值。
碰巧的是,该变量已在流程启动时解析并设置为边界事件。
变量的任何进一步更改都不会影响边界计时器的 dueDate,因为它存储在数据库中,并且当变量值更改时不会更新。
我知道如何通过 Java API 更新作业元素的到期日期,但我想提供一种通用方法,例如通过更改变量的值来设置它。
延长截止时间的最常见用例是当边界计时器已经运行时。
有什么想法如何解决这个问题?
非常感谢任何提示。
干杯克里斯
经过一段时间的思考,我想出了这样的解决方法:
我从两个变量开始这个过程。 ”hurry“针对边界计时器进行评估。并且”延长期限“ 初始化为false
。如果计时器触发并且进程前进到独占网关,则评估“extendDeadline”的值。
如果用户更改了“的值延长期限" to true
在计时器运行期间,进程再次返回到用户任务,其中边界计时器设置为“hurry".
If the "延长期限“ 仍设置为false
,该过程可以继续进行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)