(本文档仅供参考)
问题
公司组织架构发发生变动大量人员离职,目前离职人员记录再数据库的一张表中,由人事维护,BI能否根据此表定时批量清理离职人员?
PS:做此类数据变更操作前,请先做好数据备份。
解决方案:
可考虑通过计划任务调用删除用户接口处理,步骤如下:
1、创建关系数据源,连接数据库
2、创建任务,定时执行任务进行用户删除
importPackage(Packages.java.io); importPackage(Packages.java.lang); importPackage(Packages.java.util); importPackage(Packages.smartbi.usermanager); importPackage(Packages.smartbi.sdk); importPackage(Packages.smartbi.sdk.service.user); importPackage(Packages.smartbi.sdk.service.datasource); var usrManagerService = new UserManagerService(connector); var datasrcService = new DataSourceService(connector); var datasrcId = "DS.notthwind"; //根据实际情况,自定义关系数据源连接的存储离职人员信息的数据库 var userName_sql ="select 'smartbi_user' as user from dual";//根据实际情况,查询需要删除的用户名称 var gridDataGroup = datasrcService.executeNoCacheable(datasrcId, userName_sql); for (var i = 0; i < gridDataGroup.getRowsCount(); i++) { //循环获取需要删除的用户 var userName=gridDataGroup.get(i, 0).getValue(); var user = usrManagerService.getUserByName(userName);//根据用户名获取用户信息 if (user) { //判断用户是否存在,存在则根据用户id删除用户 usrManagerService.deleteUser(user.getId()); } }