biee中会话变量和库变量有什么不同呢?会话变量在什么时候会用到?

0
已邀请:
8

joljess - +,BIEE平台管理员。 2015-07-20 回答

首先得了解这两兄弟都是谁谁谁。
资料档案库变量是在任意时间点都具有单个值的变量;会话变量是在每个用户登录时进行初始化的变量。

知道这两谁是谁后,看定义来分析他们主要的区别
库变量着重强调其一个变量在某个时间点里只会是单个值,那么说明一个会话变量在某个时间点可以有多个值,而且,会话变量的值是获取一次后,在你登录的这段时间内不会变的,除非用了啥手段改了会话变量的值。
会话变量的定义里强调是用于在用户登陆时初始化的,意思是在登录的时候系统去获取这个变量的值,登录后就不会再获取值。这也说明库变量和会话变量另一个不同点,会话变量是在登陆时获取变量值,然后赋予该变量一直使用直道下次用户登录时才再获取变量值,而库变量是你需要,你就可以重新获取值,且有可能获取的值是不同的(比如当前时间)。

说的有点复杂,那么举个例来说明就清楚了。
比如当前时间减5天的时间来做一个动态库变量,那么,现在它的值是'2015-07-16 hh-mi-ss',一个小时20分钟10秒后,它的值就是'2015-07-16 hh +'1'-mi+ '20'-ss+ '10''。
比如用会话变量做数据权限,这个BI是分析各系统网络流量的。要做数据权限过滤,我们可以按照系统来过滤。A是OA的管理员,那么他就看OA的流量数据;B是部门老大,他手下管了OA、KM、LDAP这算个系统,那么他就应该看到这三个系统的流量数据。我们就可以通过做一个会话变量结合角色来实现。不同于库变量,会话变量在一段时间内往往是不会变的,且可以拥有多个值。

下面再说说变量具体细分:
库变量有两种类型:
静态 - 这种资料档案库变量的值将予以保存,除非管理员决定更改,否则不会发生更改。如连接池数据源名称、用户名等。
动态 - 这种资料档案库变量的值将由从查询返回的数据进行刷新。
会话变量有两种类型:
系统 - Oracle BI Server 和 Oracle BI Presentation Services 用于特定用途的会话变量。系统会话变量具有保留名称,这些名称不能用于其他类型的变量 (例如静态变量、动态资料档案库变量和非系统会话变量)。如USER、LOGLEVEL、PORTALPATH等。
非系统 - 管理员创建和命名的系统变量。例如,管理员可能会创建用于初始化用户销售区域的 SalesRegion 非系统变量。

补充说明analytics上常用的另外两种变量,表示变量和请求变量
什么是表示变量
表示变量是可在创建以下任一类型仪表盘提示的过程中创建的变量:
列提示 - 作为列提示一部分创建的表示变量与某个列相关联,它可采用的值来自于列值。
变量提示 - 作为变量提示一部分创建的表示变量不与任何列相关联,可以定义它可采用的值。
表示变量的值由创建该变量时所使用的列提示或变量提示填充。也就是说,每次用户在列提示或变量提示中选择值时,表示变量的值就会设置为用户选择的这个值。
什么是请求变量
通过请求变量可以覆盖会话变量的值,但这只在从列提示启动的数据库请求期间有效。可以在创建列提示的过程中创建请求变量。
作为列提示一部分创建的请求变量与某个列相关联,它可采用的值来自于列值。
请求变量的值由创建该变量时所使用的列提示填充。也就是说,每次用户在列提示中选择值时,请求变量的值就会设置为用户选择的这个值。不过,只有在从用户按提示的开始按钮到分析结果返回到仪表盘这一段时间内,该值才有效。

下图是变量的各种调用方法:
BIEE_Variables.png


别问我为什么知道,因为我是在帮助里复制过来的,然后加了点自己的认识。
望各位大大继续补充,补充完整后可以作为一个biee变量的总结。
2

匆匆 - 拔剑浴血幕,只为红颜故、BIEE高级工程师 2015-07-19 回答

库变量:其实就是我们用的表示变量,用的最多,在rpd里面建立,用于前端里面引用其值来做运算!调用方式为 valueof(“变量”)
会话变量:主要是针对会话来的 比如一个session 对这个session 的变量! 比如一个用户登上来,他就有个session 这个用户属于哪个公司,他的属于哪个机构 ,是针对这个的变量。调用方式 为 valueof(NQ_SESSION.“变量”)
 
1

joljess - +,BIEE平台管理员。 2015-07-20 回答

系统会话变量如下:

图片1.png

 
1

biee12c 2015-07-22 回答

管理工具默认的是会话变量的初始化块是第二个连接池,而库变量是没有限制的,这也是个区别。
0

lamixiong 2019-02-02 回答

我遇到了同样的问题

要回复问题请先登录注册