BIEE中变量总结大全

浏览: 4796

Biee的变量分几种(库变量,会话变量,介绍变量,请求变量,Biee内部定义的变量不说了),用起来经常让大家糊涂,再此做个总结,有异议的地方请消息给我·· 欢迎讨论~

现在开始吧,Administrator tool-Manage-Variable 下图~

Clipboard Image.png

这里是模型RPD定义变量的地方,也就是所定义的变量名都是保存在RPD模型中,Variable 所定义的变量类型分为两大类,一种是Repository(库变量),另外一种是Session(会话变量)。

其中Repository分两种变量的类型:Dynamic(动态变量)和Static(静态变量)
Session也分两种变量类型:System(系统变量)和Non-System(非系统变量)

库变量的用途及用法详细介绍

现在说一下库变量的用途,库变量的Static(静态变量)经常是作为项目需求中经常用的固定值做为这个静态变量值的,举个例子:如果一个项目中有10个Dashboard,每个Dashboard有10个page,每个page的下标都需要带上公司的版权注释,当公司被收购了版权需要更改的话怎么办,改一百次版权信息?这里如果用静态变量的话就方便多了,只需修改变量对应的缺省值就可以了。

用法如图:

Clipboard Image.png


建立一个Static的Repository Variable

Clipboard Image.png


变量名为SRV缺省值为222050000,其中要注意一下类型Type,因为是静态的,所以不需要初始化块。

在前端直接就可以调用了

Clipboard Image.png


命名必须和静态变量的名称相同(不用解释吧)~

Clipboard Image.png

看一下效果

Clipboard Image.png


OK ,调用静态的库变量成功。

这里需要注意一下,表达式和筛选调用库变量的时候是可以VALUEOF('SRV')来引用,而其他地方调用的话例如文本:需要这么写@{biServer.variables['SRV']}

再看一下动态(Dynamic)的库变量的用途,例如:一个项目中,要求当用户登录的时候看到的数据是当天(当月)的数据,这时候我们需要用到动态的库变量(也有其他方法,不做介绍了)。

所谓的“当前”,就是此刻所在的月,所以这些需要设置初始化块来设置时间的更新设置。 如图:

Clipboard Image.png

EditData Source是编辑查询的地方,会返回若干行值;

EditData Target是指定查询返回的数据用于初始化哪个变量的。返回值的顺序和需要初始化的变量顺序需要严格对称;

Schedule的地方就是制定查询执行的频率,即多久更新一次变量。

前端的调用方法可以静态的库变量相同;下图依文本为例:

Clipboard Image.png
效果如下:

Clipboard Image.png

这里需要提醒一下。库变量无论是静态的或是动态的,在前端都是无法对起变量值进行更改的,当然如果是库变量的取的关系库表中的值,通过回写数据库的数据来改动态的库变量也是一种方法哦~

会话变量的用途及用法详细介绍


再看一下什么时候Session会话变量,回话变量的设置方法和库变量类似,也是可以直接设置Variables,当然也可以定义初始化块来定义更复杂的会话变量,其中会话变量分系统变量和非系统变量。

系统会话变量:DISPLAYNAME,EMAIL,GROUP,LAST_SYNCH_TIMEand THIS_SYNCH_TIME,

PORTALPATH,REQUESTKEY,SKIN,USER,WEBGROUPS.这里常用到的就USER,GROUP,DISPLAYNAME三个,其他变量是含义请参考 BusinessIntelligence Server Administration Guide。非系统会话变量名称可以自定义,但不要和系统变量同名即可,这里不再说步骤了,和库变量定义相同,这里定义了一个非系统回话变量的如下:

Clipboard Image.png

其中EditExecution Precedence是加载其他的应用程序定义的变量(例如:LDAP定义的用户变量)。

Test可以测试查看到变量名称和其缺省值

Clipboard Image.png

再前端调用一下

Clipboard Image.png
注意调用会话变量的时候是VALUEOF(NQ_SESSION.变量名)而调用库变量的时候是VALUEOF(变量名)

Clipboard Image.png
OK~调用成功。

注意当不加指标列的时候(只有会话变量列的时候会报错)~

Clipboard Image.png


系统自带的会话变量如USER,GROUP等就不举例了,网上有很多实例,也可以去看我的相关LDAP权限控制博文。

再看看前端可以定义的变量~


介绍变量和请求变量的用途及用法详细介绍


前端可以定义的变量都是创建提示中设置

Clipboard Image.png
他分为介绍变量和请求变量,其中介绍变量是把提示中(也可叫筛选器)的所选项作为变量的Value值进行使用,用法如下:

定义介绍变量名

Clipboard Image.png

用@{变量名}的结果来引用

Clipboard Image.png

那么什么是请求变量,请求变量是从新定义会话变量的Value值的变量,其新定义的值来自提示所选项。

设置请求变量名的时候必须要和将修改的会话变量名称相同,上边已经定义了一个非系统会话变量SessionTest,Value值为222010000,下面以这个为例,来修改会话变量SessionTest 的Value值。

定义一个提示的请求变量,名为SessionTest

Clipboard Image.png

在做一个会话变量的表

Clipboard Image.png

这里无需加筛选器,因为调节列是来自会话变量,我们实验的目的就是用提示的请求变量来修改这个会话变量的列~

OK~添加到仪表盘里看一下结果~

Clipboard Image.png
为了试验明显提示的缺省值没有进行设置,这里的缺省值是来自会话变量的222010000。

操作一下提示来改变会话变量的Value值~

Clipboard Image.png
OK~~!

变量用法总结:

库变量在Answers列的编辑公式中调用方法是VALUEOF("变量名")

会话变量在在Answers列的编辑公式中调用方法是VALUEOF(NQ_SESSION.变量名)

库变量和会话变量在其他地方调用(例如文本中)是@{biServer.variables[‘变量名’]}

介绍变量的调用方法是@{变量名}

系统自带了一些会话变量如下:

Delivers:@{currentMonth}。
currentTime =>@{system.currentTime} = 2010-5-14 2:21:30
system.productVersion=> @{system.productVersion} = 10.1.3.4 (Build 080726.1900)
session.locale=> @{session.locale} =zh-cn
session.language=> @{session.language} = zh
rtl=>@{session.rtl} = false
session.loginTime=> @{session.loginTime} = 2010-5-14 1:42:36
session.logoutTime=>@{session.logoutTime } = 2010-5-14 1:42:31
session.lastAccessTime=>@{session.lastAccessTime} = 2010-5-14 2:21:29
session.currentUser=> @{session.currentUser.id} = administrator
user.homeDirectory=> @{user.homeDirectory} = /users/administrator
user.id =>@{user.id} = administrator
user.displayName=> @{user.displayName} = administrator

 

                                                               Yuvv^-^~

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

2 个评论

感谢分享,学习。
LDAP权限控制链接挂了

要回复文章请先登录注册