页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

        此文档说明如何在Smartbi中实现自定义JavaeBean示例。


   在项目的使用过程中,有一些数据不能直接从关系或者多维数据库中获取,可能需要从另外一些途径获取又或者需要一些特殊的处理。
Smartbi中的查询和多维分析无法完成此功能,因此提供了Java查询二次开发接口允许项目进行定制性的开发。 为了应对这种需求,Smartbi
提供了一个可以根据需要扩充的Java查询方式,可以根据实际情况开发来满足您的需求。在项目的使用过程中,有一些数据不能直接从关系或者多维数据源中获取,可能需要从另外一些途径获取又或者需要一些特殊的处理。
   Smartbi中的基于关系数据源的数据集、多维数据集和多维分析都无法完成此功能,因此提供了Java查询二次开发接口允许项目进行定制开发。 为了应对这种需求,Smartbi提供了一个可以根据需要扩充的Java查询方式,可以根据实际情况开发来满足您的需求。

  本方案是在Smartbi中添加自定义的Java查询类,并使Smartbi正确的展示数据的过程。 下面讲解一下具体的实现步骤:

  1. 按照开发扩展包的说明,新建扩展包项目MyJavaQueryProj,如果是使用cmd脚本创建,配置如下图:


  2. 解压smartbi.war到临时目录

  3. 将临时目录中的/WEB-INF/lib/smartbi-FreeQuery.jar、smartbi-Common.jar等smartbi依赖包复制到扩展包项目MyJavaQueryProj的lib-compile目录,并添加该目录下所有jar为项目的依赖包(如果要添加的jar不是smartbi.war中的jar,但是自定义javabean需要使用,则需要将jar包复制到MyJavaQueryProj的src/web/META-INF/lib目录,该目录下的jar在打包扩展包时将一同打包

  4. MyJavaQueryProj项目中新建一个类com.proj.MyJavaQuery,并实现接口IJavaQueryData.ISimpleData(该接口声明返回该类返回的数据量比较少,Smartbi会自动读取所有数据并支持计算字段、排序、聚合、条件的功能)

  5. 编译项目,运行/MyJavaQueryProj/build.xml将项目打包为扩展包MyJavaQueryProj.ext,如下图

    注:Eclipse等IDE编译用的JDK必须与Smartbi服务器运行的JDK使用同一个版本



  6. 执行后刷新MyJavaQueryProj项目,可以看到新增一个dist目录,目录下MyJavaQueryProj.ext文件就是生成的扩展包


  7. 按照扩展包部署的方法,部署MyJavaQueryProj.ext到smartbi

  8. 重启smartbi应用服务器

  9. 在【定制管理】→【数据管理】的“数据源”节点右键新建Java数据源

  10. “Java数据源”上右键“新建Java查询对象”在类名中输入正确的Java查询实现类全名(如com.proj.MyJavaQuery)并获取默认配置,可自定义修改配置

    修改文件名配置为E:\test.csv


  11. 点击获取参数与结果集并保存


  12. 保存后就可以在【定制管理】→【数据集定义】的“Java查询”中使用对应的Java查询对象新建Java查询,拖动Java查询字段到表达式编辑器,然后保存Java查询

  13. 保存Java查询到指定目录后,可以基于java查询新建分析

...