历史版本34 :Web页面集成常见问题 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineBI 版本JAR 包版本功能变动
5.1--
2020-08-04单表更新和业务包更新支持设置全量&增量更新
5.1.52020-09-02单表更新和业务包更新接口中将使用「业务包名」参数变更为「业务包 ID」
5.1.72020-11-05新增查询更新情况接口

1.2 应用场景

FineBI 是基于 B/S 架构的浏览器/服务器模式,现在用户开发的系统基本上趋向于 B/S 架构的浏览器/服务器模式,因此有些页面完全可以直接采用 Web 页面嵌入式集成的简易方式完成集成。

通过集成,用户从自己的系统通过链接使用浏览器访问 FineBI 的服务器,从而在自己系统内调用 FineBI 的 Web 页面。

1.3 功能简介

集成通常有两种方式:

  • 直接使用 URL 链接

  • 通过 JS 调用 JSON 来获得分析模板。

本章提供各部分的 URL 链接接口以及 JSON 格式的 API 。

FineBI 在嵌入式集成时一般分为两步:获取 Token 和调用其他相关 API ,详情请参见: Web页面简单集成例子 。

注1:由于平台安全限制,FineBI 在集成时需要将「管理系统>安全管理>安全防护」中的 Security Headers 关闭才可跨域。 

注2:以下接口均支持跨域,且跨域与不跨域的返回值均一致。

2. 普通接口编辑

更多接口介绍可参见:在线接口文档

2.1 仪表板

2.1.1 仪表板列表

接口名称接口描述更多介绍
新建仪表板使用该接口可以新建一个仪表板新建仪表板
删除仪表板通过调用该接口,用户可以删除已经创建好的仪表板删除仪表板
重命名仪表板通过调用该接口,用户可以修改已经创建好的仪表板的名称重命名仪表板
仪表板另存为使用该接口可以另存一个仪表板仪表板另存为
当前目录下仪表板和目录列表通过调用该接口,查询当前目录下仪表板和目录列表当前目录下仪表板和目录列表
获取一组仪表板的目录信息通过调用该接口,查询当前一组仪表板的目录信息获取一组仪表板的目录信息
获取「模板管理」节点下所有模板相关信息通过调用该接口,可以获取模板管理节点下所有模板相关信息仪表板管理节点所有仪表板信息
创建公共链接通过调用该接口,可以创建公共链接创建公共链接

2.1.2 用户信息

使用该接口可以获取当前用户的所有详细信息,目前包括 departs、roles、users、reports,接口为:/v5/api/dashboard/user/info。详情请参见:当前用户所有详细信息

2.1.3 仪表板

接口名称接口描述更多介绍
仪表板导出 Excel
通过调用该接口,可以导出当前仪表板的 Excel仪表板导出Excel
仪表板导出 PDF通过调用该接口,可以导出当前仪表板的 PDF仪表板导出 PDF
仪表板生成图片
通过调用该接口,使当前仪表板生成图片仪表板生成图片接口

2.1.4 分享

接口名称接口描述更多介绍
取消分享用户可以将某个用户对的仪表板分享取消取消分享
分享仪表板给其他用户
包括管理员在内的用户访问分享仪表板接口,通过调用该接口,可以分享仪表板给多个用户分享仪表板给其他用户
分享给我的所有仪表板
通过调用该接口,返回分享给我的所有仪表板信息分享给我的所有仪表板
仪表板分享给哪些用户通过调用该接口,返回仪表板分享的用户列表仪表板分享给哪些用户

2.2 Spider-数据准备

2.2.1 更新

接口名称接口描述更多介绍
触发全局更新

通过调用该接口,触发全局更新

注:2020-11-05 及之后的JAR,返回数值中有更新实例 id

触发全局更新
触发单表或业务包更新

通过调用该接口,触发单表或业务包更新

注:2020-11-05 及之后的JAR,返回数值中有更新实例 id

触发单表或业务包更新
查询更新情况接口

通过调用该接口,可查询更新情况

URL:/v5/api/conf/update/instance/更新实例 id

注:该接口适用于 2020-11-05 及之后的 JAR;更新实例 id 示例:「b58924f1-5141-44a8-9122-fb635b4cd599」

获取此次更新实例的信息

「触发单表或业务包更新接口」不同版本说明:

接口:/v5/api/conf/update/pack/table?info=xx

请求方式:GET

1)业务包更新

请求示例:

localhost:37799/webroot/decision/v5/api/conf/update/pack/table?info={"packageName":"业务包"}

参数说明:

参数
版本说明示例
info2020-01-15 及之前的版本需要更新的业务包信息{"packageName":"业务包"}
2020-08-04 版本
2020-09-02 版本{"packageId":"业务包ID"}

2)单表更新

请求示例:localhost:37799/webroot/decision/v5/api/conf/update/pack/table?info={"packageName":"业务包","tableName":"产品销售表"}

参数说明:

