商业智能(BI)已广泛应用于用户的实际业务流程中。倘若 BI 作为独立的应用平台加以运用,那么用户在日常使用业务系统(如 CRM/ERP/OA 等)时,就得频繁切换不同系统。繁琐的登录流程以及应用系统的切换,会致使业务思考的中断,效率降低。这不仅不利于 BI 在企业内部的推广,也难以实现 IT 应用管理平台的统一。
所以,将低门槛的数据分析操作功能以及已完成的看板结果直接置于业务系统程序的 UI 中,便能确保业务用户数据洞察的连续性和可用性。
本文将通过业务应用的实际操作案例剖析,来帮助大家达成如下业务场景。
张小明同学希望在自己的运营平台上接入BI的可视化分析能力,能够在运营平台上通过点击、拖拽等页面交互方式便可以快速生成可视化图形,获取数据洞见。
经过调研后决定集成DataWind平台,将自己的数据源通过数据准备导入到DataWind中作为数据集,并在运营平台上嵌入该数据集的可视化查询页面。之后可以直接在运营平台上直接做数据拖拽分析,极大地提高了数据分析效率。
王小红同学想要建立运营数据看板并分享给不同的地区经理,希望不同的地区经理只看到本地区数据。并且这些数据看板可以集成到地区经理最常用的CRM系统之中。
小红发现DataWind能够满足制作数据看板的诉求,并且DataWind的行权限、自定义筛选器也能满足平台对数据权限控制的需要,也可以快速集成到自己的CRM系统中,最后决定使用嵌入DataWind仪表盘的方式搭建运营数据看板。
李小华同学需要对海量的商品交易记录进行查询。他希望使用这样一款查询工具:具备对海量明细数据的查询能力、支持丰富的筛选操作、能够配置表格和单元格样式、必要时可以对表格列的字段公式进行改写。确认DataWind满足需要后,李小华在DataWind上建立了明细数据报表并将其嵌入到商品交易管理系统中,让每个相关运营同学都能快速查询获得想要的数据结果。
为了最方便快捷实现集成,可以通过Iframe的方式对接,操作方式如下。
该操作需要开发人员完成,主要操作步骤如下所示:
Step 1.获得目标仪表盘/图表的URL链接
Step2.链接修改
Step3.生成代码
说明
该开发人员建议在需要操作的项目中赋予项目管理员权限,完成后再根据实际情况赋予权限。
如图在列表页选择查看,打开之后复制浏览器URL即可
选择自行拼接,则按照如下方式进行,划下划线内容是变量,在如下参数详解要解释的,其他为固定内容
仪表盘
$HOST/#/external/dashboard/$DASHBOARD_ID?appId=$APP_ID&inline=true
比如:
https://console.volcengine.com/bi#/external/dashboard/47610?appId=1010681&inline=true
移动端仪表盘
$HOST-h5/dashboard/?appId=$APP_ID&id=$DASHBOARD_ID&inline=true
比如:
https://console.volcengine.com/bi-h5/dashboard/?appId=1010681&id=47610&inline=true
说明
注意:移动端链接只能移动端设备访问,如果该链接在PC端打开,则默认跳转为PC端链接
图表
$HOST/#/external/dashboard/$DASHBOARD_ID/$REPORT_ID?appId=$APP_ID&inline=true
比如:
https://console.volcengine.com/bi#/external/dashboard/47610/305962?appId=1010681&inline=true
可视化查询
$HOST/#/dataQuery?appId=$APP_ID&inline=true
比如:
https://console.volcengine.com/bi#/dataQuery?appId=1010681&inline=true
大屏
$HOST/vScreen/preview?appId=$APP_ID&id=$VSCREEN_ID&resizeMode=auto
比如:
https://console.volcengine.com/bi#/vScreen/preview?appId=1010681&id=11&resizeMode=auto
参数详解:
参数 | 说明 |
---|---|
$HOST |
|
$HOST-h5 | 移动端的域名
|
$APP_ID | 项目id。在项目下任意打开地址均可获得,如图所示,任意打开一个项目下的链接,URL如下所示,app_Id值为1010681
|
$DASHBOARD_ID | 在列表页面打开需要外嵌的仪表盘,获得浏览器的URL链接如下,则dashboardId值为47610
|
$REPORT_ID | 图表id,标识唯一的图表。可视化查询页面URL的
|
$VSCREEN_ID | 大屏id。在如下仪表盘链接中,vscreenId值为4750
|
在iframe的url中传入 feature
参数来配置通用特性,以下是该特性的解释说明,可以根据实际情况选择需要的特性。
{ "dashboard": { // --- 仪表盘模块特性 --- "showHeader": true, // 显示Header "showFavor": true, // 显示收藏 "showOwner": true, // 显示owner "actions": [ // 仪表盘操作,数组类型 "refresh", // 刷新 "fullscreen", // 全屏 "share", // 分享 "subscribe", // 订阅 "snapshot", // 书签 "auth", // 授权 "edit", // 编辑 "setAsDefaultDashboard", // 设为默认仪表盘 "exportImage", // 导出图片 "embed", // 嵌出 "accessStatistics" // 访问统计 ], "report": { // --- 仪表盘图表特性 --- "showHeader": true, // 显示header "actions": [ // 仪表盘图表操作,数组类型 "imgExport", // 导出图片 "excelExport", // 导出excel "pivotExport", // 导出透视表 "copyToDashboard", // 复制图表 "embed", // 嵌出图表 "createMonitor" // 新建监控 ], }, "sheet": { // --- 仪表盘sheet特性 --- "tabPosition": "top" // tab页显示位置,可选top/left }, } }
特性说明
模块划分 | 特性名 | 特性解释 | 特性值 | 生效范围 |
---|---|---|---|---|
dashboard | showHeader | 是否显示/隐藏仪表盘的header头部 | true | |
dashboard | showFavor | 是否显示收藏仪表盘,仅showHeader值为ture才生效 | true | |
dashboard | showOwner | 是否显示仪表盘的owner,仅showHeader值为ture才生效 | true | |
dashboard | actions |
| refresh 刷新 fullscreen 全屏 embed 嵌出 | |
report | showHeader | 是否显示图表header | true | |
report | actions |
| imgExport 导出图片 | |
sheet | tabPosition | 仪表盘多sheet时,tab的显示位置 | top 居上 |
根据上述获得的信息来拼接代码,比如以获得的仪表盘链接举例:
https://console.volcengine.com/bi#/external/dashboard/47610?appId=1010681&inline=true
比如如下代码指的是隐藏仪表盘header
<iframe allowfullscreen="true" src='https://console.volcengine.com/bi#/external/dashboard/47610?appId=1010681&inline=true&feature={"dashboard":{"showHeader":false}}' />
feature
参数来配置通用特性。feature
的类型为 JSON.stringify
后的特性配置对象。可以参考如下的iframe 嵌入代码隐藏仪表盘headerimport React from 'react' import ReactDOM from 'react-dom' class EmbedComponent extends React.Component { render() { return ( <iframe allowFullScreen src={`https://console.volcengine.com/bi#/external/dashboard/47610?appId=1010681&inline=true&feature=${ JSON.stringify( { dashboard: { showHeader: false } } ) }`} /> ) } } ReactDOM.render(<AeolusComponent />, document.querySelector('body'))