📜  OBIEE¢变量

📅  最后修改于: 2020-11-27 07:23:44             🧑  作者: Mango


在OBIEE中,有两种常用的变量类型-

  • 储存库变量
  • 会话变量

除此之外,您还可以定义Presentation和Request变量。

存储库变量

存储库变量在任何时间点都具有单个值。存储库变量是使用Oracle BI管理工具定义的。可以使用存储库变量代替Expression Builder向导中的常量。

存储库变量有两种类型-

  • 静态存储库变量
  • 动态存储库变量

静态存储库变量在变量对话框中定义,并且它们的值一直存在,直到管理员更改它们为止。

静态存储库变量包含数字或字符值的默认初始化器。此外,您可以使用Expression Builder插入一个常量作为默认初始化器,例如日期,时间等。您不能将任何其他值或表达式用作静态存储库变量的默认初始化器。

在较早的BI版本中,管理员工具没有限制静态存储库变量的值。如果您的存储库已从旧版本升级,则在一致性检查中可能会收到警告。在这种情况下,请更新静态存储库变量,以使默认初始化程序具有恒定值。

动态存储库变量与静态变量相同,但是值由查询返回的数据刷新。定义动态存储库变量时,可以创建一个初始化块或使用一个包含SQL查询的预先存在的块。您还可以设置日程表,Oracle BI Server将遵循该日程表执行查询并定期刷新变量的值。

当动态存储库变量的值更改时,与业务模型关联的所有缓存条目都将自动删除。

每个查询可以刷新几个变量:查询中每一列一个变量。您可以安排这些查询由Oracle BI服务器执行。

动态存储库变量对于定义逻辑表源的内容很有用。例如,假设您有两个有关订单信息的资源。一个来源包含当前订单,另一个来源包含历史数据。

创建存储库变量

在管理工具→转到管理→选择变量→变量管理器→转到操作→新建→存储库>变量。

在“变量”对话框中,键入变量的名称(所有变量的名称均应唯一)→选择变量的类型-静态或动态。

如果选择动态变量,请使用初始化块列表选择一个现有的初始化块,该块将用于连续刷新值。

创建新的初始化块→单击“新建”。要添加默认的初始化器值,请在默认的初始化器框中键入值,或单击“表达式生成器”按钮以使用表达式生成器。

对于静态存储库变量,您在默认初始化程序窗口中指定的值将保留。除非您进行更改,否则它不会更改。如果您使用初始化变量,请用单字符串括起来的。静态存储库变量必须具有默认初始化器,这些默认初始化器为常量值→单击“确定”关闭对话框。

会话变量

会话变量类似于动态存储库变量,它们从初始化块获取其值。用户开始会话时,Oracle BI服务器将创建会话变量的新实例并对其进行初始化。

会话变量的实例与Oracle BI服务器上的活动会话一样多。会话变量的每个实例都可以初始化为不同的值。

会话变量有两种类型-

  • 系统会话变量
  • 非系统会话变量

Oracle BI和Presentation服务器将系统会话变量用于特定目的。它们具有预定义的保留名称,其他变量不能使用该保留名称。

USER

This variable holds the value the user enters with login name. This variable is typically populated from the LDAP profile of the user.

USERGUID

This variable contains the Global Unique Identifier (GUID) of the user and it is populated from the LDAP profile of the user.

GROUP

It contains the groups to which the user belongs. When a user belongs to multiple groups, include the group names in the same column, separated by semicolons (Example – GroupA;GroupB;GroupC). If a semicolon must be included as part of a group name, precede the semicolon with a backslash character (\).

ROLES

This variable contains the application roles to which the user belongs. When a user belongs to multiple roles, include the role names in the same column, separated by semicolons (Example – RoleA;RoleB;RoleC). If a semicolon must be included as part of a role name, precede the semicolon with a backslash character (\).

ROLEGUIDS

It contains the GUIDs for the application roles to which the user belongs. GUIDs for application roles are the same as the application role names.

PERMISSIONS

It contains the permissions held by the user. Example – oracle.bi.server.manageRepositories.

