可流动-为旧式进行中的流程发送信号失败

时间:2020-07-03 13:23:00

标签: activiti flowable

我们采用的是flowable 6.5,并具有在Activiti 5.15和 继续在向后兼容的flowable 5引擎中工作。

问题-我们正在通过进行中的传统流程发送信号,但在 org.flowable.engine.impl.agenda.TriggerExecutionOperation带有给定的ActivityActivity的NPE ActivityBehavior activityBehavior =(ActivityBehavior)(((FlowNode)currentFlowElement).getBehavior()从下面的代码返回NULL。

理想情况下,FlowNode行为由bpmn解析器设置,该解析器将进程定义部署在内存中。虽然对于可流动的5个兼容的流程定义,解析器设置ActivitiImpl而不是FlowNode。因此,当信号被调用时,它会进入TriggerExecutionOperation并尝试在FlowNode中查找当前行为,但找不到它,因为bpmn解析处理程序没有为旧进程设置它。

如果我发送的信号具有在flowable 6.5引擎中实例化的新流程定义,则相同的流程效果很好。

有什么想法为什么会发生?

在TriggerExecutionOperation中失败的代码

    public void run() {
        FlowElement currentFlowElement = getCurrentFlowElement(execution);
        if (currentFlowElement instanceof FlowNode) {

            ActivityBehavior activityBehavior = (ActivityBehavior) ((FlowNode) 
 currentFlowElement).getBehavior();
....
}

谢谢 宾语

0 个答案:

没有答案