目录
- 定义
- 图形标记
- XML内容
- 使用示例
- 视频教程
定义
通常网关根据连线条件来决定后继路径,但事件网关不同,它提供了根据事件做选择的方式。
事件网关的每个外出顺序流都需要连接至一个捕获中间事件。当流程执行到达事件网关时,网关类
似处于等待的状态,暂停执行,并为每个外出顺序流创建相对的事件订阅。事件网关只有分支行为,
流程的走向完全是由于中间事件的选择,它允许从多个候选分支中选择事件最先触发的分支(如时
间事件、消息事件),并取消其他分支。
事件网关的外出顺序流和普通顺序流不同,这些顺序流从不实际被执行。相反,它们允许流程
引擎决定,当执行到达一个事件网关时,需要订阅什么事件。事件网关的使用需要注意以下几个约
束条件:
1、一个事件网关,必须有两条或以上外出顺序流。
2、事件网关后只能连接 intermediateCatchEvent(中间捕获事件)类型的元素。在 Flowable 中,
事件网关后还不支持连接接收任务(Receive Task)。
3、连接到事件网关的中间捕获事件,必须只有一个入口顺序流。
图形标记
事件网关和其他 BPMN 网关一样显示成一个菱形,内部包含指定图标,如图所示:
XML内容
定义包容网关的 XML 定义如下:
<eventBasedGateway id="exclusiveGateway1" />
使用示例
<signal id="alertSignal" name="alert" flowable:scope="global" /><process id="EventBasedGatwayTest" name="网关-事件网关" isExecutable="true"><startEvent id="ab90dd1d6552e49c09dec232671467890" /><userTask id="a53b48e07e88d4adb8b65bf3ab3460e0a" name="客户投诉"><extensionElements><flowable:formData /><flowable:assigneeType>static</flowable:assigneeType></extensionElements></userTask><sequenceFlow id="a6171b16076dd41b6a67d25fd838218c4" sourceRef="ab90dd1d6552e49c09dec232671467890" targetRef="a53b48e07e88d4adb8b65bf3ab3460e0a" /><sequenceFlow id="Flow_0h5e59j" sourceRef="a53b48e07e88d4adb8b65bf3ab3460e0a" targetRef="Gateway_0pspvvy" /><eventBasedGateway id="Gateway_0pspvvy" /><intermediateCatchEvent id="Event_0f966w5" name="3分钟"><timerEventDefinition><timeDuration>PT2M</timeDuration></timerEventDefinition></intermediateCatchEvent><sequenceFlow id="Flow_0ajw2tf" sourceRef="Gateway_0pspvvy" targetRef="Event_0f966w5" /><intermediateCatchEvent id="Event_0g20b6y" name="信号"><signalEventDefinition signalRef="alertSignal" /></intermediateCatchEvent><sequenceFlow id="Flow_1w1y6zy" sourceRef="Gateway_0pspvvy" targetRef="Event_0g20b6y" /><userTask id="Activity_0aug760" name="二级客服处理"><extensionElements><flowable:formData /><flowable:assigneeType>static</flowable:assigneeType></extensionElements></userTask><sequenceFlow id="Flow_0sqnwot" sourceRef="Event_0f966w5" targetRef="Activity_0aug760" /><userTask id="Activity_1wlis7z" name="一级客户处理"><extensionElements><flowable:formData /><flowable:assigneeType>static</flowable:assigneeType></extensionElements></userTask><sequenceFlow id="Flow_1x3g9hf" sourceRef="Event_0g20b6y" targetRef="Activity_1wlis7z" /><endEvent id="Event_139njtd" /><sequenceFlow id="Flow_143bcf9" sourceRef="Activity_0aug760" targetRef="Event_139njtd" /><sequenceFlow id="Flow_1i2cmpp" sourceRef="Activity_1wlis7z" targetRef="Event_139njtd" /></process>
视频教程
事件网关