让我们看看你能不能帮我一把。提前致谢。
我正在开发一个 Web 应用程序,通过具有不同状态的工作流来管理发票。我为此目的使用 jBPM 5,接下来我通过工作流启动一张特定发票的方式是:
- getTaskService().activate(taskId, userId);
- getTaskService().claim(taskId, userId);
- getTaskService().start(taskId, userId);
- getTaskService().complete(taskId, userId, taskContentData);
我的问题是第四条指令,涉及交易性。我有一个实用程序类,一旦发票通过其工作流程处理,它就会执行操作,如果这个类抛出异常,jBPM 发票任务在不应该时保持为“已完成”。
我的问题是:在这种情况下我该如何进行?我希望前 4 条指令仅在一个事务中执行,或者至少如果出现一个异常,任务状态不会更改为“已完成”,但这由 jBPM 控制,看起来并不容易。我应该尝试再次将任务状态从“已完成”更改为“已创建”吗?或者创建一个状态为“已创建”的新任务?