1.功能描述
① 人员脚本和脚本相同点:都是通过脚本查询人员,后端调用的代码其实是一致的。
② 人员脚本和脚本的区别在于:人员脚本是开发人员开发脚本后,管理人员通过人员脚本配置界面配置好这个脚本,流程配置人员可以通过界面直接进行配置。对于配置人员来说使用起来相对方便。
③ 脚本策略是流程配置人员在脚本输入框直接输入脚本的方式这种方式需要配置人员懂得java脚本的编写,对于配置人员难度大一些。
2.操作指引
第一步:在后端代码中开发好人员脚本(请参考文档[宏天软件EIPSAAS_流程脚本(常用脚本、人员脚本)开发说明])
第二步:【流程管理】→【辅助功能】→【人员脚本】;
第三步:点击“添加”按钮;
第四步:设置人员脚本;
第五步:单击“保存”。
注:是否有效设置为“无效”时,在审批人员设置-人员脚本中将不能选择到该人员脚本
3.脚本测试
模块提供脚本测试功能:选择脚本,输入参数后,便可获取到对应的人员;
- 人员脚本使用说明
1.getRoleByAlias(根据角色别名获取角色列表)
①:固定人配置---指定固定的角色,每次流程启动时,会去找该角色配置下的人员
②:变量配置---通过表单中选择的角色编码来获取审批人
选择的这个字段可以不显示在表单中,但是在建模中一定要有该字段,表单配置中通过选择器,获取到角色的别名
根据不同的选择,选择的不同,审批人会同步发生变化
后面的角本配置中,不再说明固定值配置,只说明变量配置,固定值大部分根据说明直接选择即可
以及变量配置中用的用户选择,组织选择,维度选择的配置等,同角色选择,不再过多说明
2. getUpChargesByOrgId (获取上级组织负责人(包含主负责人)或主负责人)
如上图,若选择的是广州公司,获取的实际结果应该是此组织上级即集团下人员列表中的主负责人,为董倩,或设置的是false则获取到的是李明,董倩,蔡强
注:此配置只能单选,不支持同时选择多个部门
3. getChargesByPreNode (获取上一节点执行人的部门负责人(主组织))
注 :上一个节点审批人必须设置有主组织,否则不生效
行政维度下张三处理后,获取到的审批人为李明,董倩,蔡强
行政维度下李四处理后,获取到的审批人为李四,王五,刘辰翁
4. getByRelPreNode (通过上一节点执行人获取汇报线上级人员列表)
5. getByRelStartUser (通过发起人获取汇报线上级人员列表)
4,5配置相同,只是获取节点不同,现举例4脚本配置
因表单中暂没有汇报线选择器,这里用固定值,选择指定的汇报线
如上图,应获取到的是张三的上级,为王五
6. getUserFromSubData
(从子表数据中提取节点审批人--固定值生效
)
注:此配置只能用固定值,不能配置为变量;
子表别名前一定要加sub_
7. getChargesByPOrg (获取当前用户的上级部门(主)的负责人)
8. getChargesByStartPOrg ( 获取发起人的上级部门的(主)负责人 )
7.8配置相同,只是取节点不同,现介绍一种配置
例如:审批人为李明,配置节点会去找李明所在组织的上级组织里的(主)负责人
注:审批人必须有主组织,例如李明的主组织是开发部;
不能同时选择多个维度,维度只能选择一个
9. getChargesByOrg (获取当前用户所在部门的(主)负责人)
10. getChargesByStartOrg (获取发起人所在部门的(主)负责人)
9,10配置相同,举例10的配置用法
注:发起人(当前用户)必须设置有主组织;
维度变量只能选择一个,不支持多选
11. getOrgById (根据组织id查询组织作为候选处理人(不抽取))
该配置不会把选择的组织下的所有人员抽取出来,若没有人员,则审批节点为空
12. getByOrgRelDefCode ( 通过职务编码和组织编码查询用户 )
注:组织和职务变量不支持多选,必须是一对一
若职务与组织查询无人员,则审批人为空
13. getListUserByRelCode (根据岗位编码获取人员列表)
此配置会把所选择的岗位下的所有人员抽取出来,没有人员则审批人为空
14. getMainByOrgId (获取该组织中为主组织的人员列表)
此配置会抽取出选择的组织中设置为主组织的人员,无满足条件的人员则审批条件为空
15. getChargesByOrgId (获取组织负责人(包含主负责人)或主负责人)
此配置会抽取出选择的组织中设置为主负责人(负责)的人员,无满足条件的人员则审批条件为空
16. 找这个组织下有这个角色的人员 getByCompanyRole
这个脚本可以找到指定组织以及这个组织下所有子组织中,拥有某个角色的人员,并取这个人员作为审批人
组织id:填写对应的组织编码(orgid)
角色别名:填写对应的角色编码(rolecode)
示例:用户5在1级组织下的子组织内,并且拥有“独立”的角色
选择人员脚本getByCompanyRole,组织选择1级组织,角色选择“独立”
结果:能选到组织下包括子组织的人员
17.获取逐级审批 getLeaderStep
这个脚本可以根据组织级别从当前发起人的主组织一直往上找到每个组织的主负责人做审批人,
是否需要上级,可以取出当前发起人的上级人员(根据下属管理),该脚本逻辑是从下级组织往上取主负责人,若有上级人员(根据下属管理)则先取上级人员来审批
级别:填写对应的组织级别,此处的级别是指最多找到哪个级别的组织,例:2,意味着会一直往上找,直到找到级别为2的组织才会停止
是否需要上级:填写true(是)或者false(否)
组织级别:即uc_org里面的grade_字段,需要自己去手动填写,示例:
级别1的人员如下:
用超级管理员发起,参数为 级别:1,上级false
结果为
级别2的人员如下:
用超级管理员发起,参数为 级别:2,上级false
结果为
级别3的人员如下:
用超级管理员发起,参数为 级别:3,上级false
结果为
如果参数为 级别:3,上级true的情况下
结果为(用户5是超级管理员的上级)
18.根据组织id获取逐级审批 getLeaderStepByOrgId
这个脚本可以从选择的组织id往上一直往上找组织主负责人审批人员,具体逻辑可以参考【 获取逐级审批】,不同之处,是获取逐级审批是从发起人主组织开始找的,这个脚本是从选定的组织开始找
组织id:填写开始找主负责人组织id
组织级别:填写对应的组织级别,此处的级别是指最多找到哪个级别的组织,例:2,意味着会一直往上找,直到找到级别为2的组织才会停止
19.根据id获取审批人 getUserById
这个脚本可以通过用户id取出用户作为审批人
Id:填写用户id
Null:填写null
最下面的参数可以不填写
示例:
20.sql查询用户id getUserFromBusSql
这个脚本可以通过sql查询用户id,并取出这个用户作审批人
Sql参数:直接写入查询用户id的语句即可,例如:select id_ from uc_user where id_=’1’
或者select sprID from w_xxxx
也可以根据表单上的变量做过滤条件
示例:"SELECT F_A FROM W_A WHERE ID_ = '"+xz.getString("zd")+"'" //xz.getString("zd")为表单变量