我已经实现了一个自定义的workitemhandler,我只想通过外部REST调用来完成。因此,项目executeWorkItem()
方法最后不会调用manager.completeWorkItem(workItem.getId(), results);
,这是完全正常的。我还在我的进程中为此工作项分配了一个信号事件,该事件也由外部REST调用调用。这两件事都按预期工作,但我不明白的是,每当我发出工作项信号时,它也会自动完成工作项,这会导致流程与其常规路径和信号路径连续的问题。但是信号的原因是中断该过程仅遵循信号通路的路径。
可以在http://cl.ly/image/0F3L3E2w2l0j找到过程图像。在这个例子中,我发出了“失败转移”信号,但其余的也被执行,即使没有完成工作项目。
我正在使用jBPM 6.1 Final。
提前感谢您的帮助。
答案 0 :(得分:0)
没关系,我找到了这种行为的原因。自定义工作项处理程序已实现
public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {
manager.abortWorkItem(workItem.getId());
}
删除manager.abortWorkItem(workItem.getId());
后,该过程将按预期运行。