java - 主Activiti中没有从内部Activiti接收到异常

标签 java exception activiti

我们使用 Activiti BPMN 图来运行我们的工作流程。 在我们的主进程中,我们正在运行附加进程(innerProcess) 服务任务内部 - MyServiceTask 。见下文。 问题是,如果innerProcess进程中抛出异常,那么我不会在MyServiceTask中获取它,只有在主进程完成后,异常才会冒泡。

但我希望能够捕获 MyServiceTask 中的异常,以防万一发生。 你能帮忙吗?

public class MyServiceTask implements JavaDelegate
{

    @Inject
    private RuntimeService runtimeService;

    public void execute(DelegateExecution context) throws Exception
    {
          runtimeService.startProcessInstanceByKey("innerProcess", paramMap);
    }
}

最佳答案

根据您的代码,您没有运行第二个“Activiti”。相反,您正在启动一个新的流程实例。所有流程实例都是隔离的,并且错误与特定实例相关联。该规则的唯一异常(exception)是流程实例是“子流程”。在这种情况下,错误可能会向上冒泡到父流程实例。

我会修改您的逻辑,以通过信号(可能是最简单的方法)或直接从服务内启动子流程实例。

子流程实例的不同之处仅在于它们具有可在初始化时设置的父流程实例 ID。

关于java - 主Activiti中没有从内部Activiti接收到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50943316/

相关文章:

java - 从执行中获取可能的流程列表,例如 Activiti 中的用户任务或网关?

java - 计算 java 日期差异时出错

silverlight - 从 RIA 服务加载数据时,Silverlight 中的零星 Arg_COMException

java - 长时间运行的 activiti 服务任务

exception - 通过 JMX 访问 Apache ActiveMQ 抛出异常

java - 当年龄不在范围内时抛出用户定义的异常

java - 如何在 Activiti JavaDelegate 任务中访问 Spring Beans

java - 在不分配类型的情况下扩展通用接口(interface)?

java - Apache HttpClient 返回内容为空的实体

java - 如何更改 CouchDB 数据库中所有文档的结构?