嵌套子流程是将一个完整的子流程直接嵌入到主流程中,作为主流程的一部分,子流程与主流程在同一个流程定义文件中,是主流程的一个嵌套结构。从图形上看,它就像是主流程里的一个封闭的小流程区域。

如下图,大框内子流程,外面的主流程会根据子流程的执行结果采取下一步动作。在一个流程中,嵌套一个或多个子流程,但是这些子流程没有流程实例Id,它是属于当前流程内部的。

流程实例是 什么?

  • 流程定义是 “模板”(比如 “请假流程” 的模板,规定了需要部门经理审批、HR 备案等步骤);
  • 流程实例是 “根据模板创建的具体单据”(比如 “张三 2023 年 10 月的 3 天请假申请”,是 “请假流程” 模板的一次实际运行)。

  】

image

 

调用子流程

调用子流程,调用子流程是指一个流程调用另外一个流程。
例如,有两个流程,分别是流程1,流程2。在流程1中配置了调用子流程,并且调用子流程的子流程配置引用流程2。当人为启动流程1之后,流程1跑到调用子流程节点时,流程1就会主动去启动流程2(不需要人为干涉启动流程2)。并且流程1在启动时会生成流程实例id(这是肯定的,因为相对来说是主流程),流程2被流程1触发启动之后,也会生成流程实例id(原因是,流程2也是一个独立的流程,可以人为去启动这个流程2)。

 形式上很像,但是在具体应用上有差别?

差别在哪呢

例如 完成某个主流程,里面穿插 采购流程和合同管理子流程,这应该才有嵌套子流程还是调用子流程呢

先明确核心判断标准:复用性 + 耦合度

选择子流程类型的核心逻辑的是:
    • 若子流程仅属于当前主流程、不复用、与主流程强耦合(比如子流程只服务于主流程,无法给其他流程用)→ 用嵌套子流程;
    • 若子流程可给多个主流程复用、与主流程弱耦合(比如采购流程,除了其他主流程也可能用到)→ 用调用子流程。