在OBIEE中,有两种常用的变量和减号;
存储库变量
会话变量
除此之外,您还可以定义演示文稿和请求变量.
存储库变量
Repository变量在任何时间点都有一个值.存储库变量是使用Oracle BI管理工具定义的.可以使用存储库变量代替表达式构建器向导中的常量.
有两种类型的存储库变量 :
静态存储库变量
动态存储库变量
静态存储库变量在变量中定义对话框及其值存在,直到管理员更改它们为止.
静态存储库变量包含数值或字符值的默认初始值设定项.此外,您可以使用表达式生成器将常量作为默认初始值设定项插入,例如日期,时间等.您不能将任何其他值或表达式用作静态存储库变量的默认初始值设定项.
在较旧的BI版本中,管理员工具不限制静态存储库变量的值.如果您的存储库已从旧版本升级,则可能会在一致性检查中收到警告.在这种情况下,更新静态存储库变量,以便默认初始值设定项具有常量值.
动态存储库变量与静态变量相同,但值由查询返回的数据刷新.定义动态存储库变量时,可以创建初始化块或使用包含SQL查询的预先存在的块.您还可以设置Oracle BI Server执行查询所遵循的计划并定期刷新变量的值.
当动态存储库变量的值更改时,所有缓存与业务模型关联的条目将自动删除.
每个查询都可以刷新多个变量:查询中每列的一个变量.您可以安排这些查询由Oracle BI服务器执行.
动态存储库变量对于定义逻辑表源的内容非常有用.例如,假设您有两个有关订单信息的来源.一个源包含当前订单,另一个包含历史数据.
创建存储库变量
在管理工具 → 转到Manage → 选择Variables → 变量经理 → 去Action → 新的 → 存储库>变量.
在"变量"对话框中,键入变量的名称(所有变量的名称应该是唯一的) → 选择变量类型 - 静态或动态.
如果选择动态变量,请使用初始化块列表选择将用于连续刷新值的现有初始化块.
创建一个新的初始化块 → 单击新建.要添加默认初始值设定项值,请在默认初始值设定项框中键入值,或单击"表达式生成器"按钮以使用表达式生成器.
对于静态存储库变量,您在默认值中指定的值初始化窗口仍然存在.除非您更改它,否则不会更改.如果使用字符串初始化变量,请将该字符串括在单引号中.静态存储库变量必须具有默认初始值设定项,它们是常量值 → 单击"确定"关闭对话框.
会话变量
会话变量类似于动态存储库变量,它们从初始化块获取值.当用户开始会话时,Oracle BI服务器会创建新的会话变量实例并对其进行初始化.
会话变量的实例数与Oracle BI上的活动会话数一样多服务器.会话变量的每个实例都可以初始化为不同的值.
有两种类型的Session变量 :
系统会话变量
非系统会话变量
使用系统会话变量由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的非系统变量,该变量将初始化为用户sale_region的名称.
创建会话变量
在Administration Tool&rarr中;转到Manage → 选择变量.
在"变量管理器"对话框中,单击"操作"和"rarr";新的 → 会话 → 变量.
在"会话变量"对话框中,输入变量名称(所有变量的名称应该是唯一的,系统会话变量的名称是保留的,不能用于其他类型的变量)./p>
对于会话变量,您可以选择以下选项 :
允许任何用户设置值 : 此选项用于在初始化块填充值后设置会话变量.示例 - 此选项允许非管理员将此变量设置为采样.
安全敏感 : 这用于在使用行级数据库安全策略(例如虚拟专用数据库(VPD))时将变量标识为对安全性敏感.
您可以使用初始化块列表选项选择将用于定期刷新值的初始化块.您还可以创建新的初始化块.
要添加默认初始值设定项值,请在默认初始值设定项框中输入值,或单击"表达式生成器"按钮以使用表达式生成器.单击"确定"关闭对话框.
管理员可以使用Oracle BI管理工具创建非系统会话变量.
演示文稿变量
通过创建仪表板提示创建演示文稿变量.有两种类型的仪表板提示可以使用 :
列提示
使用列提示创建的表示变量与列关联,并且它可以采用的值来自列值.
要创建演示文稿变量,请转到"新建提示"对话框或"编辑提示"对话框 → 在Set of a variable字段&rarr中选择Presentation Variable;输入变量的名称.
变量提示
作为变量提示创建的表示变量不与任何列关联,您需要定义其值.
要在变量提示中创建表示变量,请在"新建提示"对话框或"编辑提示"对话框&rarr中;在Prompt for field&rarr中选择Presentation Variable;输入变量的名称.
表示变量的值由创建它的列或变量提示符填充.每次用户在列或变量提示中选择一个值时,表示变量的值将设置为用户选择的值.
初始化块
初始化块用于初始化OBIEE变量:动态存储库变量,系统会话变量和非系统会话变量.
它包含用于初始化或刷新的SQL语句与该块关联的变量.执行的SQL语句指向可以使用连接池访问的物理表.连接池在初始化块对话框中定义.
如果希望查询初始化块具有特定于数据库的SQL,则可以为该查询选择数据库类型.
使用初始化块初始化动态存储库变量
初始化块的默认初始字符串字段用于设置动态存储库变量的值.您还可以定义一个计划,Oracle BI服务器将执行该计划以执行查询并刷新变量的值.如果将日志记录级别设置为2或更高,则为检索变量值而执行的所有SQL查询的日志信息将保存在nqquery.log文件中.
此文件在BI Server上的位置 :
ORACLE_INSTANCE \diagnostics\logs \OracleBIServerComponent \ coreapplication_obisn
使用初始化块初始化会话变量
会话变量也从初始化块中获取它们的值,但它们的值永远不会随时间间隔而变化.当用户开始新会话时,Oracle BI服务器会创建会话变量的新实例.
如果日志记录级别设置为2,则执行所有SQL查询以通过BI服务器检索会话变量信息Identity Manager用户对象中的更高版本或LOGLEVEL系统会话变量在变量管理器中设置为2或更高,保存在nqquery.log文件中.
此文件在BI Server上的位置 :
ORACLE_INSTANCE \diagnostics\logs \OracleBIServerComponent \ coreapplication_obisn
在管理员工具中创建初始化块
前往经理 → 变量 → 出现"变量管理器"对话框.转到"操作"菜单 → 单击New → 存储库 → 初始化块 → 输入初始化块的名称.
转到Schedule tab → 选择开始日期和时间以及刷新间隔.
您可以为初始化块选择以下选项:
禁用 : 如果选择此选项,则禁用初始化块.要启用初始化块,请右键单击"变量管理器"中的现有初始化块,然后选择"启用".此选项使您无需打开初始化块对话框即可更改此属性.
允许延迟执行 : 这允许您推迟初始化块的执行,直到会话期间第一次访问关联的会话变量.
身份验证需要 : 如果选择此选项,则必须执行初始化块以供用户登录.如果初始化块未执行,则拒绝用户访问Oracle BI.