多实例允许业务流程中某一个任务甚至子流程可以重复执行多次,在实际应用中,一个申请由多人审批是多实例的典型应用场景。多个实例可以选择顺序执行,还可以选择并行执行多实例任务或子流程。
多实例支持的任务类型如下:
用户任务
脚本任务
服务任务(java service/web service)
业务规则任务
邮件任务
手动任务
接收任务
子流程(嵌入式)
子流程(调用活动)
在BPMN2.0规范中规定了多实例的几个属性变量,可以通过executin.getVariable()获取变量:
nrOfInstances:实例的总数;
nrOfActiveInstances:当前活动的(未完成的)实例数量。对于按照顺序执行的多实例,该值总是为1.
nrOfCompletedInstances:已经完成的实例数量;
loopCounter:多实例运行过程中,for-each循环中当前的索引值