节点任务候选人配置

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

人员配置说明

人员条件

人员条件为Groovy脚本,可以使用 插件变量return false; 则将返回空的候选人。

人员设置

人员设置支持,用户、组、脚本等设置形式,可以添加多条人员设置,多条人员配置可以进行 “与”、“或”、“排除” 运算
运算形式均是与前一列运算结果进行运算

如: 配置三条人员设置
1:用户A、用户B、用户C
2:用户B、用户C; 运算类型 【与】
3:用户C;运算类型【排除】

第二条与第一条进行 “与” 运算 结果为 :用户B、用户C
第三条与之前结果进行 “排除” 所以运算最终结果为:用户B

用户选择

通过人员选择器,选择一个指定的用户

组选择

选择组类型并选择一个具体的组,如:角色、岗位、组织

如果人员条件设置为【抽取】,则在任务创建的时候直接获取该组下的所有用户,人员分配后,如果组织内人员发生变化、该任务候选人不会发生改变
如果人员条件设置为【 不抽取】,那么任务候选人为 该组,不会具体到人,组内人员变化不会受影响

抽取、不抽取还会影响人员运算,如角色“财务”下有用户A,那么“财务”与“用户A” 进行 “与运算” 抽取时结果为 用户A,不抽取结果为空

脚本

人员脚本为Groovy脚本,可以使用 插件变量,脚本必须返回 Set<SysIdentity> identityList 类型的集合。

通常用来实现复杂业务需求如:

  • 获取排班表的人员作为候选人
    调用排班服务接口
  • 获取当前处理者的上级作为下一步任务候选人
    如下:获取当前处理人上级的部门负责人。请自行控制当前组织为空,或者父组织不存在的场景

    import IGroup、ContextUtil ;
    String parentGroupId = null;
    IGroup iGroup =ContextUtil.getCurrentGroup();
    if (iGroup!= null) {
    parentGroupId = iGroup.getParentId();
    }

    return orgScript.getSisByGroupAndRole(parentGroupId,"部门负责人角色CODE");
  • 获取当前处理者所在部门的 部门经理,或者指定岗位人员作为候选人

    return orgScript.getSisByGroupAndRole(null,"部门负责人角色CODE"); //若为null 默认取当前部门
  • 获取当前分公司,或者当前组织上级中指定类型的组织
    请自行实现

用户关系

获取某个用户(或者发起人、业务字段的用户)当前组织(或者上级、上N级) 的部门 经理(或者部门的某个岗位角色)