BPM常见流程案例:会签流程、或签流程、分支流程、并行流程

BPM常见的流程模式有:顺序流程、会签流程、或签流程、分支流程、并行流程、子流程、任意流程等,这些流程模式均在BPMN2.0规范中有明确的定义,activiti、flowable、camunda等开源工作流引擎也都支持这些模式,以下重点介绍会签流程、或签流程、分支流程、并行流程这四种流程模式。

一、会签流程

1、适用场景

会签是一种联合审批的特殊审批节点,可理解为一种多人投票机制,一个任务需要多个人同时处理,然后汇总多个人的意见,决定流程下一步该如何执行。流程设计时,若会签审批节点中设置多个参与人,流程运行时,会签节点任务需要多人共同处理,然后汇总多人的处理意见,决定会签节点的处理结果。
例如:员工发起采购申请,需经过多名领导共同审批后,才决定是否可以采购,只要其中1名领导不同意,便退回申请人。

在这里插入图片描述

2、具体规则

会签分并行会签和顺序会签两种:
并行会签:指同一个审批节点设置多个人,如ABC三人,三人会同时收到待办,需全部同意之后,审批才可到下一审批节点。
顺序会签:指同一个审批节点设置多个人,如ABC三人,三人按顺序依次收到待办,即A先审批,A提交后B才能审批,需全部同意之后,审批才可到下一审批节点。

3、设置方法

BPMN2.0规范中提供了bpmn:multiInstanceLoopCharacteristics多实例循环的模型定义,activiti、flowable、camunda等开源工作流引擎均支持该属性,云程BPM基于camunda实现,对bpmn:multiInstanceLoopCharacteristics进行了封装,提供了界面可视化配置功能,并支持多人并行会签和多人顺序会签的功能,顺序会签在一些特定的业务场景下是有用的,个别中国特色流程需求有审批顺序的要求。
在这里插入图片描述

二、或签流程

1、适用场景

一个流程审批节点里有多个处理人,任意一个人处理后就能进入下一个节点。
例如:员工发起采购申请,提交给多名领导审批,只要有一名领导同意即可提交到下一节点。
在这里插入图片描述

2、具体规则

指同一个审批节点设置多个人,如ABC三人,三人会同时收到审批待办,只要其中任意一人审批即可到下一审批节点。

3、设置方法

BPMN2.0规范中提供了bpmn:multiInstanceLoopCharacteristics多实例循环的模型定义,并通过bpmn:completionCondition标签定义多实例完成条件,activiti、flowable、camunda等开源工作流引擎均支持该属性,云程BPM基于camunda实现,对bpmn:multiInstanceLoopCharacteristics和bpmn:completionCondition进行了封装,提供了界面可视化配置功能,配置多人办理规则为“多人任意”即可实现该功能。
在这里插入图片描述

三、分支流程

1、适用场景

分支流程的适用场景:流程中某个节点后有多个分支节点,根据不同条件执行不同的分支,即不同的数据会走不同的流程路径。
例如:请假申请,可根据请假天数走不同的审批路径,3天以内请假由人力资源审批,超过3天的请假由公司领导审批。
在这里插入图片描述

2、具体规则

1、分支流程使用【排他网关】,连接在【排他网关】后面的线条,有分流作用,点击线条可设置流转条件;
2、上一节点点击【提交】后,根据【排他网关】设置按顺序判断所有分支流转条件,出现满足流转条件时,就进入相应的分支节点。
3、如果不设置,表示无条件限制,会直接进入该节点;如果设置了流转条件,则只有满足条件才会进入该节点;如果所有的条件都不满足,则会流转到设置的默认方向;如果有多个条件满足,则会按设置的条件顺序判断,直到出现第一个满足的条件,就进入该节点。

3、设置方法

BPMN2.0规范中提供了bpmn:exclusiveGateway排他网关标签,activiti、flowable、camunda等开源工作流引擎均支持该标签,云程BPM基于camunda实现,严格遵照标准的BPMN2.0网关模型,并提供了界面可视化配置功能。
在这里插入图片描述

四、并行流程

1、适用场景

并行流程适用场景:流程中某个节点后有多个节点需要并行执行,节点的处理人需同时收到流程待办,各自处理待办,当所有分支线上的节点都执行后,流程才进入到下一个节点。
例如:员工提交请假申请,同时送部门经理和人力资源部审批,需要部门经理和人力资源全部审批通过后,才算流程审批通过。
在这里插入图片描述

2、具体规则

1、【并行网关】必须成双使用,连接在【并行网关】后面的线条,才有并流作用;
2、上一节点点击【提交】后,无论线条是否设置条件,都自动进入所有的分支节点。当所有分支都执行后,才进入这些分支同时连接的下一个节点;

3、设置方法

BPMN2.0规范中提供了bpmn:parallelGateway并行网关标签,activiti、flowable、camunda等开源工作流引擎均支持该标签,云程BPM基于camunda实现,严格遵照标准的BPMN2.0网关模型,并提供了界面可视化配置功能。
在这里插入图片描述

### Flowable 工作流引擎中的退回操作监听机制 在Flowable工作流引擎中,为了实现退回操作并对其进行有效监控,可以利用内置的监听机制。该机制允许开发者针对特定事件设置监听器,从而可以在发生这些事件时执行自定义逻辑。 对于退回操作而言,通常涉及的是`ActivityEnd`类似的事件,因为这表示某个活动已经结束,此时可以根据业务需求决定是否触发回退动作以及如何处理这一过程[^1]。具体来说: - **创建自定义监听器** 需要继承 `BaseExecutionListener` 类者实现 `ExecutionListener` 接口,并重写相应的方法以定义当达到指定条件时应采取的行为。例如,在检测到需要回退的情况下调用 API 来改变流程实例的状态。 ```java public class CustomRollbackListener implements ExecutionListener { @Override public void notify(DelegateExecution execution) throws Exception { // 判断是否满足回退条件 boolean shouldRollBack = checkIfShouldRollBack(execution); if (shouldRollBack){ String targetActivityId = determineTargetActivityId(execution); runtimeService.createChangeActivityStateBuilder() .processInstanceId(execution.getProcessInstanceId()) .moveToActivity(targetActivityId) .changeState(); } } private boolean checkIfShouldRollBack(DelegateExecution execution){ // 实现具体的判断逻辑 return false; } private String determineTargetActivityId(DelegateExecution execution){ // 返回目标节点ID return ""; } } ``` - **配置监听器** 可以通过 BPMN 文件内的 XML 定义来关联上述 Java 类作为监听器,也可以编程式地向 `FlowableEventDispatcher` 注册全局局部类型的监听器[^2]。 需要注意的一点是在某些特殊情况下可能会出现意外行为,比如由于缺乏合适的参与者而导致的任务自动跳过现象。为了避免这种情况影响正常的回退流程,建议在编写监听器时加入必要的验证和错误处理措施,确保即使面对异常情况也能保持系统的稳定性和数据一致性[^3]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大龄码农有梦想

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值