📅  最后修改于: 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。