web页面嵌入式集成

编辑
文档创建者:夏娃 (67727 )     浏览次数:14275次     编辑次数:52次     最近更新:doreen0813 于 2018-08-31     

1、API嵌入集成编辑

1.1 描述
FineBI是基于B/S架构的浏览器/服务器模式,现在用户开发的系统基本上趋向于B/S架构的浏览器/服务器模式,因此有些页面完全可以直接采用web页面嵌入式集成的简易方式完成集成。通过集成,用户从自己的系统通过链接使用浏览器访问FineBI的服务器,从而在自己系统内调用BI的web页面,来实际嵌入式集成。这种集成通常会有两种方式:一种是直接使用URL链接,另一种方式是通过js的调用json来获得分析模板。下面先提供各部分的URL链接接口、json格式的API。
1.2API插件
FineBI的各种接口开放是以插件的形式来实现的,同时通过插件来实现跨域的集成。因此在集成前,要在FineBI的系统中,安装API插件。
FineBI版本    插件下载地址
  4.0.2  fr-plugin-bi-open-api-4.0.zip
  4.1  fr-plugin-bi-open-api-4.1.zip
下载好后,在BI管理系统的插件管理中,选择本地安装即可。安装完成,重启BI服务器。

2、公共API编辑

1)登录API
API:?op=api&cmd=bi_login&bi_username=name&bi_password=password&callback=myfunction,
其中bi_username=name与bi_password=password中“name”、“password”是用户名与密码,在浏览器上以此API可以返回值为“Login success”如下图:

222
注:当前的URL是由“布署路径”+“接口”;其中“布署路径”通常为http://localhost:端口号/工程名/ReportServer,“接口”为 ?op=fr_bi&cmd=bi_init&id=9&createby=-999#  
以下均相同,不再赘述。

2)模板分析
1. URL界面
API:?op=fr_bi&cmd=bi_init&id=模板id&createBy=创建者id
单个模板分析通常会被集成到门户网站上,集成模板分析的API可以直接使用URL通过iframe框架来集成。其URL可以直接在仪表板节点获取,如下图,进入仪表板节点,将鼠标悬浮在指定模板上,选择复制链接即可。
222
获取的链接如:http://localhost:37799/WebReport/ReportServer?op=fr_bi&cmd=bi_init&id=25&createBy=9,模板id为25,创建者id为9,其对应API即为
?op=fr_bi&cmd=bi_init&id=25&createBy=9


3)新建仪表板(用户需要有BI编辑权限)
新建FineIndex模板API:?op=api&cmd=add_report&reportName=NewReport&realTime=false
其中repoartName为参数,NewReport为新建仪表板的名子。在浏览器上以此API访问,返回值为“reportId”
222
若用户无BI编辑权限而使用该API接口,会提示没有权限,如下图:
222
此处创建的为FineIndex模板,若要创建FineDirect模板,其API为?op=api&cmd=add_report&reportName=NewReport&realTime=true,详细请参考FineDirect实时模板集成


4) 仪表板下“我创建的”(4.0.2版本为“我创建的”)
1. 界面
API:?op=api&cmd=get_page_created_by_me
我创建的是指当前用户创建的所有即时分析都会显示在我创建的列表中。
其效果如下:222
2. JSON返回值
API:?op=fr_bi&cmd=get_folder_report_list(可跨域调用的API为?op=api&cmd=get_folder_report_list
在浏览器上返回当前登录用户的我创建的模板分析的详细信息(包括文件夹和模板),其中还包括该模板的分享信息。如下图:
222

3、仅非管理员API编辑

6) 分享模板

API:?op=api&cmd=share_report&createBy=1&reports=1,2&users=2,3
分享模板的是指其他用户将即时分析分享给当前用户。
其中参数:createBy =创建者id,reports= 模板id数组,users= 分享到的用户id数组,其返回结果“"result":"success"”如下图:
222
注:分享模板这个功能只有非管理才能有,因此只有在非管理员的界面才会有。

7)分享给我的
API:?op=api&cmd=get_shared_to_me_reports
分享给我的是非管理员特有的,是非管理员之间分享模板后,将分享模板放置的文件目录。
通过该API可以获得得当前用户的所有分享模板的信息。如下图:

222

8)已分享模板
API:?op=api&cmd=get_shared_users_by_report&createdBy=模板创建者ID&reportId=模板ID
当然某张模板被分享给不同的人,也可以通过API来获得。
通过该API可以获得,该ID的模板被分享给哪些人。其中参数为:createByID和reportid;效果如下图:该模板id为19,创建人ID为41;该模板的分享信息为如下图:

222
注:其中模板ID与创建人ID可以通过当前人我创建的API获得。

4、仅管理员可用API编辑


9)模板管理(4.0.2版本为所有模板)
在管理员界面,管理员可以通过“所有模板”来管理整个平台所有用户设计的模板分析。
1. 界面
API:?op=api&cmd=get_page_all_reports
效果如下图:
222
2. JSON
JSON的格式的API:?op=api&cmd=get_all_template_4_admin
其返回值为所有模板信息,如下图:
222

