会签用户任务属性设置
多实例类型
可以选择并行会签(parallel)
、顺序会签(sequential)
,其中并行会签的意思是 多个人同时执行任务。顺序会签是按顺序执行任务。
集合多实例
我这里设置assigneeList
。这个是会签的人员的ID集合的变量名称。可以随意命名。
元素变量(多实例)
就是循环的变量名称,我这里设置assignee
。 可以随意命名。
分配用户
需要和元素变量(多实例)的名称保持一致,比如元素变量(多实例)
设置a
,那么分配用户
就要设置${a}
。由于我元素变量(多实例)
设置的是assignee
,所以分配用户
我这里值是${assignee}
.
完成条件
${nrOfCompletedInstances/nrOfInstances == 1}
nrOfCompletedInstances: 完成的实例数
nrOfInstances:会签实例总数
比如设置${nrOfCompletedInstances/nrOfInstances == 1} 是指必须审批人全部同意才会到下一个任务节点。
xml样例
<userTask id="sid-5936D984-EE7E-45D8-854B-E07EBFB97611" name="领导会签" flowable:assignee="${assignee}" flowable:formFieldValidation="true">
<extensionElements>
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
</extensionElements>
<multiInstanceLoopCharacteristics isSequential="false" flowable:collection="assigneeList" flowable:elementVariable="assignee">
<completionCondition>${nrOfCompletedInstances/nrOfInstances == 1}</completionCondition>
</multiInstanceLoopCharacteristics>
</userTask>
举例
比如我在执行监听器的逻辑(这个逻辑会在签任务产生之前执行)里面,把所有用户ID集合作为会签审批人员集合赋值给
assigneeList
变量。由于只有四条用户记录,那么会签的时候会产生四条任务,并且会产生四个assignee变量
,程序会循环把${assignee}
的值作为审批人赋值这四条任务。