页面树结构
转至元数据结尾
转至元数据起始

(本文档仅供参考)

问题

公司组织架构发发生变动大量人员离职,目前离职人员记录再数据库的一张表中,由人事维护,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());
    }
    
}
  • 无标签