flowable多实例任务分发
时间: 2023-07-25 17:04:38 浏览: 92
Activiti(Flowable) 流程实例克隆解决方案1
Flowable支持多实例任务,即在流程中可以创建多个相同类型的任务,并分配给不同的执行人或候选人。在Flowable中,多实例任务可以使用多种方式进行分发,例如:
1. 顺序分发:按照指定的顺序将任务分配给不同的执行人或候选人。这种方式适用于需要按照固定顺序逐一执行任务的场景。
2. 并行分发:将任务同时分配给多个执行人或候选人,让他们并行执行任务。这种方式适用于需要同时处理多个任务的场景。
3. 动态分发:根据流程变量或其他条件动态地将任务分配给不同的执行人或候选人。这种方式适用于需要根据流程上下文动态调整任务分配的场景。
在Flowable中,可以使用以下方式配置多实例任务的分发方式:
1. 使用SequentialMultiInstanceBehavior配置顺序分发。
2. 使用ParallelMultiInstanceBehavior配置并行分发。
3. 使用DelegateExpression或者JavaDelegate配置动态分发。
例如,下面是一个使用ParallelMultiInstanceBehavior配置并行分发的示例代码:
```xml
<userTask id="parallelTask" name="Parallel Task" activiti:candidateUsers="${users}">
<multiInstanceLoopCharacteristics isSequential="false" activiti:collection="${collection}">
<completionCondition>${nrOfCompletedInstances/nrOfInstances >= 0.6}</completionCondition>
<parallelMultiInstanceBehavior />
</multiInstanceLoopCharacteristics>
</userTask>
```
这个示例中,用户任务parallelTask会被分配给activiti:candidateUsers和activiti:collection中指定的多个用户或实体,并使用ParallelMultiInstanceBehavior进行并行分发。同时,使用completionCondition指定了任务完成的条件,即当完成任务的数量达到总任务数的60%时,该任务就会被标记为完成。
阅读全文