BIEE 11G 过滤器+字符串函数+表示变量导致表示变量被识别为字符串的问题解决方法

浏览: 1797

环境:BIEE 11.1.7...

背景:

项目中有一个需求类似于这样:

一张汇总报表,有3个列选择器A\B\C,当选择不同的列选择器组合的时候需要同一个指标T1下钻到不同的明细报表(A\B\C\A+B\A+C\B+C\A+B+C\ABC全不选);


第一种方法:

用脚本模拟列选择器的效果,用脚本控制不同列选择器的汇总报表展示,不同的汇总报表导航到不同的分析;

该方案弊端就是要用脚本控制报表脚本去根据不同的组合显示不同的汇总,当需求变动的时候需要修改多个汇总分析,维护和修改成本较高;


第二种方法:

利用BIEE同名列传参的原理,在明细仪表盘上放置汇总报表列选择器同名列并设置表示变量,采用中间条件分析根据表示变量长度来判定,利用BIEE的条件区域块功能用来显示不同的明细分析;

该方法仅需要一张汇总报表,8个类似的中间条件分析和8个明细报表即可;少了脚本维护成本,降低了维护门槛。

但该方案进行过程中,在中间条件分析的过程中出了点标题中的小意外。

例如:当判定ABC都不选择的时候,会设定过滤器为:

case when length('@{PV_A}')=0 AND length('@{PV_B}')=0 AND length('@{PV_C}')=0 THEN 1 else 0 end = 1 

实际效果中,该条件分析永远测试不成立,后来发现过滤器+字符串函数+表示变量的组合会把表示变量识别为字符串;

后来修改过滤器直接判定变量值,类似为:

case when '@{PV_A}{the variable has no value}'='the variable has no value' AND '@{PV_B}{the variable has no value}'='the variable has no value' AND '@{PV_C}{the variable has no value}'='the variable has no value' THEN 1 else 0 end = 1 

至此,中间分析正常运行,汇总分析导航到明细分析正常切换显示;

推荐 1
本文由 百分百 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册