1. 说明
如果在项目中使用第三方系统的权限验证,很可能也需要同步 Smartbi 资源树信息(即目录树节点的详细信息)到第三方系统中以配合权限验证,即每当Smartbi中的资源树发生变化时,资源树信息监听类会监听到资源树变化,此时可以在监听类中通知第三方系统及时更新,效果如下。
2. 实现原理
该方法是同步方法,在调用通知时,被保存节点的数据还没有被写入物理数据库,可以通过当前的hibernate中的session获取当前的结点对象
3. 适用场景
3.
实现步骤1、在插件包中新建一个Java类com1. 场景1
判断资源合法性,不符合条件则驳回保存动作。
① 通过session获取当前节点的数据对象;
② 判断对象是否合法;
③ 如果不合法,则通过throw异常,驳回保存动作。
3.2. 场景2
用于资源截图。
① 在监听保存过程时新建线程
② 在新建线程中,等待几秒确保主线程执行完毕
③ 执行截图
4. 实现步骤
1) 在插件包中新建一个Java类com.func.takeover.catalogtree.TreeSyncDemo,并且实现接口smartbi.catalogtree.ICatalogTreeListener。
2、配置新建的Java类,方式有如下两种:2) 配置新建的Java类,方式有如下两种:
(1)在插件包中新建Module类,具体请参考wiki文档:自定义Module 或者参考下面的示例插件包。在Module类的active方法中使用该段代码((CatalogTreeModule)catalogTreeModule).addCatalogTreeListener(new TreeSyncDemo());配置。
(2)编辑 Smartbi 服务器配置文件smartbi-config.xml,如下图红色框所示。在已有节点catalogtree下面新增子节点catalog-tree-listener,其属性为TreeSyncDemo类的全名com.func.takeover.catalogtree.TreeSyncDemo。
3、gif演示示例的源码请参考:3) gif演示示例的源码请参考:资源树同步.rar