Flowable开始事件-错误开始事件

✨✨✨ 最好用的Flowable流程设计器


错误开始事件


定义

错误开始事件可以触发一个异常子流程,它总是在另外一个流程在异常结束的时候触发。BPMN2.0 规定了错误开始事件只能使用在事件子流程(Event Sub-Process)中,该该事件不能
使用在其它流程中,包括最高级流程(Top-Level Process)、嵌套子流程(Sub-Process)和调用子流程(Call Activity)。

注意,BPMN 错误与 Java 异常不是一回事,BPMN 错误事件是建模业务异常(business exceptions)的方式,二者没有直接关联。

图形图标

错误开始事件是一个圆圈,包含一个错误事件标记。标记是白色未填充的,来表示捕获(接收)行为。

在这里插入图片描述

XML内容

<error id="errorStart" errorCode="501" />
<process id="errorStartEventProcess">
    <startEvent id="errorStartEvent" >
        <errorEventDefinition errorRef="theError" />
    </startEvent>
</process>

在以上 xml 代码片段中,首先定义了一个 id 属性值为 theError 的错误,然后在开始事件中使用 errorEventDefinition 元素引用该 error,从而构成了一个错误开始事件。

注意:错误开始事件不能独立存在,必须是其他事件的子流程。

界面操作

错误定义

在这里插入图片描述

错误选择

在这里插入图片描述

使用示例

两种方式触发错误开始事件

1、错误结束事件抛出错误(注:错误结束事件也选择的是同一个错误定义)

2、自动执行主流程的服务任务抛出错误,接下来子流程的错误开始事件捕获到错误后执行。

@Slf4j
public class AutomaticReviewService implements JavaDelegate {
    @Override
    public void execute(DelegateExecution execution) {
        String healthCodeStatus = (String) execution.getVariable("healthCodeStatus");
        if (!"green".equals(healthCodeStatus)) {
            String errorCode = "500";
            log.error("健康码异常,抛出BPMN错误,errorCode为:{}", errorCode);
            throw new BpmnError(errorCode);
        }
    }
}

视频地址:

错误开始事件

演示demo

错误开始事件

本文中内容和案例出自贺波老师的书《深入Activiti流程引擎:核心原理与高阶实战》,书中的介绍更全面、详细,推荐给大家。
深入Activiti流程引擎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小学生05101

flowable

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值