Obiee 简明教程
OBIEE – Variables
在 OBIEE 中,通常使用两种类型的变量 −
-
Repository variables
-
Session variables
除此之外,您还可以定义演示和请求变量。
Repository Variables
存储库变量在任何时间点只有一个值。存储库变量使用 Oracle BI Administration 工具定义。存储库变量可以在表达式构建器向导中代替常量。
有两种类型的存储库变量 −
-
Static repository variables
-
Dynamic repository variables
静态存储库变量在变量对话框中定义,并且其值存在,直到管理员更改它们。
静态存储库变量包含数字或字符值,是默认初始化器。此外,您可以使用表达式构建器插入常量作为默认初始化器,例如,日期、时间等。您不能使用其他值或表达式作为静态存储库变量的默认初始化器。
在较旧的 BI 版本中,Administrator 工具没有限制静态存储库变量的值。如果您的存储库已从旧版本升级,您可能在一致性检查中收到警告。在这种情况下,请更新静态存储库变量,以便默认初始化器具有常量值。
动态存储库变量与静态变量相同,但值由查询返回的数据刷新。在定义动态存储库变量时,请创建一个初始化块或使用一个包含 SQL 查询的现有块。您还可以设置一个计划,Oracle BI 服务器将按该计划执行查询并定期刷新变量的值。
当动态存储库变量的值发生更改时,自动删除与业务模型相关的所有缓存条目。
每个查询都可以刷新多个变量:查询中每列一个变量。您可以计划由 Oracle BI 服务器执行这些查询。
动态存储库变量对于定义逻辑表源的内容很有用。例如,假设您有两个有关订单的信息源。一个源包含当前订单,另一个包含历史数据。
Create Repository Variables
在管理工具中 → 转到管理 → 选择变量 → 变量管理器 → 转到操作 → 新建 → 存储库 > 变量。
在变量对话框中,键入变量的名称(所有变量的名称应唯一) → 选择变量的类型 - 静态或动态。
如果您选择动态变量,请使用初始化块列表选择一个现有的初始化块,该块将用于持续刷新值。
要创建一个新的初始化块 → 单击新建。要添加默认初始化器值,请在默认初始化器框中键入该值,或单击表达式构建器按钮以使用表达式构建器。
对于静态存储库变量,您在默认初始化器窗口中指定的的值将保留。除非您更改它,否则它不会更改。如果您使用字符字符串初始化变量,请用单引号将字符串括起来。静态存储库变量必须具有常量值的默认初始化器 → 单击确定关闭对话框。
Session Variables
会话变量类似于动态存储库变量,它们从初始化块中获取值。当用户开始会话时,Oracle BI 服务器会创建会话变量的新实例并初始化它们。
会话变量的实例数量和 Oracle BI 服务器上的活动会话一样多。会话变量的每个实例都可以初始化为不同的值。
有两种类型的会话变量 −
-
System session variables
-
Non-system session variables
系统会话变量由 Oracle BI 和表示服务器用于特定目的。它们具有预定义的保留名称,不能被其他变量使用。
USER |
此变量保存用户使用登录名输入的值。此变量通常从用户的 LDAP 概要中填充。 |
USERGUID |
此变量包含用户的全局唯一标识符 (GUID),并且从用户的 LDAP 概要中填充。 |
GROUP |
它包含用户所属的组。当用户属于多个组时,将组名包含在同一列中,用分号分隔(示例 - GroupA;GroupB;GroupC)。如果分号必须包含在组名中,请在分号前加上反斜杠字符 (\)。 |
ROLES |
此变量包含用户所属的应用程序角色。当用户属于多个角色时,将角色名称包含在同一列中,用分号分隔(示例 - RoleA;RoleB;RoleC)。如果分号必须包含在角色名称中,请在分号前加上反斜杠字符 (\)。 |
ROLEGUIDS |
它包含用户所属的应用程序角色的 GUID。应用程序角色的 GUID 与应用程序角色名称相同。 |
PERMISSIONS |
它包含用户持有的权限。示例 - oracle.bi.server.manageRepositories。 |
非系统会话变量用于设置用户筛选器。例如,您可以定义一个名为 Sale_Region 的非系统变量,该变量将初始化为用户的销售区域名称。
Create Session Variables
在管理工具 → 转到管理 → 选择变量中。
在变量管理器对话框中,单击操作 → 新建 → 会话 → 变量。
在会话变量对话框中,输入变量名称(所有变量的名称都应该唯一,系统会话变量的名称是保留的,不能用于其他类型的变量)。
对于会话变量,您可以选择以下选项 −
-
Enable any user to set the value − 此选项用于在初始化块填充值后设置会话变量。示例 - 此选项允许非管理员为采样设置此变量。
-
Security sensitive − 当使用诸如虚拟专用数据库 (VPD) 之类的行级数据库安全策略时,此选项用于将变量标识为对安全性敏感。
您可以使用初始化块列表选项来选择一个将用于定期刷新值的初始化块。您还可以创建一个新的初始化块。
要添加默认初始化器值,请在默认初始化器框中输入值或者单击表达式构建器按钮以使用表达式构建器。单击确定以关闭对话框。
管理员可以使用 Oracle BI 管理工具创建非系统会话变量。
Presentation Variables
表示变量是通过创建仪表盘提示创建的。可以用两种类型的仪表盘提示 −
Column Prompt
使用 Prompt 列创建的 Presentation 变量与列关联,而它可以采用的值则来自列值。
要创建 Presentation 变量,请转到“新建 Prompt”对话框或“编辑 Prompt”对话框→在变量字段的“变量集”中选择“Presentation 变量”→输入变量的名称。
Variable Prompt
作为 Prompt 变量创建的 Presentation 变量与任何列都不关联,并且您需要定义它的值。
要在“新建 Prompt”对话框或“编辑 Prompt”对话框中作为 Prompt 变量的一部分创建 Presentation 变量,请转到变量字段的 Prompt → 输入变量的名称。
Presentation 变量的值由与之创建的列或变量 Prompt 填充。每次用户在列或变量 Prompt 中选择一个值时,Presentation 变量的值都将设为用户选择的值。
Initialization Blocks
初始化块用于初始化 OBIEE 变量:Dynamic Repository 变量、系统会话变量和非系统会话变量。
它包含用于初始化或刷新与该块关联的变量而执行的 SQL 语句。执行的 SQL 语句指向可以使用连接池访问的物理表。连接池在初始化块对话框中定义。
如果希望初始化块的查询具有特定于数据库的 SQL,则可以为此查询选择数据库类型。
Initialize Dynamic Repository Variables using Initialization Block
初始化块的默认初始化字符串字段用于设置 Dynamic Repository 变量的值。您还可以定义 Oracle BI 服务器用于执行查询和刷新变量值的时间表。如果将日志级别设为 2 或更高,则用于检索变量值的所有 SQL 查询的日志信息将保存在 nqquery.log 文件中。
此文件在 BI 服务器上的位置:
ORACLE_INSTANCE\diagnostics\logs\OracleBIServerComponent\coreapplication_obisn
Initialize Session Variables using Initialization Block
会话变量也从初始化块获取其值,但其值从不随时间间隔而变化。当用户开始新会话时,Oracle BI 服务器将创建会话变量的新实例。
如果在身份管理用户对象中将日志级别设为 2 或更高,或者在变量管理器中将 LOGLEVEL 系统会话变量设为 2 或更高,则 BI 服务器执行的所有 SQL 查询(用于检索会话变量信息)都会保存在 nqquery.log 文件中。
此文件在 BI 服务器上的位置:
ORACLE_INSTANCE\diagnostics\logs\OracleBIServerComponent\coreapplication_obisn
Create Initialization Blocks in Administrator Tool
转到“管理器”→“变量”→将显示“变量管理器”对话框。转到“操作”菜单→单击新建→仓库→初始化块→输入初始化块的名称。
转到“时间表”选项卡→选择开始日期和时间以及刷新间隔。
您可以为初始化块选择以下选项:
-
Disable - 如果选择此选项,则初始化块将被禁用。要启用初始化块,请在变量管理器中右键单击现有的初始化块,然后选择“启用”。此选项使您可以更改此属性,而无需打开初始化块对话框。
-
Allow deferred execution - 这允许您将初始化块的执行延迟到会话期间首次访问关联会话变量为止。
-
Required for authentication - 如果选择此项,则必须执行初始化块才能让用户登录。如果初始化块不执行,则会拒绝用户访问 Oracle BI。