Camunda工作流——第三章 网关

  在流程中,通常需要做出选择,也就是进行业务决策。在BPMN中,这个决策用网关(Gateway)来表示。网关用来控制顺序流的分叉(Fork)和连接(Join)。

  只有在需要对流程进行控制的时候才会引入网关。

  排他网关

  当执行到此网关时,将一次评估所有传出序列流,并选择第一个调解评估结果为真(True)的序列来继续这个流程。

  如果不能选择序列流(没有任何条件评估结果为真),也没有定义默认序列流时,将导致运行异常。

  序列流,是流程中两个元素之间的连接器。在流程执行过程中访问一个元素之后,将继续执行所有传出序列流。这意味着BPMN2.0的默认行为是并行的:两个传出序列流将创建两个独立的并行执行路径。

  条件序列流,当结果为真时,将被选为传出序列流。当以这张方式选择多个序列流时,将生成多个执行,并行方式继续进行。

  默认序列流,所有BPMN2.0任务和网关都可以有一个默认的序列流。如果无法选择其他序列流,就仅将此默认序列流作为该活动的传出序列流。默认序列流上的条件会被忽略掉。

  并行网关

  在流程中引入并发性最直接的网关是并行网关,如果同一并行网关有多个传入和传出序列流,网关将首先连续所有传入的序列流,然后再分割成多个并发的执行路径。并行网关与其他网关类型的一个重要区别是,并行网关不会判断条件是否为真。

  包含网关

  包含网关可以看作是排他网关和并行网关的结合。

  事件网关

  事件网关是通过中间事件驱动,它在等待的事件发生后才会触发决策。基于事件的网关允许基于事件作出决策。基于事件的网关中运行的序列流与普通序列流不同。这些序列流实际上从未真正执行过。相反,它们只是告诉流程引擎要到达基于事件的网关需要订阅哪些事件。

  

  

posted @ 2021-04-19 11:16  喵喵2023  Views(1321)  Comments(0Edit  收藏  举报