1. 概述
1.1 应用场景
在实际使用过程中存在需要将 FineReport 工程集成到 FineBI 数据决策系统上使用的情况。
本文将介绍将 FineReport 集成到 FineBI 的步骤。
1.2 功能简介
将 FineReport 集成到 FineBI ,可以将这两个软件合并成一个整体的系统,应用服务只需维护一套。
FineReport 集成到 FineBI 后,统一 FineBI 和 FineReport 的用户、权限体系、门户以及管理系统,用户登录时只需要登录一个平台。
具体流程如下图所示:
注:用户不想把 FineReport 集成到 FineBI 中,又希望可以统一门户进行访问时,可参见:FineBI与FineReport连接工具插件
2. 准备工作
2.1 服务器配置推荐
参考 FineBI服务器配置推荐 ,如内存消耗大可以在 FineBI 需求内存的基础上增加。
2.2 版本适配
在实际操作前,请确保 FineBI 和 FineReport 版本兼容。版本兼容情况详情参见:FineBI 与 FineReport 版本适配说明
注:FineBI4.1 暂时不能升级至 5.0,待后续更新,目前仅能新安装 5.0 版本。
2.3 确定报表模块版本
注1:不仅需要大版本匹配,小版本 JAR 日期也需要一致,否则可能存在问题。
注2:如果实际安装的 FineReport 版本与 FineBI 版本不一致需要升级,详情参见:FineReport 升级指南 、升级指南索引
2.3.1 确定 FineBI 版本
管理员登录数据决策系统,选择「管理系统>注册管理」,查看报表模块版本。如下图所示:
2.3.2 确定 FineReport 版本
FineReport 版本可在设计器或者平台中查看。
设计器中查看:
打开 FineReport 设计器,点击「帮助>更新升级」,查看当前 FineReport 版本,如下图所示:
平台中查看:
以管理员身份进入平台,点击「管理系统>注册管理」,查看当前 FineReport 版本,如下图所示:
2.4 确定工程是否配置外接数据库
若在集成前,FineReport 配置了 配置外接数据库 ,集成后仍使用该外置库,则需要复制%FR_HOME%\webapps\webroot\WEB-INF\config的 db.properties 到 FineBI 对应位置,内置库不用进行此步骤。
若 FineBI 配置了外接数据库,集成后仍使用该外置库,无需其他操作。
2.5 确定工程 lic
在集成前需要删除 FineReport 、FineBI 的 license ,集成后再添加包含 FineReport 、FineBI 双方功能注册点的新 license ,或等集成后替换上新 license 。查看 lic 步骤如下图所示:
3. 操作步骤
3.1 不同情况下具体步骤
如下表所示:
保留配置 | FineBI | FineReport | 具体步骤 |
---|---|---|---|
FineBI 配置 | - | - | 参考本文 3.2 节步骤 |
FineReport 配置 | 没有用户做的仪表板 | - | 参考本文 3.2 、3.3 节步骤 |
存在用户做的仪表板 | 参考本文 3.2 节、3.3 节、3.4 节步骤 |
需要注意以下两点:
集成只能保留两个工程其中一个的配置。若保留 FineReport 的配置,则 FineBI 的配置全部丢失,包括仪表板配置。
若需要保留 FineReport 的配置,同时保留 FineBI 的仪表板和数据表,需要在集成步骤开始前,将需要保留的 仪表板挂出,通过 资源迁移 先导出仪表板和数据集,具体请参见本文 3.4 节。
FineReport 集成 FineBI 后,数据决策系统默认使用 FineBI 的端口号。例如在集成前 FineReport 数据决策系统端口为 8075,FineBI 数据决策系统端口号为 37799 ,则在集成后工程默认使用 37799。
3.2 必须操作
3.2.1 拷贝主工程 JAR 包
确保 FineBI 和 FineReport 的 JAR 包同步之后,将 FineReport 安装目录%FR_HOME%\webroot\WEB-INF\lib下的所有 JAR 包拷贝至 FineBI 工程目录的%FineBI%\webroot\WEB-INF\lib文件夹中「若有相同的 JAR 包,保留原先 FineBI 里的不替换」,如下图中所示:
注:若原 FineReport 工程的 %FR_HOME%\webroot\WEB-INF\lib 文件下存在驱动,集成的时候需要判断集成后使用的数据连接需要哪种驱动,从而保留对应版本。
3.2.2 拷贝插件包
将 FineReport 安装目录%FR_HOME%\webroot\WEB-INF\plugins下的所有文件拷贝至 FineBI 目录%FineBI%\webroot\WEB-INF\plugins下,若有相同的文件,保留 BI 的不替换。如下图所示:
3.2.3 拷贝 FineReport 的 phantomjs 到 FineBI 对应目录
注:2020-04-26 及之后的 FineReport 版本不需要此步骤。
将 FineReport 目录%FR_HOME%\webroot\WEB-INF\assist下拷贝文件夹 phantomjs 至 FineBI 对应目录下,若不进行此操作,使用到 FineReport 的图表导出和定时调度中含有图表时,图表会无法显示。如下图所示:
3.3 选择性操作
以下操作需要根据客户的需求,保存 FineReport 还是 FineBI 的 embed、logs、resources 文件夹来进行操作。文件夹详细介绍请查看 FineBI 工程目录结构
3.3.1 embed文件夹
embed 文件夹里面存储了数据决策系统中平台配置信息,包含内置数据库 FineDB 、模板定时任务信息等。
注:管理系统界面下的所有配置信息都保留在 embed 中,替换 FineReport 的 embed 时全部替换为 FineReport 的数据,不存在只替换某个子目录如「用户管理」为 FineReport 的数据。
将 FineReport 安装目录%FR_HOME%\webroot\WEB-INF 下的 embed 文件夹拷贝至 FineBI 目录%FineBI%\webroot\WEB-INF内替换 FineBI 原先的文件夹。若想保留 FineBI 的设置信息,则这一步可不操作,即不替换 embed 文件夹。
3.3.2 logs 文件
logs 文件夹是 FineBI 日志监控开启之后保存日志的内置数据库。
若想保留 FineReport 系统中的日志数据,则需要将 FineReport 安装目录%FR_HOME%\webroot下的 logs 文件夹拷贝至 FineBI 目录%FineBI%\webroot内替换原先的文件夹。若想保留 FineBI 的日志信息,则这一步可不操作,即不替换 logs 文件夹。
3.3.3 resources 文件
resources 文件夹保存了报表信息、配置信息等。
若想要在集成后保留原先 FineReport 中的此类数据,可参考 FineBI 工程目录结构 查看配置文件详细介绍,将想要保存的配置文件从 FineReport 安装目录%FR_HOME%\webroot\WEB-INF\resources中拷贝至 FineBI 目录%FineBI%\webroot\WEB-INF\resources内替换即可。
3.3.4 chartmapsvg 文件
若 FineReport 工程中包含 旧地图模板 ,集成时,需将 FineReport 工程下%FR_HOME%\webapps\webroot\WEB-INF\assets\chartmapsvg文件夹拷贝至 FineBI 对应assets目录下。
3.4 既要保留 FineBI 的表和仪表板,又保留 FineReport 配置
1)若需要保留 FineReport 的配置,同时保留 FineBI 的仪表板和数据表,可以在集成前,将需要保留的 仪表板挂出,通过 资源迁移 先导出仪表板和数据集。
2)参考本文步骤集成后,删除 %FineBI%\webroot\WEB-INF\dashboards 文件夹,如下图所示:
3)建立与原 FineBI 中完全一致的数据连接,再进行 资源导入
3.5 效果展示
具体效果如下所述:
若保留 FineBI 的配置,FineBI 工程没有变化。
若保留 FineReport 的配置,平台「目录」节点上的模板为 FineReport 的模板,管理系统中的目录管理、用户管理、权限配置、定时调度等,为 FineReport 的配置。
FineReport 集成到 FineBI 后,数据处理在 FineBI 中进行;FineReport 工程可以继续作为独立的 FineReport 工程使用。
示例:集成前 FineReport 工程有个名为 a 的定时调度任务,FineBI 工程有个名为 b 的定时调度任务,若保留 FineReport 配置,集成后,b 被 a 覆盖。
注:使用 平台功能外部集成插件 可实现BI的左侧导航和顶部导航去掉,实现集成一体化。
4. FineBI 中使用 FineReport 模板
因为 FineReport 不为空,原先在 FineReport 中已制作的报表在集成到 FineBI 中显示给出详细说明。
1)FineReport 的模板路径%FR_HOME%\webroot\WEB-INF\reportlets中将需要展示的报表拷贝至 FineBI 工程目录%FineBI%\webroot\WEB-INF\reportlets中。拷贝 FineReport 的报表 GettingStarted.cpt 至 FineBI 中,如下图所示:
2)需要在 FineBI 中添加 FineReport 已制作报表使用到的数据连接,且数据连接名称要相同,配置方法可参考 配置数据连接
配置数据连接时也可以直接使用资源迁移功能将 FineReport 数据连接导出,再导入到 FineBI 中去,但这个功能有版本要求,具体说明如下:
工程 | 版本 | 功能文档 |
---|---|---|
FineBI | 5.1.12 及以上 | 资源迁移数据连接 |
FineReport11.0 | 都可 | 资源迁移数据连接 |
FineReport10.0 | 10.0.15 及以上 | 资源迁移数据连接 |
3)登录 FineBI 数据决策系统,在「管理系统>目录管理」中选择添加模板,如下图所示:
4)选择之前拷贝过去的报表模板,如下图所示:
5)点击下一步设置模板显示的名称、描述等,点击确定完成设置。如下图所示:
6)点击确定后刷新页面,即可在目录节点看到添加的 FineReport 报表。如下图所示:
注:在集成时,FineReport 与 FineBI 的 License 需统一,统一使用 FineBI 的 license 。
5. 注意事项
5.1 BI 仪表板中图片丢失
问题描述
用户将 FineBI 集成到 FineReport 后,FineBI 原有图片丢失。
解决方案
FineBI 图片组件上传的图片,保留在assets/temp_attach中,集成后若发现丢失,拷贝该文件夹内容到 FineReport 对应文件夹下。