参数版本说明示例
info2020-01-15 及之前的版本需要更新的表信息{"packageName":"业务包","tableName":"表转义名"}
2020-08-04 版本{"packageName":"业务包","tableName":"转义名","fullLoad":"false"}
2020-09-02 版本{"packageId":"业务包ID","tableName":"转义名","fullLoad":"false"}

注:fullload 参数为 false 表示增量更新,true 为全量更新,不填改参数默认为 true 。

2.2.2 表

接口名称接口描述更多介绍
添加表
通过调用该接口,添加表数据添加表
获取数据集通过调用该接口,获取数据集的信息获取数据集
删除表通过调用该接口,删除当前表删除表

2.2.3 业务包

接口名称接口描述更多介绍
在分组下默认添加业务包通过调用该接口,在分组下添加业务包在分组下默认添加业务包
获取业务包信息通过调用该接口,获取当前业务包的信息获取业务包信息
重命名业务包通过调用该接口,对业务包进行重命名重命名业务包
删除业务包通过调用该接口,删除业务包删除业务包
根据业务包ID获取业务包信息通过调用该接口,查询业务包信息根据业务包ID获取业务包信息
根据业务包名获取业务包信息通过调用该接口,查询业务包信息根据业务包名获取业务包信息

2.2.4 业务包分组

接口名称接口描述更多介绍
分组重命名通过调用该接口,对分组进行重命名分组重命名
删除分组通过调用该接口,删除当前分组删除分组
添加分组通过调用该接口,在根目录添加分组
添加分组
获取所有业务包分组信息通过调用该接口,获取用户可见的所有的业务包分组信息获取所有业务包分组信息

很多用户为了统一门户,往往会把 FineBI 的后台管理页面集成到自己的系统中,本章提供 FineBI 支持的页面集成接口。

提示:使用平台功能外部集成插件可实现BI的左侧导航和顶部导航去掉,实现集成一体化

3. 页面集成接口编辑

3.1 示例

以将数据决策系统的「模板管理页面」集成到用户系统为例。

以管理员身份进入数据决策系统,访问链接:http://localhost:37799/webroot/decision/dashboard/management ,如下图所示:

1609989614852011.png

以管理员身份进入数据决策系统,其中每个接口调用方法为访问:http://ip:端口/工程名/decision/接口调用

支持单独页面集成的管理菜单范围如下表所示:

管理菜单接口调用备注
模板管理/dashboard/management-
目录管理/directory-
用户管理/user-
权限管理/privilege-
定时调度/timer

无全局设置

注:5.1.5 版本,2020-09-02 及之后的 JAR 支持调用该接口

3.2 没有页面访问权限

问题描述:

用户以非管理员身份进入数据决策系统后,访问:http://IP:Port/webroot/decision/接口调用 ,出现如下报错:

1574315163723542.png

解决方案:

需要获得该页面的权限,请参考 分级权限分配

4. 注意事项编辑

4.1 获取业务包ID

业务包名称和 ID 值保存在 FineDB 数据库的 fine_conf_entity 表中,字段ID及字段值介绍如下表所示:

IDVALUE
DirectPackageConfStore.mapHolder.[packageId].name业务包名称(Unicode)
DirectPackageConfStore.mapHolder.[packageId].packId业务包ID

查看业务包 ID 步骤如下所示:

1)新增 FineDB 数据连接,具体可参考:FineDB 数据库简介 的 2.4 节内容。

2)新建服务器数据集,SQL语句为:SELECT *FROM fine_conf_entity where ID like 'DirectPackageConfStore.mapHolder%' and ID like '%name'

如下图所示:

1615795770530096.png

3)预览新建的 SQL 数据集,可查看业务包 ID 。如下图所示:

1615795876617210.png

4.2 服务器不支持 JSON 下的 URL

因为 FineBI 中 URL 传递 JSON 对像,若有些服务器不支持 JSON 的 URL ,就需要把 JSON 类型的 URL 参数值先进行编码encodeURIComponent()。

例如:

dir={"name":"新建仪表板12","catalog":[]} 需要改为:
encodeURIComponent(JSON.stringify({"name":"新建仪表板12","catalog":[]}))

编码显示为:

dir=%7B%22name%22%3A%22%E6%96%B0%E5%BB%BA%E4%BB%AA%E8%A1%A8%E6%9D%BF12%22%2C%22catalog%22%3A%5B%5D%7D

4.3 返回错误码

在进行系统集成时,如果后台有错误,会返回错误码(errorCode),具体异常码定义可以参考 系统错误码说明 

4.4 拒绝了我们的连接请求

问题描述

FineBI 通过 iframe 页面嵌入到其他页面中报错:xxx拒绝了我们的连接请求,如下图所示:

1615792154478184.png

解决方案

管理员进入平台,点击「管理系统>安全管理」,关闭点击挟持攻击防护按钮。如下图所示:

1615792311562399.png