(本文档仅供参考)

问题:

想要获取资源创建者,如何获取。

解决办法:

V97以下版本:

V97以下资源创建者在系统知识库中不是以单独的字段进行存储,而是和资源的权限一起存在t_restree表中的c_prem字段,无法通过SQL直接解析出,但是可调用接口获取。

接口如下:https://wiki.smartbi.com.cn/api/javaapiv7/

接口使用,例如在任务界面中调用接口。

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);
importPackage(Packages.smartbi.sdk.service.catalog);
importPackage(Packages.smartbi.catalogtree);


var catalogService= new CatalogService(connector);
var Permission=catalogService.getAssignedPermissions("95950a6e5ecf94ed01ed06d9ded64f77"); //根据资源id获取直接授予的权限
var creators = Permission.getOwner();  //直接授予的权限列表中获取创建者
var creatorid=creators.id;
var creatorname=creators.name;
var creatoralias=creators.alias;
context.put("message", "id:" +creatorid+"\n名称:"+creatorname+"\n别名:"+creatoralias);


V97已以上版本

V97版本及以上的版本,存储在t_permission表中。

image2025-5-22_16-9-34.png