2015-02-10 52 views
0

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

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

我正在使用jBPM 6.1 Final。

在此先感谢您的帮助。

+0

信号属性“CancelActivity”也设置为true。如果信号被调用,这个标志不会告诉引擎取消该活动吗? – Florian 2015-02-10 11:51:18

回答

0

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

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

去除manager.abortWorkItem(workItem.getId());,过程表现为预期后。

相关问题