发布日期: 12-Mar-2013 03:32:15
会话变量 #
会话变量在每个用户登录时初始化。当用户开始会话时,BI 服务器会创建一个新的会话变量实例并将其初始化。
BI 服务器上有多少个活动会话,会话变量就有多少个实例。会话变量的每个实例都可以初始化为不同的值。
会话变量有两种类型:
- 系统 - BI 服务器和 BI 演示服务用于特定目的的会话变量。
系统会话变量有保留名称,不能用于其他类型的变量(如静态或动态存储库变量和非系统会话变量)。
- 非系统 - 由管理员创建并命名的系统变量。例如,管理员可以创建一个 SalesRegion 非系统变量,初始化用户销售区域的名称。
管理员使用 Oracle BI 管理工具创建非系统会话变量。
存储库变量 #
存储变量是指在任何时间点都只有一个值的变量。
存储库变量有两种类型:
- 静态 - 存储库变量,其值持久不变,除非管理员决定更改。
- 动态 - 存储库变量,其值由查询返回的数据刷新。
管理员使用 Oracle BI 管理工具创建存储库变量。
演示变量 #
演示变量是一种变量,可以在创建以下类型仪表盘提示的过程中创建:
- 栏目提示 - 作为列提示的一部分创建的演示变量与列相关联,其取值来自列值。
要创建作为列提示部分的演示文稿变量,必须在 "新建提示对话框"(或编辑提示对话框)中选择 演示变量 在 设置变量 字段,然后在 变量名称 field.
- 变量提示 - 作为变量提示的一部分创建的演示变量与任何列都没有关联,管理员定义了它可以取的值。
要创建一个演示文稿变量作为变量提示的一部分,请在 "新建提示对话框"(或 "编辑提示对话框")中选择 演示变量 在 提示 字段,然后在 变量名称 field.
演示变量的值由创建该变量的列或变量提示符填充。也就是说,每次用户在列或变量提示中选择一个值时,演示变量的值就会被设置为用户选择的值。
请求变量 #
请求变量允许覆盖会话变量的值,但仅限于从列提示发起的数据库请求期间。请求变量可以作为创建列提示过程的一部分来创建。
作为列提示的一部分创建的请求变量与列相关联,其取值来自列值。
要创建一个请求变量作为列提示的一部分,请在 "新建提示对话框"(或编辑提示对话框)中选择 请求变量 于 设置变量 字段,然后在 变量名称 field.
请求变量的值由创建时的列提示填充。也就是说,每次用户在列提示中选择一个值,请求变量的值就会被设置为用户选择的值。但该值只有在用户按下 转到 按钮进行提示,直到分析结果返回仪表板。
在哪里可以引用变量? #
可以在以下区域引用变量(但并非所有类型的变量都可以在每个区域引用):
- 标题视图。
- 叙事观点。
- 静态文本视图。
- 过滤器
- 列公式。
- 条件格式化条件
- 分析中的表格和栏目标题。
- 直接数据库请求。
- 仪表板提示和内联提示。
- PDF 输出的页眉和页脚
- 仪表板中的链接或图像对象。
- 仪表板中的文本对象。
- 图表来指定图表数据的条件格式。
- 测量阈值。
- 测量限制。
- 代理商。
- 指定参数的操作。
- 指定参数的条件。
- 遴选步骤。
- 界定阈值的关键绩效指标。
- KPI 观察清单中包含的 KPI。
- 对话框中的 URL 字段。
变量引用语法
变量可用于分析、仪表盘、关键绩效指标和代理。如何引用变量取决于正在执行的任务。
对于在对话框中显示字段的任务,必须只指定变量的类型和名称(而不是完整的语法), 例如在过滤器定义中引用变量。
对于其他任务,例如在标题视图中引用变量,需要指定变量语法。使用的语法取决于变量的类型,如表 1 所示。
请注意:
在语法中,如果 "at "符号 (@) 后面没有括号 ({),则将其视为 "at "符号。
表 1 引用变量的语法
变量类型 | 语法 | 示例 |
会议 | @{biServer.variables['NQ_SESSION. 变量名 其中 变量名 是会话变量名,例如 DISPLAYNAME。 | @{biServer.variables['NQ_SESSION.USER']} |
存储库 | @{biServer.variables. 变量名 } 或 @{biServer.variables[' 变量名 其中 变量名 是存储库变量的名称,例如 prime_begin。 | @{biServer.variables.prime_begin} 或 @{biServer.variables['prime_begin']} |
介绍或要求 | @{variables. 变量名 }[ 格式 ]{ 默认值 } 或 @{ 范围 .变量[' 变量名 ']} where: 变量名 是演示或请求变量的名称,例如 MyFavoriteRegion。可选 格式 是一个格式掩码,取决于变量的数据类型,例如 #,##0,MM/DD/YY hh:mm:ss。(注意,格式不应用于默认值)(可选) 默认值 是一个常量或变量引用,表示如果被 变量名 未填充。 范围 确定变量的限定符。如果变量在多个级别(分析、仪表盘页面和仪表盘)使用,并且要访问特定值,则必须指定范围。(如果不指定作用域,则优先顺序为分析、仪表盘页面和仪表盘)。 | @{variables.MyFavoriteRegion}{EASTERN REGION} 或 @{dashboard.variables['MyFavoriteRegion']} |
您也可以在表达式中引用变量。表 2 介绍了在表达式中引用变量的指导原则。
表 2 表达式中引用变量的指导原则
变量类型 | 指导方针 | 示例 |
会议 | 将会话变量作为 VALUEOF 函数的参数。用双引号括起变量名。在会话变量名前加上 NQ_SESSION 和句号。用括号括住 NQ_SESSION 部分和会话变量名。 | "市场". "地区"=VALUEOF(NQ_SESSION. "销售地区") |
存储库 | 将存储库变量作为 VALUEOF 函数的参数。用双引号括起变量名。使用静态版本库变量的名称。使用动态资源库变量的全称来引用该变量。如果使用的是动态存储库变量,则初始化块和存储库变量的名称必须用双引号(")括起来,中间用句号隔开,并包含在括号中。例如,要使用名为 REGION 的动态存储库变量的值,该值包含在名为 Region Security 的初始化块中,请使用以下语法:VALUEOF("Region Security". "REGION") | CASE WHEN "Hour" >= VALUEOF("prime_begin") AND "Hour"< VALUEOF("prime_end") THEN 'Prime Time' WHEN ... ELSE...END |
介绍 | 使用此语法 @{variablename}{defaultvalue},其中 variablename 是显示变量的名称,defaultvalue(可选)是一个常量或变量引用,表示在 variablename 引用的变量未被填充时要使用的值。要将变量类型转换(即转换)为字符串,请用单引号将整个语法括起来,例如:"@{user.displayName}"。 注意:如果 @ 符号后面没有 {,则被视为 @ 符号。 | "市场". "地区"=@{我最喜欢的地区}{东部地区}. |