BIEE 主要有 库变量,会话变量,表示变量(介绍变量),请求变量
一、RPD中定义的
库变量和会话变量的区别是会话变量可以被前台通过请求变量修改
1、库变量(Repository Variable RV)
Repository分两种变量的类型:Dynamic(动态变量)和Static(静态变量)
静态变量SRV
应用场景:引用长期不变的值,例如本机的 biee服务器相关路径的信息等,有的导航需要用路径等,由于生产和开发不一致,在生产和开发设置相同的变量,修改默认的值即可
①设置方法
在RPD中进入Administrator tool -Manage-Variable ,静态变量直接创建,不需要初始化块
②引用方法 资料库变量引用都是VALUEOF("变量名")
地方调用的话例如文本:需要这么写@{biServer.variables['SRV']}
2、动态变量DRV
应用场景:在项目中,要求当用户登录的时候看到的数据是当天(当月)的数据,这时候我们需要用到动态的库变量
①设置方法
动态变量需要新建初始化块:
编辑数据源来添加变量取值方法
SELECT TO_CHAR(SYSDATE, 'YYYY-MM') --本年本月
,TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),-1),'YYYY-MM') --本年上月
,TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),1),'YYYY-MM') --本年下月
,TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),-12),'YYYY-MM') --上年本月
,TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),-13),'YYYY-MM') --上年上月
,TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),-11),'YYYY-MM') --上年下月
,TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),12),'YYYY-MM') --下年本月
,TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),11),'YYYY-MM') --下年上月
,TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),13),'YYYY-MM') --下年下月
,TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'YYYY-MM-DD') --本年本月本日
,TO_CHAR(SYSDATE-1,'YYYY-MM-DD') --本年本月本日-1
,TO_CHAR(SYSDATE+1,'YYYY-MM-DD') --本年本月本日+1
,TO_CHAR(SYSDATE-7,'YYYY-MM-DD') --本年本月本日-7
,TO_CHAR(SYSDATE+7,'YYYY-MM-DD') --本年本月本日+7
,TO_CHAR(SYSDATE,'MM') month --本月
,TO_CHAR(SYSDATE,'MM')-1 month --上月
,TO_DATE(TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),-2),'YYYY-MM-DD'),'YYYY-MM-DD') --本年本月本日-2月
,TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),-2),'YYYY-MM') --本年本月-2月
,TO_DATE(TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),-3),'YYYY-MM-DD'),'YYYY-MM-DD') --本年本月本日-3月
,TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),-3),'YYYY-MM') --本年本月-3月
,TO_CHAR(TRUNC(SYSDATE,'IW'),'YYYY-MM-DD')--本周一
,TO_CHAR(TO_CHAR(SYSDATE, 'YYYY') - 1) --去年
,TO_CHAR(SYSDATE, 'YYYY') --本年
,TO_CHAR(TRUNC(SYSDATE,'day')-2,'YYYY-MM-DD')--上周五
,TO_CHAR(TRUNC(SYSDATE,'day')-8,'YYYY-MM-DD')--上上周六
,TO_CHAR(TRUNC(SYSDATE,'day'),'YYYY-MM-DD')--周日(本周第一天)
,CASE WHEN TO_CHAR(SYSDATE ,'D') =7 THEN TO_CHAR(SYSDATE-1,'YYYY-MM-DD') ELSE TO_CHAR(TRUNC(SYSDATE,'day')-2,'YYYY-MM-DD') END --过去最近的周五
FROM DUAL
在新建数据目标根据数据获取顺序建立变量
②引用方法 资料库变量引用都是VALUEOF("变量名"),
这里直接写变量名字就可以了
2、会话变量 Session Variables SV
分为系统变量和非系统变量
系统变量 DISPLAYNAME,EMAIL,GROUP,LAST_SYNCH_TIME and THIS_SYNCH_TIME,
PORTALPATH,REQUESTKEY,SKIN,USER,WEBGROUPS.这里常用到的就USER,GROUP,DISPLAYNAME
非系统变量定义时不要和系统变量重名
定义方式和动态库变量类似
区别:会话变量
SELECT Distinct
'SV_ASSET_DEP_LEVEL1',
a.dep_code
FROM T_USER_DEP_MAP_ASSE 可以在里面定义变量名
,但在编辑数据目标时要在里面勾选行范围初始化
②引用方法 VALUEOF(NQ_SESSION.变量名)
二、answer的变量 表示变量和请求变量
表示变量是把提示中(也可叫筛选器)的所选项作为变量的Value值进行使用,
请求变量是通过提示器修改会话变量的值,从而修改数据等
变量用法总结:
库变量在Answers列的编辑公式中调用方法是VALUEOF("变量名")
会话变量在在Answers列的编辑公式中调用方法是VALUEOF(NQ_SESSION.变量名)
库变量和会话变量在其他地方调用(例如文本中)是@{biServer.variables[‘变量名']}
表示变量的调用方法是@{变量名}