Flowable主要子流程介绍

1. 内嵌子流程

(1)说明
        内嵌子流程又叫嵌入式子流程,它是一个可以包含其它活动、分支、事件,等的活动。我们通常意义上说的子流程通常就是指的内嵌子流程,它表现为将一个流程(子流程)定义在另一个流程(父流程)的内部,子流程作为父流程的一部分。子流程是主流程中的一部分流程片段,并非独立的流程定义,一般作为局部通用逻辑处理,或者因为特定业务需要,使比较复杂的单个主流程设计清晰直观。
        主流程执行到子流程时启动子流程,当子流程结束后继续执行主流程。

(2)示例

  
    
    
    
    
      
      
      
      
      
    
    
    
    
  

Flowable主要子流程介绍_第1张图片

       

2. 事件子流程

(1)说明
        和内嵌子流程类似,把一系列的活动归结到一起处理,不同之处在于事件子流程不能直接启动,要被动地由其它的事件触发启动。事件子流程可以通过消息事件、错误事件、信号事件、定时器事件或补偿事件等触发。不能在事件子流程中使用空启动事件。

(2)示例

  
  
    
    
    
    
    
      
    
    
      
        
      
      
      
      
      
    
  

Flowable主要子流程介绍_第2张图片

3. 调用活动

(1)说明
        调用活动可以引用流程定义外部的流程,当执行到调用活动时启动引用的外部流程,当外部流程执行完后转到当前流程下一节点。

(2)示例

  
    
    
    
    
    
    
    
    
    
  

Flowable主要子流程介绍_第3张图片

4. 自组织子流程

(1)说明
        自组织子流程是子流程的一种,其内部包含一组无需定义先后顺序和依赖的活动。在流程中事先定义好一组活动,但活动的执行顺序是活动的执行者确定。
        completionCondition标签需要在内部任务的最后面,可在代码中指定要实现的任务,该表达式成立时退出子流程流转到主流程下一节点。

(2)示例

  
    
    
    
    
    
      
      
      ${flag}
    
    
    
  

Flowable主要子流程介绍_第4张图片

// 查询子流程的执行流
Execution exe = runtimeService.createExecutionQuery().processInstanceId(String instanceId).activityId(String activityId).singleResult();
// 让执行流到指定任务
runtimeService.executeActivityInAdhocSubProcess(String executionId,String activityId);

你可能感兴趣的:(Flowable,flowable)