BPMN2.0 网关

本文详细介绍了BPMN2.0中的四种网关:排他网关用于决策建模,遵循条件选择执行路径;并行网关实现流程分支与合并,不考虑条件;包容网关结合排他与并行特性,允许多条出口路径;基于事件的网关根据事件做出选择,需订阅相应事件。

网关(gateway)用于控制执行的流向(或者按BPMN 2.0的用词:执行的“标志(token)”)。网关可以消费(consuming)生成(generating)标志。

网关用其中带有图标的菱形表示。

排他网关

排他网关(exclusive gateway)(也叫异或网关 XOR gateway,或者更专业的,基于数据的排他网关 exclusive data-based gateway),用于对流程中的决策建模。当执行到达这个网关时,会按照所有出口顺序流定义的顺序对它们进行计算。选择第一个条件计算为true的顺序流(当没有设置条件时,认为顺序流为true)继续流程。

请注意这里出口顺序流的含义与BPMN 2.0中的一般情况不一样。一般情况下,会选择所有条件计算为true的顺序流,并行执行。而使用排他网关时,只会选择一条顺序流。当多条顺序流的条件都计算为true时,会且仅会选择在XML中最先定义的顺序流继续流程。如果没有可选的顺序流,会抛出异常。

排他网关用内部带有’X’图标的标准网关(菱形)表示,'X’图标代表异或的含义。请注意内部没有图标的网关默认为排

由于未提供更多关于 BPMN 2.0 并行网关实例的参考内容,下面为你给出一个通用的 BPMN 2.0 并行网关实例说明以及对应的 XML 示例。 ### 实例场景 假设一个请假流程,当员工提交请假申请后,需要同时进行部门经理审批和人力资源部门审批,这两个审批是并行进行的,只有当两个审批都完成后,流程才能继续往下进行进入最终结果通知环节。 ### BPMN 2.0 图结构 - 开始事件:表示请假流程开始。 - 并行网关(分叉):将流程分为并行的两条路径。 - 任务 1:部门经理审批。 - 任务 2:人力资源部门审批。 - 并行网关(汇合):等待两条并行路径都完成后,流程继续。 - 结束事件:通知请假结果。 ### XML 示例 ```xml <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://activiti.org/bpmn"> <process id="leaveProcess" name="Leave Process"> <!-- 开始事件 --> <startEvent id="startEvent" name="Start Leave Process"/> <!-- 并行网关(分叉) --> <parallelGateway id="parallelGatewaySplit" name="Split for Parallel Approval"/> <!-- 部门经理审批任务 --> <userTask id="departmentManagerApproval" name="Department Manager Approval"/> <!-- 人力资源部门审批任务 --> <userTask id="hrApproval" name="HR Approval"/> <!-- 并行网关(汇合) --> <parallelGateway id="parallelGatewayJoin" name="Join after Parallel Approval"/> <!-- 结束事件 --> <endEvent id="endEvent" name="Notify Leave Result"/> <!-- 连接开始事件和并行网关(分叉) --> <sequenceFlow id="flow1" sourceRef="startEvent" targetRef="parallelGatewaySplit"/> <!-- 连接并行网关(分叉)和部门经理审批任务 --> <sequenceFlow id="flow2" sourceRef="parallelGatewaySplit" targetRef="departmentManagerApproval"/> <!-- 连接并行网关(分叉)和人力资源部门审批任务 --> <sequenceFlow id="flow3" sourceRef="parallelGatewaySplit" targetRef="hrApproval"/> <!-- 连接部门经理审批任务和并行网关(汇合) --> <sequenceFlow id="flow4" sourceRef="departmentManagerApproval" targetRef="parallelGatewayJoin"/> <!-- 连接人力资源部门审批任务和并行网关(汇合) --> <sequenceFlow id="flow5" sourceRef="hrApproval" targetRef="parallelGatewayJoin"/> <!-- 连接并行网关(汇合)和结束事件 --> <sequenceFlow id="flow6" sourceRef="parallelGatewayJoin" targetRef="endEvent"/> </process> </definitions> ``` ### 流程解释 - 当员工提交请假申请后,流程从开始事件进入并行网关(分叉)。 - 并行网关将流程分为两条并行路径,分别执行部门经理审批任务和人力资源部门审批任务。 - 这两个任务可以同时进行,互不影响。 - 当两个审批任务都完成后,流程进入并行网关(汇合)。 - 并行网关(汇合)等待两条路径都完成后,流程继续到结束事件,通知请假结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值