1. 概述
1.1 版本
报表服务器版本 | 插件版本 |
---|---|
11.0 | V1.9 |
1.2 应用场景
简道云 是一款专业的数据收集和数据管理工具,通过在线的数据收集、数据分析、团队协作,让您可以 DIY 自己的数据管理平台。
通过安装「报表对接简道云插件」,可以将简道云中的数据通过 FineReport 抽取到私有库中。当简道云开启推送后,FineReport 会随着简道云的数据更新而更新。
1.4 方案对比
对比项 | 当前方案 | 新方案 | ||
---|---|---|---|---|
方案简介 | 本文方法,通过安装「报表对接简道云」插件实现,当简道云开启推送后,私有库中的数据会随着简道云的数据更新而更新 | 本文不做介绍 FineDataLink 产品 中的 简道云输入 算子,可定时获取指定简道云表单的数据
| ||
数据去向 | 只支持将数据同步到 MySQL 数据库中 | 可以将数据同步到三十多种数据源,具体为: 数据开发支持的数据源类型 表格中,支持「数据写入」的数据库 注:简道云输出 算子可将处理后的数据输出到简道云表单中,供简道云使用 | ||
支持的简道云 | 只支持公有云 | 支持公有云和独享版本 | ||
数据处理 | 简道云中的数据直接通过 FineReport 抽取到 MySQL 数据库中 | 1)支持对简道云数据进行调整和修改后再进行同步数据 2)支持可视化的解析 json 数组格式 | ||
运维 | - | 支持完备的 任务运维 和错误排查,如果出现了错误,可以进行失败重跑和排查 |
2. 前置准备
2.1 检查网络通信
1)请确保 FineReport 工程所在的服务器可以 ping 通云中心的地址:cloud.fanruan.com
2)建议确保FineReport 工程服务器地址支持外网访问
如果服务器在内网,需要配置一层转发,再转发服务器配置简道云网络白名单,具体简道云 ip 和域名可以联系 简道云技术人员
如果无法外网访问,数据推送会失败,失败超过100次后会自动关停数据推送,导致对接失效。
2.2 检查FineReport工程JAR包
检查工程/webroot/WEB-INF/lib目录下是否存在commons-codec-1.6.jar
如存在,请手动删除并重启工程
2.3 FineReport安装插件
点击下载插件:报表对接简道云插件
设计器插件安装方法参照 设计器插件管理
服务器安装插件方法参照 服务器插件管理
2.4 准备 MySQL 数据库
用户需要准备一个数据库表空间,用于数据存储。
仅支持MySQL类型数据库
推荐设置数据库默认字符集为utf8mb3(别称utf8)、默认排序规则为utf8mb3_bin(别称utf8_bin)
如果简道云表单数据包含emoji文件,MySQL字符集必须使用utf8mb4
请准备好数据库的IP、端口、表空间名称、用户名和密码
2.5 确认简道云版本
本文方案不支持免费/标准版简道云,API功能必须企业版及以上方可使用。
本文方案不支持私有化版本简道云。
如对接私有化版本简道云,数据同步时会报错:同步失败,请检查数据连接或网络连接
2.6 简道云创建 API Key
管理员登录简道云,点击「开放平台>密钥管理」。
点击「创建API Key」,并复制API Key,下文需要使用。
2.7 简道云表单开启数据推送
无论FineReport手动同步数据,还是简道云自动推送数据,都必须确保相关表单开启了数据推送功能。
功能介绍及使用说明参见简道云帮助文档:数据推送
1)在表单编辑界面,点击「扩展功能>数据推送」,点击「新建数据推送」。
2)选择目标服务器:FineReport服务器
3)输入服务器地址:地址格式:http://主机名:端口/工程名/decision/view/report?op=fs_jdy
请填写外网可访问的地址,并点击「服务器连接测试」,确保可连通。
否则推送失败超过100次后,会自动关闭该数据推送。
注:如报错「禁止向保留地址发送API请求」,请检查是否满足2.1节网络通信要求。
4)按需选择推送事件
5)点击「保存」即可
3. FineReport同步简道云表单数据
3.1 配置关联第一次同步数据
1)管理员登录FineReport系统,点击「管理系统>简道云对接>数据同步」,
2)点击「配置关联」,填写相关信息,点击「开始连接」即可
简道云密钥:填写 2.6 节获取的 API Key
私有库:填写2.4节准备的 MySQL 数据库信息,其中地址格式为:jdbc:mysql://IP:端口号/<数据库名>
注:若配置关联时报错 参数不正确 。请检查简道云密钥是否填写正确。
3)连接成功后,显示2.7节所有开启了数据同步到该FineReport工程的表单。
4)点击「开始同步」,耐心等待提示「同步成功」即可。
3.2 自动推送表单
当表单出现变化时,简道云系统会自动将表单变化推送给FineReport系统。
此操作基于2.7节配置好的数据推送,在设定的数据变动情况下,即会自动推送数据给FineReport。
3.3 手动同步表单
管理员可手动触发从简道云到数据决策系统的数据同步。
管理员登录FineReport系统,点击「同步表单」/「同步表单数据」按钮,即可手动触发同步简道云数据到数据决策系统。
同步表单:同步表结构的变化,包含数据库表的增删改和表字段的增删。
同步表单数据:同步表内容的变化,包含表内容的增删改。
4. 管理数据同步
4.1 入库数据说明
1)简道云表单数据同步到MySQL数据库中,有些表包含额外字段
_childid字段:表示子表单的 id
_id字段:表示父表单的 id
2)如果简道云表单数据包含数组,FineReport会自动转化成字符串,用","分隔。
4.2 修改私有库表名
对于同步到MySQL数据库的表名称,支持自定义修改。
1)双击私有库表名,即可重命名。
2)重命名后,需要对该表单进行「同步表单数据」。
注:如在简道云端关闭数据推送,会删掉数据库中同步表的记录,再次开启推送时会重新按照默认规则生成表名。
4.3 运行监控
在「运行监控」页:
可监控表结构的变化,包含数据库表的增删改和表字段的增删
不记录具体表数据的变化
5. 更多功能
5.1 解析子表单
如果有子表单,报表对接简道云插件 V1.5 及之后的版本支持解析子表单,如下图所示:
5.2 配置存储
1)私有库相关的配置信息存储到 jdyconfig.xml 中,xml在插件所处文件夹下,例如:/WEB-INF/plugins/plugin-com.fr.plugin.third.integrate.jdy-1.0/jdyconfig.xml
2)表单和表名的对应关系存储到数据库里(同步的 MySQL 数据库里)
在私有库配置成功后,数据库中新增表JDY_CONFIG(如果已存在则加数字编号,从 0 开始),表结构如下:
字段 | 含义 |
---|---|
id | 主键 |
jdyformid | 简道云表单 id |
jdyformname | 简道云表单名称 |
frtablename | FineReport 私有库表名称 |
3)表字段的 ID 和实际名称的对应关系存储到数据库(同步的 MySQL 数据库里)
数据库中新增表 JDY_FIELD_CONFIG(如果已存在则加数字编号,从0开始),表结构如下:
字段 | 含义 |
---|---|
id | 主键 |
jdyformid | 简道云表单 id |
jdyfieldid | 简道云字段 id |
jdyfieldname | 简道云字段名称 |
表JDY_FIELD_CONFIG 中存在以下固定字段 ID:
字段 ID | 含义 |
---|---|
creator | 提交人 |
updater | 修改人 |
deleter | 删除人 |
createTime | 提交时间 |
updateTime | 更新时间 |
deleteTime | 删除时间 |
flowState | 流程状态 |
ext | 扩展字段 |