BIEE使用技巧
索引:
1.如何清除缓存
2.通过“编辑 SQL”取得前一天的日期
3.格式化日历框参数
4.根据传入的开始时间和结束时间取得事实表中的指标(用到了3中的技巧)
5.直接调用数据库函数
6.时间格式转换
7.BIEE传参问题
8.BIEE部署到Solaris服务器
9.联动条件提示
10.不同维度级别算法
11.Answer横向数据比较变颜色
12.取得模型中有数据的最近一天的数值
13.在列表的表头中加入tip
14.在rpd中设置不同维度路径聚合算法
15.集成报表时将“首选项”去掉
16.指标成员分类显示
17.BIEE报表向外部传数据
1.如何清除缓存(1)删除OracleBIData下的cache目录(2)将NQSConfig.INI文件中的[Cache]选项ENABLE=NO
2.通过“编辑 SQL”取得前一天的日期方 法:select TIMESTAMPADD( SQL_TSI_DAY, -1,CURRENT_DATE ) from 时间维语法:TimestampAdd( interval, intExpr, timestamp )interval:指定的间隔。有效值 是:SQL_TSI_SECOND,SQL_TSI_MINUTE,SQL_TSI_HOUR,SQL_TSI_DAY,SQL_TSI_WEEK, SQL_TSI_MONTH,SQL_TSI_QUARTER , SQL_TSI_YEAR
3.格式化日历框参数问 题:BIEE自带的日历框传入的日期数据通过cast转换时会出错,需要将格式转换为类似格式:2010-07-01 --> 01-7月-10方法:cast(replace( right( '@{var_startdate}{2010-7-26}', 2 ), '-', '' ) ||'-' ||( case when left( replace( substring( '@{var_startdate}{2010-7-26}' from 6 for 2 ), '-', '' ), 1 ) = 0then right( replace( substring( '@{var_startdate}{2010-7-26}' from 6 for 2 ), '-', '' ), 1 )else replace( substring( '@{var_startdate}{2010-7-26}' from 6 for 2 ) ,'-', '' )end ) ||'月-' ||substring( '@{var_startdate}{2010-7-26}' from 3 for 2 )as date )
4.根据传入的开始时间和结束时间取得事实表中的指标(用到了3中的技巧)FILTER( "事实指标"."全天汇总"USING ( "时间维"."日期" =cast(replace( right( '@{var_startdate}{2010-7-26}', 2 ), '-', '' ) ||'-' ||( case when left( replace( substring( '@{var_startdate}{2010-7-26}' from 6 for 2 ), '-', '' ), 1 ) = 0then right( replace( substring( '@{var_startdate}{2010-7-26}' from 6 for 2 ), '-', '' ), 1 )else replace( substring( '@{var_startdate}{2010-7-26}' from 6 for 2 ) ,'-', '' )end ) ||'月-' ||substring( '@{var_startdate}{2010-7-26}' from 3 for 2 )as date )))FILTER( "事实指标"."全天汇总"USING ( "时间维"."日期" =cast(replace( right( '@{var_startdate}{2010-7-27}', 2 ), '-', '' ) ||'-' ||( case when left( replace( substring( '@{var_enddate}{2010-7-27}' from 6 for 2 ), '-', '' ), 1 ) = 0then right( replace( substring( '@{var_enddate}{2010-7-27}' from 6 for 2 ), '-', '' ), 1 )else replace( substring( '@{var_enddate}{2010-7-27}' from 6 for 2 ) ,'-', '' )end ) ||'月-' ||substring( '@{var_enddate}{2010-7-27}' from 3 for 2 )as date )))
5.直接调用数据库函数(以Oracle为例)
(1)在逻辑层调用Oracle函数在Administrator Tools中,可以在逻辑层调用oracle的函数,方法如下(注意Evaluate的语法):
通过这种方式可以在逻辑模型中加入一些计算列,用以解决行上的数据比较分析。
(2)在Answer中调用Oracle函数如图所示:在Answer中函数编辑中直接利用Evaluate,语法与上面一样。
6.时间格式转换如 果后端是Oracle数据库,可在Connection Pool中设置NLS_DATE_FORMAT变量,则cast(Calendar."Time Id" AS CHAR)会返回对应的格式。(可以用于解决问题3)如下图所示:脚本:ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD'
7.BIEE传参问题基本参考官方的Presentation Services Administration Guide.pdf即可。注意几点:
2.如果url中包含中文则需要转码为utf-8。
3.空格用 替代。
4.元数据中的字段需要用引号包含起来如Products."Prod Name"。
5. 最多可以定义6个参数举例:saw.dll?Go&Path=/users/administrator/test/test_sh& Action=Navigate&P0=1&P1=eq&P2=Products."Prod Name"& P3=Deluxe Mouse多个参数传递的时候,以此类推P1~P3,P4~P6。如:P4=eq&P5=Times.date& amp;P6=2008-01-01注意:BIEE有时候会出现传参失效问题(暂不清楚是由于缓存问题还是BIEE中的bug),需要在报表设计器中删除 需要传入参数的列以及对应的过滤器并且重建,这样才能使传参重新生效。
8.BIEE部署到Solaris服务器描述:在windows服务器上生成的catelog部署到unix服务器上时,需要将catelog转换为为二进制后传送到unix服务器上。
9.联动提示条件描述:在提示中后一个提示依赖于前一个提示。例如:网元维度大区==>分公司,要让分公司有依赖于大区的选择。如下图所示,要注意提示摆放顺序。
10.不同维度级别算法
11.Answer横向数据比较变颜色描述:BIEE9的横向数据分析功能比较弱。例如下图所示(图中的数据是模拟数据),需要将与忙时相同的时间点数据标红(从图中可以看出所有1点数据与忙时数据相同,所以所有1点数据都应该标红)。这在BIEE中是无法通过条件格式直接完成的,可以通过以下方法进行变通。(1)加入一个临时1点数据列,我们用它作为临时列。
(2)在临时列中“编辑列公式”,让数值等于1点数据减去忙时数据。
(3)在1点数据的列属性中添加条件,当临时列等于0时将1点列的颜色标红。
(4)最后将临时列编辑为隐藏
最后看一下效果图,这种变通方式的缺点是工作量很大,需要对每一个需要比较的列都要添加一个相应的临时列。
12.在提示中取得模型中有数据的最近一天的数值方法:在提示中利用SQL结果"select cast(TIMESTAMPADD( SQL_TSI_DAY , -(12), CURRENT_DATE ) as date) from 时间维"
13.在列表的表头中加入tip描 述:需要在列表的表头中加入tip。方法:(1)修改instanceconfig.xml,在\OracleBIData\web\config\中的 instanceconfig.xml中加入false并重启BIEE服务 (2)在需要加入tip的标题中,编辑列格式,在列标题中输入tip,其中title中的部分就是tip,这是html的语法。如图:(3)最终效果如下图:
注意:HardenXSS是为了防止跨脚本攻击的,如果设置为false可能存在一定风险。
14.在rpd中设置不同维度路径聚合算法
描述:度量维(事实表)在不同纬度路径的聚合算法不同。解决:可以在rpd中设置不同纬度路径的聚合算法。
默认情况,事实纬度中的指标采用一种聚合算法,如下图所示:
选择"Based on dimensions",可以设置在不同纬度路径下的聚合算法。
15.集成报表时将“首选项”去掉
描述:在集成BIEE报表时,右上角会有“首选项”图标,比较碍眼,如下图所示:解决:修改instanceconfig.xml,在\OracleBIData\web\config\中的instanceconfig.xml中加入并重启BIEE服务即可,效果如下图:
注意:该方法对Administrator或拥有该权限的用户连接无效
16.指标成员分类显示
描述:我想在Answer看到如下显示方式:
17.BIEE报表向外部传数据
描述:需要BIEE将报表中的参数传到外部链接中。
解决:
(1)设置数据格式
(2)编辑单元格数据,例如:
'