并行网关: 可以同时执行多个流程, 直到总流程的结束. 可以对流程进行分支和聚合注意: 这时的流程实例和执行对象是不一样的.

一. 设计流程图

    含有并行网关的流程并没有比较复杂的属性配置(只需要配置id,name和任务办理人即可), 因为是并行的, 并没有流程走向的控制, 也就没有什么连线条件配置.

å¨è¿éæå¥å¾çæè¿°

二. 流程(并行网关)部署启动后相关表数据变化

  • 正在执行的执行对象表 act_ru_execution (3条数据, 并行分支数2+流程实例1)

å¨è¿éæå¥å¾çæè¿°

  • 流程实例的历史表 act_hi_procinst (1条数据)

å¨è¿éæå¥å¾çæè¿°

  • 正在执行的任务表 act_ru_task (2条数据, 并行分支数)

å¨è¿éæå¥å¾çæè¿°

  • 历史任务表 act_hi_taskinst (2)

å¨è¿éæå¥å¾çæè¿°

历史活动节点表 act_hi_actinst (4, +并行网关)

å¨è¿éæå¥å¾çæè¿°

三. 特殊情形,相关表分析

    当其中一个并行分支优先完成(如: 发货->收货任务完成; 付款->收款还未完成)时, 相关表数据变化(无特殊变化的表略去)

  • 正在执行的执行对象表 act_ru_execution (还是3条数据)

å¨è¿éæå¥å¾çæè¿°

  • 历史活动节点表 act_hi_actinst (7, 并行网关*2)

å¨è¿éæå¥å¾çæè¿°

四. 当并行分支全部完成时, 相关表数据 变化

  • 历史活动节点表 act_hi_actinst (9, 并行网关*3)

å¨è¿éæå¥å¾çæè¿°

五. 总结

 

  • 一个流程中流程实例只有1个,执行对象有多个
  • 并行网关的功能是基于进入和外出的顺序流的:
  • 分支(fork): 并行后的所有外出顺序流,为每个顺序流都创建一个并发分支。
  • 汇聚(join): 所有到达并行网关,在此等待的进入分支,直到所有进入顺序流的分支都到达以后, 流程就会通过汇聚网关。
  • 如果同一个并行网关有多个进入和多个外出顺序流, 它就同时具有分支和汇聚功能。 这时,网关会先汇聚所有进入的顺序流,然后再切分成多个并行分支。
  • 并行网关不会解析条件。 即使顺序流中定义了条件,也会被忽略。
  • 并行网关不需要是“平衡的”(比如, 对应并行网关的进入和外出节点数目不一定相等)。如图中并行流程是合法的:

å¨è¿éæå¥å¾çæè¿°

参考:

https://www.cnblogs.com/dengjiahai/p/8894339.html

https://blog.csdn.net/changqi008/article/details/83042028

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