从activiti 5升级到6. BoundaryEvent停止工作

问题描述 投票:0回答:0

这里是 bpmn 文件中 boundaryEvent 的代码片段。它在 5.23.0 中运行良好,但在我们将引擎升级到 6.0.0 后,myTimerEventOnHoldTimerExecutionListener 永远不会被调用。将创建一个 ACT_RU_TIMER_JOB 并将在到期日移至 ACT_RU_JOB,我可以看到该作业已被 asyncJobExecutor 接收,但似乎没有执行任何操作。我注意到在 activiti6 中,当创建 boundaryEvent 时,将为 boundaryEvent onholdTimerEvent 创建一个新的执行(父 id 指向现有的子执行),而在 activiti5 中,现有的子执行将为 boundaryEvent 更新.我们为 boundaryEvent 设置的所有变量(在 myTimerEventOnHoldTaskListener 期间)都绑定到子执行,而不是新执行。计时器作业将链接到新的执行,而在 activiti5 中,计时器作业将链接到子执行。我想知道我们的代码是否因为引入了新的执行级别而被破坏了?我知道在 activiti 6 中,边界事件的处理程序已从转换计时器更改为触发计时器。我注意到 TiggerTimerEventJobHandler 从未被调用过。澄清一下,我说的是在 activiti6 中创建的新工作,而不是现有的 5.0 工作。我已经启用了 AsyncExecutor 并使用了 org.activiti.

中的 DefaultAsyncJobExecutor
<userTask id="myTimerEventOnHold" name="myTimerEvent On Hold" activiti:assignee="${myTimerEventWorkflowHandler.findAssignee()}">
    <extensionElements>
        <activiti:taskListener event="create" delegateExpression="${myTimerEventOnHoldTaskListener}" />
        <activiti:taskListener event="create" expression="${myTimerEventWorkflowHandler.doSomething(DOMAIN_IDENTIFIER, task.assignee)}" />              
    </extensionElements>
</userTask>
<boundaryEvent id="onholdTimerEvent" attachedToRef="myTimerEventOnHold">
    <timerEventDefinition>
        <timeDate>${myTimerEventWorkflowHandler.getFollowupDate(DOMAIN_IDENTIFIER)}</timeDate>
    </timerEventDefinition>
</boundaryEvent>

<sequenceFlow id="myTimerEventOnHold_timer" sourceRef="onholdTimerEvent" targetRef="exitOnHoldTimer">
    <extensionElements>
        <activiti:executionListener event="take" delegateExpression="${myTimerEventOnHoldTimerExecutionListener}" />
    </extensionElements>
</sequenceFlow>
<serviceTask id="exitOnHoldTimer" activiti:expression="${myTimerEventWorkflowHandler.exitOnHoldTimer(DOMAIN_IDENTIFIER)}" />
<sequenceFlow id="myTimerEventOnHold_timerExit" sourceRef="exitOnHoldTimer" targetRef="myTimerEventNext" />

<sequenceFlow sourceRef="myTimerEventOnHold" targetRef="exitmyTimerEventOnHold" />

非常感谢您的帮助!

尝试通过 activiti 库进行调试,发现 TriggerTimerEventJobHandler 从未被调用。我希望在执行计时器作业时调用此作业处理程序

activiti bpmn
© www.soinside.com 2019 - 2024. All rights reserved.