节点任务候选人配置

在流程设计器中,选择流程节点,右侧可以添加人员条件配置,支持添加多组配置,如果前一组配置解析出候选人将不再继续计算下一组。

配置页

人员配置说明

人员条件

人员条件为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。

然后他会根据所选表单字段以及人员类型解析具体任务候选人,赋值给当前任务。

相同节点执行人

使用指定节点历史执行人作为当前节点的任务候选人。

用在某些特殊业务场景,比如某两个节点需要相同的人审批时。

流程历史审批人

使用流程审批历史中所有参与过的人员作为任务候选人,若当前节点开启了会签,则所有人参与会签。