2

让我们看看你能不能帮我一把。提前致谢。

我正在开发一个 Web 应用程序,通过具有不同状态的工作流来管理发票。我为此目的使用 jBPM 5,接下来我通过工作流启动一张特定发票的方式是:

  • getTaskService().activate(taskId, userId);
  • getTaskService().claim(taskId, userId);
  • getTaskService().start(taskId, userId);
  • getTaskService().complete(taskId, userId, taskContentData);

我的问题是第四条指令,涉及交易性。我有一个实用程序类,一旦发票通过其工作流程处理,它就会执行操作,如果这个类抛出异常,jBPM 发票任务在不应该时保持为“已完成”。

我的问题是:在这种情况下我该如何进行?我希望前 4 条指令仅在一个事务中执行,或者至少如果出现一个异常,任务状态不会更改为“已完成”,但这由 jBPM 控制,看起来并不容易。我应该尝试再次将任务状态从“已完成”更改为“已创建”吗?或者创建一个状态为“已创建”的新任务?

4

1 回答 1

0

我知道这是旧线程,但对其他人来说,..

在这种情况下,它应该通过流程来处理和指示。您可以参考异常处理https://docs.jboss.org/jbpm/v6.0/userguide/jBPMExceptionManagement.html

基本上,如果在处理发票后发生错误(无论是哪个任务),并且如果发生错误,它应该执行错误处理条件语句并返回上一个流程(任务)。

于 2018-03-20T13:59:20.833 回答