其中获取的模板信息中,createBy表示模板的创建者;lastModify表示模板最后的修改时间,为毫秒;op=fr_bi&cmd=bi_init&id=76&createBy=-999表示模板的链接信息;description表示模板描述信息(为true表示直连的模板);pId表示父节点的ID(文件夹的ID);id表示模板的ID;text表示模板的名称;value与id一样,也是表示模板的ID;status表示模板的挂出状态,1表示申请挂出,2表示已挂出,3表示正常状态。


10)模板管理信息
API:?op=api&cmd=get_all_reports_data
在集成的时候,用户想要获取管理系统下的模板管理信息,比如普通用户创建的模板、用户、部门职位、角色等信息时,可以通过该API接口返回json值来获取。如下图:
222

11)报表管理目录
API:?op=fs_main&cmd=module_getrootreports&id=-1
除了可以通过输入模板id返回模板信息外,我们还可以通过此接口获取到报表管理目录的url。效果查看:
222

12)数据配置界面
API:?op=fr_bi_configure&cmd=init_configure_pane
数据配置是BI数据管理的核心界面,即是业务包的管理界面,当前我们的业务包管理界面可以直接通过URL来集成进来。效果如下图:
222


13)全局更新
API:?op=api&cmd=update_cube
FineIndex全局更新,顾名思义,是指FineIndex中的数据全部都更新一遍,包括所有业务包中的所有的表和字段,以便于直接集成到自己的系统中进行全局更新操作。其返回值结果为:function({"result":"global cube updated success!"});如下图:

222
注:在url后面加上&bi_username=用户名&bi_password=密码,可实现在非登录情况下全局更新。 

14)单表更新
API:?op=api&cmd=update_cube&packageName=业务包名字&tableName=转义名
单表更新,顾名思义,就是说FineIndex更新时,单独将其中某一张表进行更新,其他表不更新。除了在“单表更新设置”中进行更新外,FineBI还开了相应的接口以便于直接集成到自己的系统中进行单表更新操作。
URL访问地址如下:
222
注:(1)单纯只有packageName时,则是对当前业务包中所有表进行更新。
       (2)在url后面加上&bi_username=用户名&bi_password=密码,可实现在非登录情况下单表更新。
       (3)这里的单表更新是默认做的全量的更新,不做增量更新。

15)单个模板的详情
API:?op=api&cmd=get_template_by_ids&ids=[{reportId: 1, createBy: -999}]
管理员可以通过单个模板的模板ID与创建人的ID可以获得当前模板的详细信息。效果如下图:
222
16)获取所有业务包名字和表名字
在做集成的时候,不能自己一个个手动输入业务包名字或者表的名字来做相应的单表更新,因此FineBI提供了如下两个接口来获取到这些信息。
1. 获取所有的分组的名字,以及对应业务包的名字:
API:op=api&cmd=get_groups_packages_tables_trans&bi_username=${SYS_USER}&bi_password=${SYS_PASSWD}
其中${SYS_USER}和${SYS_PASSWD}对应管理员账号和密码,管理员通过该接口获取所有业务包的详细信息。效果如下图,key是'packages'的对应value既为业务包。
222

2. 获取某个业务包之下所有表的名字(转义之后的名字)以及表id:
API:op=api&cmd=get_all_tables_of_one_package&packageName=${pkgName}&bi_username=${SYS_USER}&bi_password=${SYS_PASSWD}
其中${pkgName}、${SYS_USER}、${SYS_PASSWD}分别对应业务包名字、管理员账号和密码,如下图,既为获取的销售DEMO业务包下的所有表的名字及id:
222
注:该API接口需FineBI4.1版本才能支持。

5、总结编辑

1、FineBI操作细分的四个部分:创建业务包、新建仪表板、我创建的和分享给我的中,一般来说,只有创建业务包才是管理员操作,其他的三项是非管理员操作,因此在使用API进行集成的时候要注意创建业务包API链接节点只能对管理员可见,如果对其他用户可见,那么,该用户登录系统之后,点击节点,不会有任何反应,如果一定要给其他用户以创建业务包的权限,首先需要将配置BI数据源的权限给该用户。
注:FienBI4.0.2以上版本中,用分级权限功能分配给次级管理员的部分管理员权限暂不支持接口集成。
2、上述所有接口中的${servletURL}表示http://localhost:端口号/工程名/ReportServer,如果用户系统跟FineBI在同一系统中,可以使用FR.ServletURL获取,如果FineBI也是用户系统,那么可以直接使用${servletURL},否则,需要写绝对路径。
具体实例可参考Web页面简单集成例子


注:FineDirect直连实时模板集成请参考FineDirect实时模板集成

附件列表


主题: 管理系统
标签: 暂无标签 编辑/添加标签
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

本文档是否有用?