- OBIEE 教程
- OBIEE - 首页
- OBIEE - 数据仓库
- OBIEE - 维度建模
- OBIEE - 模式
- OBIEE - 基础知识
- OBIEE - 组件
- OBIEE - 架构
- OBIEE - 存储库
- OBIEE - 业务层
- OBIEE - 展示层
- OBIEE - 测试存储库
- OBIEE - 多个逻辑表
- OBIEE - 计算度量
- OBIEE - 维度层次结构
- OBIEE - 基于级别的度量
- OBIEE - 聚合
- OBIEE - 变量
- OBIEE - 仪表板
- OBIEE - 过滤器
- OBIEE - 视图
- OBIEE - 提示
- OBIEE - 安全性
- OBIEE - 管理
- OBIEE 有用资源
- OBIEE - 问答
- OBIEE - 快速指南
- OBIEE - 有用资源
- OBIEE - 讨论
OBIEE – 变量
在 OBIEE 中,常用两种类型的变量:
- 存储库变量
- 会话变量
除此之外,您还可以定义展示变量和请求变量。
存储库变量
存储库变量在任何时间点都只有一个值。存储库变量是使用 Oracle BI 管理工具定义的。存储库变量可以在表达式构建器向导中代替常量使用。
存储库变量有两种类型:
- 静态存储库变量
- 动态存储库变量
静态存储库变量在变量对话框中定义,其值存在直到管理员更改它。
静态存储库变量包含数字或字符值的默认初始值。此外,您可以使用表达式构建器插入常量作为默认初始值,例如日期、时间等。您不能使用任何其他值或表达式作为静态存储库变量的默认初始值。
在较旧的 BI 版本中,管理员工具不限制静态存储库变量的值。如果您的存储库已从较旧的版本升级,您可能会在一致性检查中收到警告。在这种情况下,请更新静态存储库变量,以便默认初始值具有常量值。
动态存储库变量与静态变量相同,但其值由查询返回的数据刷新。定义动态存储库变量时,您可以创建一个初始化块或使用包含 SQL 查询的现有初始化块。您还可以设置 Oracle BI 服务器将遵循的计划,以便定期执行查询并刷新变量的值。
当动态存储库变量的值发生变化时,与业务模型关联的所有缓存条目都会自动删除。
每个查询可以刷新多个变量:查询中每一列一个变量。您可以安排这些查询由 Oracle BI 服务器执行。
动态存储库变量对于定义逻辑表源的内容非常有用。例如,假设您有两个关于订单信息的来源。一个来源包含当前订单,另一个来源包含历史数据。
创建存储库变量
在管理工具中 → 转到管理 → 选择变量 → 变量管理器 → 转到操作 → 新建 → 存储库 > 变量。
在变量对话框中,键入变量的名称(所有变量的名称必须唯一)→ 选择变量的类型 - 静态或动态。
如果选择动态变量,请使用初始化块列表选择将持续用于刷新值的现有初始化块。
要创建新的初始化块 → 单击新建。要添加默认初始值,请在默认初始值框中键入该值,或单击表达式构建器按钮以使用表达式构建器。
对于静态存储库变量,您在默认初始值窗口中指定的值将持续存在。除非您更改它,否则它不会更改。如果使用字符字符串初始化变量,请将字符串用单引号括起来。静态存储库变量必须具有作为常量值的默认初始值 → 单击确定关闭对话框。
会话变量
会话变量类似于动态存储库变量,它们从初始化块获取其值。当用户开始会话时,Oracle BI 服务器会创建会话变量的新实例并对其进行初始化。
Oracle BI 服务器上有多少个活动会话,就有多少个会话变量实例。每个会话变量实例都可以初始化为不同的值。
会话变量有两种类型:
- 系统会话变量
- 非系统会话变量
系统会话变量由 Oracle BI 和 Presentation Server 用于特定目的。它们具有预定义的保留名称,其他变量无法使用。
USER |
此变量保存用户输入的登录名值。此变量通常从用户的 LDAP 配置文件中填充。 |
USERGUID |
此变量包含用户的全局唯一标识符 (GUID),它从用户的 LDAP 配置文件中填充。 |
GROUP |
它包含用户所属的组。当用户属于多个组时,请在同一列中包含组名,用分号分隔(例如 - GroupA;GroupB;GroupC)。如果必须包含分号作为组名的一部分,请在分号前加上反斜杠字符 (\)。 |
ROLES |
此变量包含用户所属的应用程序角色。当用户属于多个角色时,请在同一列中包含角色名,用分号分隔(例如 - RoleA;RoleB;RoleC)。如果必须包含分号作为角色名的一部分,请在分号前加上反斜杠字符 (\)。 |
ROLEGUIDS |
它包含用户所属的应用程序角色的 GUID。应用程序角色的 GUID 与应用程序角色名称相同。 |
PERMISSIONS |
它包含用户持有的权限。例如 - oracle.bi.server.manageRepositories。 |
非系统会话变量用于设置用户过滤器。例如,您可以定义一个名为 Sale_Region 的非系统变量,该变量将初始化为用户销售区域的名称。
创建会话变量
在管理工具中 → 转到管理 → 选择变量。
在变量管理器对话框中,单击操作 → 新建 → 会话 → 变量。
在会话变量对话框中,输入变量名(所有变量的名称必须唯一,并且系统会话变量的名称是保留的,不能用于其他类型的变量)。
对于会话变量,您可以选择以下选项:
允许任何用户设置值 - 此选项用于在初始化块填充值后设置会话变量。例如 - 此选项允许非管理员为抽样设置此变量。
安全敏感 - 这用于在使用行级数据库安全策略(例如虚拟专用数据库 (VPD))时将变量标识为对安全敏感。
您可以使用初始化块列表选项选择将用于定期刷新值的初始化块。您还可以创建一个新的初始化块。
要添加默认初始值,请在默认初始值框中输入该值,或单击表达式构建器按钮以使用表达式构建器。单击确定关闭对话框。
管理员可以使用 Oracle BI 管理工具创建非系统会话变量。
展示变量
展示变量是在创建仪表板提示时创建的。可以使用两种类型的仪表板提示:
列提示
使用列提示创建的展示变量与列相关联,它可以取的值来自列值。
要创建展示变量,请转到新建提示对话框或编辑提示对话框 → 在变量集字段中选择展示变量 → 输入变量的名称。
变量提示
作为变量提示创建的展示变量与任何列都不相关,您需要定义其值。
要将展示变量作为变量提示的一部分创建,请在新建提示对话框或编辑提示对话框中 → 在提示字段中选择展示变量 → 输入变量的名称。
展示变量的值由与其创建的列或变量提示填充。每次用户在列或变量提示中选择一个值时,展示变量的值都会设置为用户选择的值。
初始化块
初始化块用于初始化 OBIEE 变量:动态存储库变量、系统会话变量和非系统会话变量。
它包含用于初始化或刷新与该块关联的变量的 SQL 语句。执行的 SQL 语句指向可以使用连接池访问的物理表。连接池在初始化块对话框中定义。
如果您希望初始化块的查询具有数据库特定的 SQL,则可以为此查询选择数据库类型。
使用初始化块初始化动态存储库变量
初始化块的默认初始化字符串字段用于设置动态存储库变量的值。您还可以定义一个计划,Oracle BI 服务器将遵循该计划来执行查询并刷新变量的值。如果您将日志级别设置为 2 或更高,则用于检索变量值的 所有 SQL 查询的日志信息将保存在 nqquery.log 文件中。
此文件在 BI 服务器上的位置:
ORACLE_INSTANCE\diagnostics\logs\OracleBIServerComponent\coreapplication_obisn
使用初始化块初始化会话变量
会话变量也从初始化块获取其值,但其值不会随时间间隔而改变。当用户开始新会话时,Oracle BI 服务器会创建一个新的会话变量实例。
如果在身份管理器用户对象中将日志级别设置为 2 或更高,或者在变量管理器中将 LOGLEVEL 系统会话变量设置为 2 或更高,则 BI 服务器执行以检索会话变量信息的 所有 SQL 查询将保存在 nqquery.log 文件中。
此文件在 BI 服务器上的位置:
ORACLE_INSTANCE\diagnostics\logs\OracleBIServerComponent\coreapplication_obisn
在管理员工具中创建初始化块
转到管理器 → 变量 → 变量管理器对话框出现。转到操作菜单 → 单击新建 → 存储库 → 初始化块 → 输入初始化块的名称。
转到计划选项卡 → 选择开始日期和时间以及刷新间隔。
您可以为初始化块选择以下选项:
禁用 - 如果选择此选项,则初始化块将被禁用。要启用初始化块,请在变量管理器中右键单击现有初始化块,然后选择启用。此选项使您可以更改此属性,而无需打开初始化块对话框。
允许延迟执行 - 这允许您延迟初始化块的执行,直到在会话期间第一次访问关联的会话变量。
身份验证所需 − 如果您选择此项,则必须执行初始化块才能让用户登录。如果未执行初始化块,则用户将被拒绝访问 Oracle BI。