Flowable-结束事件-空结束事件

本文介绍了Activiti流程引擎中的空结束事件,它是简单且常见的结束事件类型,不处理抛出结果,仅在流程实例所有分支执行完毕后自动结束。文章还提供了空结束事件的图形标记和XML表示形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


定义

空结束事件是最常见的一种结束事件,也是最简单的一种结束事件,只要把结束任务置于流程
或分支的最后节点,流程实例运行到该节点的时候,流程引擎就会结束该流程实例或分支。前面提
到,结束事件是抛出类型的,但空结束事件不处理抛出结果,我们可以理解为流程或分支正常结束
了,不需要执行其他的操作。
当流程实例有多个流程分支被激活时,只有当最后一个分支到达空结束事件正常结束后,流程
实例才结束。

图形标记

空结束事件是一个粗边圆圈,没有内部图标(无结果类型),如图所示:

在这里插入图片描述

XML内容

空结束事件的 XML 表示格式,为普通结束事件声明,没有任何子元素(其它种类的结束事件
都有子元素,用于声明其类型)。

<endEvent id = "endEvent1" name="noneEndEvent " ></endEvent>

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

### 如何在Flowable工作流引擎中取消某个节点 在Flowable工作流引擎中,取消特定流程实例中的某一个活动节点通常不是通过直接删除该节点来实现的。相反,这可以通过几种不同的方式处理: #### 方法一:使用流程变量控制跳过逻辑 一种常见的做法是在BPMN文件中设计业务规则或条件表达式,使得当某些条件下满足时可以绕过指定的任务节点。 ```xml <sequenceFlow id="flow2" sourceRef="task1" targetRef="task3"> <conditionExpression xsi:type="tFormalExpression">${skipTaskTwo}</conditionExpression> </sequenceFlow> ``` 这里`skipTaskTwo`是一个布尔类型的流程变量,在运行期间如果设置此变量为true,则会触发从`task1`直接流向`task3`而不是经过中间的`task2`[^1]。 #### 方法二:调用API终止当前任务并指派新任务给下一个参与者 另一种方法是利用Java API编程的方式强制结束正在执行的任务,并创建一个新的指向后续步骤的任务对象。 ```java // 获取RuntimeService和TaskService服务组件 RuntimeService runtimeService = processEngine.getRuntimeService(); TaskService taskService = processEngine.getTaskService(); String taskIdToCancel = "some-task-id"; // 要取消的任务ID List<String> nextTasksIds = Arrays.asList("next-task-id"); runtimeService.createChangeActivityStateBuilder() .processInstanceId(processInstanceId) .moveActivityIdTo(taskIdToCancel, nextTasksIds) .changeState(); taskService.deleteTask(taskIdToCancel,true); ``` 这段代码展示了如何通过更改活动状态构建器(`ChangeActivityStateBuilder`)将选定的任务转移到其他目标位置,从而有效地“取消”了原始任务[^4]。 需要注意的是,上述两种方案都需要仔细考虑业务需求以及可能产生的副作用,比如数据一致性等问题。对于更复杂的场景,建议深入研究官方文档获取更多指导信息[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小学生05101

flowable

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

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

打赏作者

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

抵扣说明:

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

余额充值