非系统会话变量用于设置用户过滤器。例如,您可以定义一个名为Sale_Region的非系统变量,该变量将初始化为用户的sale_region的名称。

创建会话变量

在管理工具中→转到管理→选择变量。

在变量管理器对话框中,单击操作→新建→会话→变量。

在“会话变量”对话框中,输入变量名称(所有变量的名称应唯一,并且系统会话变量的名称将保留,并且不能用于其他类型的变量)。

对于会话变量,您可以选择以下选项-

  • 允许任何用户设置值-在初始化块填充值后,此选项用于设置会话变量。示例-此选项允许非管理员设置此变量以进行采样。

  • 安全敏感-用于在使用行级数据库安全策略(例如虚拟专用数据库(VPD))时将变量标识为对安全敏感。

您可以使用初始化块列表选项来选择用于定期刷新值的初始化块。您还可以创建一个新的初始化块。

要添加默认的初始化器值,请在默认的初始化器框中输入值,或单击“表达式生成器”按钮以使用表达式生成器。单击“确定”关闭对话框。

管理员可以使用Oracle BI Administration工具创建非系统会话变量。

表示变量

演示变量是通过创建仪表板提示创建的。可以使用两种类型的仪表板提示-

列提示

使用列提示创建的演示文稿变量与列相关联,并且它可以采用的值来自列值。

要创建表示变量,请转到“新建提示”对话框或“编辑提示”对话框→在“变量集”字段中选择“表示变量”→输入变量的名称。

可变提示

创建为变量提示的演示文稿变量与任何列均不相关,您需要定义其值。

要在变量提示中创建表示变量,请在“新建提示”对话框或“编辑提示”对话框中,在“提示字段”中选择“表示变量”,然后输入变量的名称。

表示变量的值由创建它的列或变量提示填充。每次用户在列或变量提示中选择一个值时,表示变量的值都将设置为用户选择的值。

初始化块

初始化块用于初始化OBIEE变量:动态存储库变量,系统会话变量和非系统会话变量。

它包含执行以初始化或刷新与该块关联的变量的SQL语句。执行的SQL语句指向可以使用连接池访问的物理表。连接池在初始化块对话框中定义。

如果要查询的初始化块具有特定于数据库的SQL,则可以选择该查询的数据库类型。

使用初始化块初始化动态存储库变量

初始化块的默认启动字符串字段用于设置动态存储库变量的值。您还定义一个计划,Oracle BI Server遵循该计划以执行查询并刷新变量的值。如果将日志记录级别设置为2或更高,则为检索变量值而执行的所有SQL查询的日志信息将保存在nqquery.log文件中。

此文件在BI Server上的位置-

ORACLE_INSTANCE \ diagnostics \ logs \ OracleBIServerComponent \ coreapplication_obisn

使用初始化块初始化会话变量

会话变量也从初始化块获取它们的值,但是它们的值永远不会随时间间隔而变化。用户开始新的会话时,Oracle BI Server将创建会话变量的新实例。

如果在Identity Manager用户对象中将日志记录级别设置为2或更高,或者在变量管理器中将LOGLEVEL系统会话变量设置为2或更高,则由BI服务器执行以检索会话变量信息的所有SQL查询都保存在nqquery.log中文件。

此文件在BI Server上的位置-

ORACLE_INSTANCE \ diagnostics \ logs \ OracleBIServerComponent \ coreapplication_obisn

在管理员工具中创建初始化块

转到管理器→变量→变量管理器对话框。转到“操作”菜单→单击“新建”→“存储库”→“初始化块”→输入初始化块的名称。

转到计划选项卡→选择开始日期和时间以及刷新间隔。

您可以为初始化块选择以下选项-

  • 禁用-如果选择此选项,则禁用初始化块。要启用初始化块,请在变量管理器中右键单击现有的初始化块,然后选择启用。使用此选项,可以在不打开初始化块对话框的情况下更改此属性。

  • 允许延迟执行-这使您可以延迟初始化块的执行,直到在会话期间首次访问关联的会话变量为止。

  • 身份验证所必需的-如果选择此选项,则必须执行初始化块才能使用户登录。如果初始化块不执行,则拒绝用户访问Oracle BI。