/**
* 博客 https://blog.52itstyle.vip
*/
<subProcess id="subprocess" name="合同评审">
<multiInstanceLoopCharacteristics isSequential="false" activiti:collection="assigneeList" activiti:elementVariable="assignee">
<completionCondition>${nrOfCompletedInstances/nrOfInstances==1}</completionCondition>
</multiInstanceLoopCharacteristics>
<!--省略相关任务节点代码-->
</subProcess>
collection:存放集合,集合中可以存任意值,工作流会根据你集合里的值个数,去生成对应的子流程,这里我们存放一级审批的用户ID。
elementVariable:节点流程变量,用于在流程图中代替集合中表示当前子流程的变量,对应子流程中第一个任务节点的变量名。
completionCondition:完成条件,这里写的表达式如果满足即可流转到下一步。
//4个部门审核,生成4个流程,集合中获取并存放的是一级评审人
List<String> assigneeList= Arrays.asList(new String[] {"1","2","3","4"});
variables.put("assigneeList", assigneeList);
ProcessInstance in = runtimeService.startProcessInstanceByKey("contract_review", variables);