jBPM信号事件总是完成工作项

时间:2015-02-10 11:22:52

标签: rest jbpm bpms

我已经实现了一个自定义的workitemhandler,我只想通过外部REST调用来完成。因此,项目executeWorkItem()方法最后不会调用manager.completeWorkItem(workItem.getId(), results);,这是完全正常的。我还在我的进程中为此工作项分配了一个信号事件,该事件也由外部REST调用调用。这两件事都按预期工作,但我不明白的是,每当我发出工作项信号时,它也会自动完成工作项,这会导致流程与其常规路径和信号路径连续的问题。但是信号的原因是中断该过程仅遵循信号通路的路径。

可以在http://cl.ly/image/0F3L3E2w2l0j找到过程图像。在这个例子中,我发出了“失败转移”信号,但其余的也被执行,即使没有完成工作项目。

我正在使用jBPM 6.1 Final。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

没关系,我找到了这种行为的原因。自定义工作项处理程序已实现

public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {
        manager.abortWorkItem(workItem.getId());
    } 

删除manager.abortWorkItem(workItem.getId());后,该过程将按预期运行。