在流程设计器中,选择流程节点,右侧可以添加人员条件配置,支持添加多组配置,如果前一组配置解析出候选人将不再继续计算下一组。
人员配置说明
人员条件
人员条件为Groovy脚本,可以使用 插件变量, return false;
则将返回空的候选人。
人员设置
人员设置支持,用户、组、脚本等设置形式,可以添加多条人员设置,多条人员配置可以进行 “与”、“或”、“排除” 运算
运算形式均是与前一列运算结果进行运算
如: 配置三条人员设置
1:用户A、用户B、用户C
2:用户B、用户C; 运算类型 【与】
3:用户C;运算类型【排除】
第二条与第一条进行 “与” 运算 结果为 :用户B、用户C
第三条与之前结果进行 “排除” 所以运算最终结果为:用户B
用户选择
通过人员选择器,选择一个指定的用户
组选择
选择组类型并选择一个具体的组,如:角色、岗位、组织
如果人员条件设置为【抽取】,则在任务创建的时候直接获取该组下的所有用户,人员分配后,如果组织内人员发生变化、该任务候选人不会发生改变
如果人员条件设置为【 不抽取】,那么任务候选人为 该组,不会具体到人,组内人员变化不会受影响
抽取、不抽取还会影响人员运算,如角色“财务”下有用户A,那么“财务”与“用户A” 进行 “与运算” 抽取时结果为 用户A,不抽取结果为空
自定义人员脚本
人员脚本为Groovy脚本,可以使用 插件变量,脚本必须返回 Set<SysIdentity> identityList
类型的集合。
通常用来实现复杂业务需求如:
- 获取排班表的人员作为候选人
调用排班服务接口 获取当前处理者的上级作为下一步任务候选人
如下:获取当前处理人上级的部门负责人。请自行控制当前组织为空,或者父组织不存在的场景import com.dstz.sys.util.ContextUtil;
import com.dstz.org.api.model.IGroup;
String parentGroupId = null;
IGroup iGroup =ContextUtil.getCurrentGroup();
if (iGroup!= null) {
parentGroupId = iGroup.getParentId();
}
return orgScript.getSisByGroupAndRole(parentGroupId,"部门负责人角色CODE");获取当前处理者所在部门的 部门经理,或者指定岗位人员作为候选人
return orgScript.getSisByGroupAndRole(null,"部门负责人角色CODE"); //若为null 默认取当前部门
更多脚本请参考 OrgScript脚本文档脚本
表单人员
用于直接从表单中取出当前节点任务候选人
使用步骤
1、首先选择一个表单字段,作为取值的目标字段,支持逗号分隔,若为子表,则取出子表该字段所有记录的字段值。
2、然后指定字段的人员类型,如:用户id、用户账户、组织id、岗位ID。
然后他会根据所选表单字段以及人员类型解析具体任务候选人,赋值给当前任务。
相同节点执行人
使用指定节点历史执行人作为当前节点的任务候选人。
用在某些特殊业务场景,比如某两个节点需要相同的人审批时。
流程历史审批人
使用流程审批历史中所有参与过的人员作为任务候选人,若当前节点开启了会签,则所有人参与会签。