2.4 接入第三方平台传参(只是传参不忽略原来的筛选条件)到BI系统
参考以上步骤
1.概述
1.1 应用场景
接出ourwayBI钻取到第三方平台链接、设置好自定义传参地址,通过URL接入到第三方平台从而实现报表参数相互传参。
1.2 流程图
2.操作流程
2.1 只有在设置外部链接才有效
(1)参数解析:
钻取之后的url为:
https://www.baidu.com(第三方平台链接)/?fdrill=true&fusername=qms&fwhere=[{"fname":"department.departmentname","fdesc":"门店","fwhether":"是","fcoper":"=","fvalue":"淮海店","ftype":"varchar"}]&ftitle=[淮海店]
代码解析:
fusername:登录的用户名
fwhere:钻取过来的所有筛选条件 已经用JSON.stringify序列化了
序列化之后的结果为
[{
fname: 表达式名称
fdesc: 表达式描述
fwhether: 是否
fcoper: 表达式符号
fvalue: 表达式的值
ftype: 表达式的类型
}]
ftitle:钻取过来的后面追加的标题
2.2 接出,钻取自定义地址传参(只是替换参数的值,不添加新的参数)
(1)使用场景
点击bi看板“二级单位在建工程”中“一公司”的圆柱体需要穿透到“人员异动情况表”,携带的参数应是一公司的phid为
“324191209000024”,定向修改“人员异动情况表”url中红色部分,红色部分前后不变。
http://192.168.0.88:9089/ReportView?page=c%22%3A1%2C%22NullHideLink
%22%3A%220%22%2C%22LinkVisible%22%3Atrue%2C%22LinkRep_srcDatas%22%3A%
22324191209000024%22%7D&e=1&AppTitle=%E4%BA%BA%E5%91%98%E5%BC%82%E5%8
A%A8%E6%83%85%E5%86%B5%E8%A1%A8
效果展示:
(2)设置字段映射,需要传id的才用到
设置 指定哪一列为id列
(3)设置钻取自定义地址
(4)绑定参数
输入@可以唤出数据集的行、列、筛选区域的参数,用户可以自定义绑定要传的参数
[行区域].[区域].[id] 这里传的区域设置的映射的id列的值
[行区域].[区域].[name] 这里直接传字段的名称 如区域
[行区域].[区域].[value] 这里是传区域的值,和id刚刚好相反
例子展示:
设置的自定义钻取地址
./design?fdesign=tr1ue&fid=rpt8af7d480d18311ea82a793b69c070815
&id=@[行区域].[区域].[id]
&name=@[行区域].[区域].[name]
&value=@[行区域].[区域].[value]
当双击钻取广州时,得到的钻取地址为
./design?fdesign=tr1ue&fid=rpt8af7d480d18311ea82a793b69c070815
&id=1006
&name=区域
&value=广州
因为进行了字段映射,其中id=1006是广州区域的id
2.3 接入,第三方平台钻取BI系统
(1)生成传参规则:
原表达式:
(#d_time.the_year between 2008 and 2020) and (departmentclass.departmentclassname in ('广州','深圳','山西') or not(customer.customername = 'VIP1')) and Sum(ICstockbill.totaldecimal) > 10
定义规则之后的表达式:
fwhere_drill=["(","","","#d_time.the_year","","between","2008 and 2020","",")","and",
"(","","","departmentclass.departmentclassname","","in","('广州','深圳','山西')","","","or",
"","not(","","customer.customername","","=","'VIP1'",")",")","and",
"","","Sum(","ICstockbill.totaldecimal",")",">","10","",""]
规则解析:[
(1) "(","","","#d_time.the_year","","between","2008 and 2020","",")","and",
"(", 表达式前面的左(
"", 是非开始表达式 这里为是,故为空值
"", Having前开始表达式
"#d_time.the_year", 明细表达式,不带数据库前缀
"", Having后结束表达式
"between", 表达式符号
"2008 and 2020", 表达式的值 需要区分字符串和数值类型
"", 是非结束表达式 这里为是,故为空值
")", 表达式后面的右)
"and", 多个表达式的关系
(2)"(","","","departmentclass.departmentclassname","","in","('广州','深圳','山西')","","","or",
"(", 表达式前面的左(
"", 是非开始表达式 这里为是,故为空值
"", Having前开始表达式
"departmentclass.departmentclassname", 明细表达式,不带数据库前缀
"", Having后结束表达式
"in", 表达式符号
"('广州','深圳','山西')", 表达式的值 需要区分字符串和数值类型
"", 是非结束表达式 这里为是,故为空值
"", 表达式后面的右)
"or", 多个表达式的关系
(3)"","","Sum(","ICstockbill.totaldecimal",")",">","10","",""
"", 表达式前面的左(
"", 是非开始表达式 这里为是,故为空值
"Sum(", Having前开始表达式
"ICstockbill.totaldecimal", 明细表达式,不带数据库前缀
")", Having后结束表达式
">", 表达式符号
"10", 表达式的值 需要区分字符串和数值类型
"", 是非结束表达式 这里为是,故为空值
"", 表达式后面的右)
--最后一个表达式关系没有,故最后一个元素删除了客户替换完值后需要给参数值encodeURIComponent才可以传入。
2.4 接入第三方平台传参(只是传参不忽略原来的筛选条件)到BI系统
参考以上步骤
(4) 实现传参不忽略原有的筛选条件
在已加fwhere_drill=地址栏后面加上&fdrill=false即可