AgileBPM 大量的使用Groovy脚本来扩展业务逻辑,所以您可以参考改 API 使用常用脚本
扩展新的业务脚本
我们建议您在开发具体业务的时候,单独创建新的脚本类来扩展。请参考文档 流程脚本
组织常用脚本
以下脚本已经过时,不在提供API,请直接使用 相对岗位、表单人员插件!
- 获取指定组织下岗位人员
- 获取指定类型的上级岗位人员
- 获取指定类型的下级岗位人员
- 设置表单中字段的值作为任务候选人
- 将一个组织字段作为任务候选人
脚本中可用的组织信息
- 流程发起人所在组织ID
String startOrgId = bpmInstance.getCreateOrgId(); |
- 当前登录用户的组织信息
|
获取上级组织作为候选人
用于流程人员脚本,返回Set<SysIdentity>
|
获取指定类型的上级组织
如获取当前部门上级中 组织类型为分公司的组织
即查询所属公司信息
// groupId 若为null 则默认获取当前组织 |
获取指定类型的上级组织作为候选人
返回 指定类型组织的Set<SysIdentity>
// groupId 为组织ID,若为null 则使用当前组织,level为组织级别 集团0、分公司1、组织3、班组5 |
检查用户是否拥有某角色
如判断用户是否为 部门负责人。返回Boolean
// userId 若为空则获取当前用户,roleCode 为角色编码 |
获取用户 角色/职务 级别
获取用户 职级、角色级别,当有多个角色时,返回最大的职级。 返回 Int
使用场景:如 部门经理(职级50)、副总(职级80)、普通员工(职级 20)不同角色他们拥有不同的级别。在请假流程中可以判断用户的职级,当大于某个值时作出对应的跳转
// userId 若为null则获取当前用户 |
获取组织类型
用来判断某个组织的组织类型(集团0、分公司1、部门3、班组5)返回Int
//orgId 若为 null 则获取当前组织 |
业务对象常用脚本
业务对象转 JSON
JSONObject busJson = busDataScript.busData2Json(BusinessData busData); |
JSON 转业务对象
IBusinessData busData = busDataScript.json2BusData(JSONObject busData,String boKey) |
校验业务对象是否重复
用于表单保存时,通过某个字段判断数据是否重复
/** |
系统常用脚本
获取系统流水号
String serialNo = sysScript.getNextSerialNo(String alias); |
获取系统属性(分环境)
String getProperty(String key) |
获取当前用户信息
// 更多请查看 util工具类 |
执行SQL更新语句
可根据外键更新指定字段的值
sysScript.executeUpdateSql(String sql,Object ... params)
参数
- sql:SQL 包含绑定的参数
- params:SQL绑定的入参
返回值
- int : 更新条数
如 更新某表的字段值:(参数可从业务对象中取值)
String sql = "update org_user set fullname_ = ? where id_ = ? "; |
指定数据源执行SQL语句
sysScript.executeUpdateSqlOnDataSource(String dataSourceKey,String sql,Object ... params)
参数
- dataSourceKey:数据源别名,可通过系统配置-数据源管理新增数据源,请确保数据源拥有更新权限
- sql:SQL 包含绑定的参数
- params:SQL绑定的入参
返回值
- int: 成功更新条数
警告: 请勿以外部数据源形式更新主数据源正在更新事物中的同一条业务数据,会导致数据库行锁。
执行Count SQL更新语句
sysScript.executeIntegerSql(String sql,Object ... params)
executeIntegerSqlOnDataSource(String dataSourceKey,String sql, Object ... params)
参数
- sql:SQL 包含绑定的参数
- params:SQL绑定的入参
返回值
- int : count
流程常用脚本
获取流程变量
建议非插件支持环境使用,否则直接使用 variableScope
即可
// 全局变量 |
远程 http 表单处理器
请参考流程配置章节的详细描述bpmScriptUtil.httpFormHandler(String url)
执行任务同意
可以用在催办脚本中bpmScriptUtil.complateTaskById(String taskId,String opinion)
执行流程终止
可以用在催办脚本中bpmScriptUtil.endProcessByInstanceId(String instanceId,String opinion)
执行流程终止
bpmScriptUtil.endProcessByTaskId(String taskId,String opinion) |