2 创建分析

本章介绍如何在 Oracle Business Intelligence 企业版中创建分析,包括如何为分析指定标准、显示结果以及检查 SQL 语句。其中还说明了主题区域和列、双列功能和变量。

什么是分析?

分析是一种针对组织数据的查询,用于提供业务问题的答案。

利用分析,您可以直观地将数据显示在表、图形、数据透视表等视图中,以便浏览信息并与信息进行交互。可以保存、组织和共享分析结果。

所创建的分析可保存到 Oracle BI 表示目录中,并且可集成到任何 Oracle BI EE 仪表盘。可通过图形、结果布局、计算项和钻探等功能改进分析。

如何使用分析?

可以通过编辑器使用分析。

要使用分析,请使用以下编辑器之一:

  • “分析”编辑器 - 一个功能丰富的编辑器,可用于直观地将数据显示在表、图形和数据透视表等视图中,以便浏览信息以及与信息进行交互。有关详细信息,请参阅什么是“分析”编辑器?

    如果管理员已授予您对“分析”的访问权限,则您有权访问此编辑器。

  • BI 编写器向导 - 一个简单易用的向导,可用于创建、编辑或查看分析,而无需使用复杂的“分析”编辑器。有关详细信息,请参阅使用 BI 编写器处理分析

    只有在管理员授予您对“BI 编写器”的访问权限之后,您才有权访问此编辑器。

可以在“我的帐户”对话框的“首选项”选项卡上指定您要使用的编辑器。但是,如果您在“登录”页或“我的帐户”对话框的“首选项”选项卡中启用了访问模式,则在访问模式下 BI 编写器向导将用作“分析”编辑器,而不考虑您的选择。

如何处理分析?

在处理分析时,将以逻辑 SQL 语句的形式向 Oracle BI Server 发送请求。

BI Server 然后会针对适当的数据源生成查询。当 BI Server 收到查询结果时,这些结果的格式还不适合返回给用户。BI Server 会合并这些结果并应用与这些结果相关的任何附加计算或过滤器。然后,BI Server 会将数据发送给 Oracle BI Presentation Services,后者将对这些结果进行格式设置以供显示。

如何始终看到分析的最新结果?

如果在仪表盘中嵌入分析,则在每次访问仪表盘时都会自动执行分析并显示最新结果。

例如,如果您是一名销售主管,您所在的公司每天都会捕获销售数据,那么您可能希望在仪表盘的首页看到当天所销售产品的美元金额。

可以使用“仪表盘”编辑器嵌入保存的分析。有关“仪表盘”编辑器的信息,请参阅将内容添加到仪表盘

什么是主题区域和列?

主题区域和列是分析的构建块。

主题区域包含文件夹、度量列、属性列、分层列以及表示有关组织业务区域或有关组织中的用户组的信息的层次级别。主题区域通常具有与所包含的信息类型对应的名称,例如营销合同、服务请求和订单。

主题区域与 Oracle BI 元数据资料档案库中的表示层相对应。在资料档案库中,主题区域是表示层中最高级别的对象,表示最终用户在创建或编辑分析时所看到数据的视图。

相关主题区域是连接到分析中主要主题区域的外部数据源。

设计和构建元数据资料档案库的个人(例如 Business Intelligence 策略专家、元数据提供方或提取、转换、加载 (ETL) 开发人员)可使用 Oracle BI 管理工具创建主题区域。通常,他们并不为其公司的数据创建一个较大的主题区域,而是会创建多个较小的主题区域。这使他们可以在一个较小的主题区域中为一组特定用户或公司的特定区域提供其所需的最重要数据,并在从同一业务模型层创建的一个或多个相关主题区域中提供重要程度较低的数据。使用这些较小的主题区域可便于用户查找他们所需的数据。它还使维护数据变得更加容易。有关详细信息,请参阅《Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition》中的 Creating Subject Areas

注:

设计和构建元数据资料档案库的人员可以指定隐藏主题区域、文件夹 (及其子级) 或列 (包括属性列和分层列)。隐藏的主题区域、文件夹或列在“主题区域”窗格中不可见,但在别的地方 (例如分析或保存的过滤内容) 可见。(由于对象在别的地方仍可见,通过这种方式隐藏主题区域、文件夹或列不能解决安全性和访问控制问题。)

如果现有分析标准包括的主题区域、文件夹或列在随后隐藏,分析将仍可访问,但主题区域、文件夹或列在“分析”编辑器的“标准”选项卡的“主题区域”窗格中将不再显示。

列中包含分析返回的各个数据片段。列通常具有指示所包含的信息类型的名称,例如帐户或联系人。列与过滤器和选择步骤一起决定分析包含的数据。

创建分析、过滤器或仪表盘提示时,首先选择要使用的主题区域。此区域称为主要主题区域并显示在“主题区域”窗格中。如果您在工作时发现需要更多数据,则可以添加与已选择的主要主题区域相关的附加主题区域。(仅当相关主题区域对主要主题区域可用并且您有权访问它们时,才能添加相关主题区域。)

注:

您还可以将自己的数据添加到分析中。有关信息,请参阅将外部数据添加到分析

通常,当您查询单个主题区域时,该主题区域中显示的所有度量列均与同一主题区域中显示的所有属性列和分层列兼容。然而,当您组合多个主题区域中的列时,必须确保不包含度量列与相互不兼容的属性列和分层列的组合。

例如,一个主题区域中的度量列可能不与“项目”属性列相关联。对于与另一个主题区域中的“项目”属性列关联的度量列,如果将这些度量列以及不与“项目”关联的列一起添加到分析中,则查询可能会无法返回结果,或者导致 BI Server 错误:请求的详细信息级别 XXXX 没有事实表

必须至少选择一个要包含在分析中的列,才能使分析返回数据。

列类型有哪些?

不同类型的列用于不同情况。

主题区域包含以下类型的列:

  • 属性列 — 存放值的平面列表,这些值也称为成员。这些成员之间不存在层次关系,分层列的成员也是如此。属性列在以前发行版 (11g 之前) 中称为表示列。

    示例包括 "ProductID" 或 "City"。

  • 分层列 — 存放同时使用命名的级别和父/子关系组织的数据值。此列使用树状结构显示。各个成员按大纲方式显示。通过层次可以更深入地在数据中钻探,以查看更详细的信息。示例包括“时间”或“地理位置”。该插图显示了在“主题区域”窗格中展开的“时间”文件夹以及“时间”和“财政时间”层次。

    分层列是以下类型之一:

    • 基于级别的层次 — 由两个或更多级别的排序集组成。例如,时间层次可能具有“年份”、“季度”和“月份”三个级别。基于级别的层次还可以包含父/子关系。

    • 父/子层次 — 由定义父/子关系中的层次的值组成,且不包含命名的级别。例如,“员工”层次可能没有级别,但是具有由其他员工管理的员工的名称。员工可以具有职称,例如副总裁。副总裁可能需要向其他更高级别的副总裁报告,且不同副总裁在层次中处于不同的深度。

    除了基于级别或父/子关系,分层列还是以下类型之一:

    • 不齐整 — 在这种层次中,所有最低级别的成员并非都具有相同的深度。例如,“时间”层次在天级别可能具有当前月份的数据,在月份级别可能具有上个月的数据,在季度级别可能具有过去 5 年的数据。此类型的层次也称为不平衡层次。

    • 跳过级别 — 在这种层次中,某些成员不具有某些较高级别的值。例如,美国哥伦比亚特区的华盛顿市不属于某个州。预期结果是用户仍可以从国家/地区级别 (美国) 导航到华盛顿以及较低级别,而不需要导航到某个州。

  • 度量列 — 存放数据值的简单列表。它是 Oracle BI EE 资料档案库中的列,通常位于事实表中,可以针对每个记录更改该列,并且可以通过某种方式将该列相加或进行聚合。示例包括“Revenue”或“Units Sold”。

在本指南通篇中,术语“列”本身通常是指所有这三种类型。在必要时包含特定类型列的名称。

如何直观指示列?

每种类型的列在某些位置 (例如“主题区域”窗格和“布局”窗格) 都由其各自图标指示。

可以展开基于级别的层次以查看其级别。父/子层次显示为没有级别的分层列。该插图显示了各种列的图标和名称。

了解双列功能

必须先配置双列,然后才能显示代码列和显示用于数据的列。

Oracle BI EE 提供了一种称为“双列”的功能。在为资料档案库配置双列功能后,列数据会包含一个显示列和一个映射到显示列的代码列 (也就是说,列数据具有双列)。显示列包含列数据的显示值,例如“优秀”、“良好”和“较差”。代码列包含唯一标识显示值的代码值,这些代码值在用户或区域设置之间是一致的,例如代码值 1 (唯一标识“优秀”)、2 (唯一标识“良好”) 和 3 (唯一标识“较差”)。

在 Oracle BI EE 处理双列 (例如,作为分析标准的一部分或过滤器基础进行处理) 时,它会生成 SQL 语句并将这些语句发布到 Oracle BI Server,后者将使用代码值而不是显示值,从而使过滤器与语言无关。

通过双列功能可以:

  • 构建按语言无关代码自动进行过滤的国际化分析。(在以前发行版 (11g 之前) 中,过滤器是与语言相关的。)例如,可以构建一个可同时供法语用户和英语用户使用的过滤分析。

  • 构建可在各组之间共享的公用分析,即使这些组需要不同的显示值也可共享。例如,可以构建这样一个公用分析:向一个组显示“状态”字段的值“优秀”、“良好”和“较差”,向另一个组显示“状态”字段的值“很棒”、“较好”和“不好”。

  • 在不破坏现有分析的情况下更改显示值。例如,假设有一个分析是按显示值“优秀”进行过滤的。如果这是双列,则按其代码列执行过滤,该代码列具有“优秀”的代码值而不是“优秀”的显示值。这意味着可以将显示值“优秀”更改为“很棒”,而不会破坏现有分析。

此外,如果您所在的组织允许在 Oracle BI EE 中显示代码值,则可以在某些对话框 (例如“新建过滤器”对话框) 中使用代码值而不是显示值。例如,这意味着在应用过滤器期间指定要使用的值时,可以指定代码值而不是显示值。

在使用双列功能之前,管理员必须先配置资料档案库,将代码列映射到显示列。要确定是否为资料档案库配置了双列,请与管理员联系。

什么是“分析”编辑器?

利用“分析”编辑器,您可以直观地将数据显示在表、图形和数据透视表等视图中,以便浏览信息以及与信息进行交互。

可以将所创建的视图包含在分析中以供在仪表盘中显示。

“分析”编辑器包含以下选项卡:

  • “标准”选项卡 - 可用于指定分析标准,包括列和过滤器。可以指定应返回结果的顺序、格式设置(例如标题、小数位数、诸如字体和颜色之类的样式及条件格式设置)以及列公式(例如添加排名或百分比段函数)。另外,您可以更改主题区域和主题区域文件夹的排序顺序 (有关其他信息,请参阅更改主题区域和主题区域文件夹的排序顺序)。

  • “结果”选项卡 - 可用于创建不同的分析结果视图,例如图形、指示器和数据透视表。此外,您还可以添加或修改选择步骤。

  • “提示”选项卡 - 可用于创建提示;利用提示,用户可以选择对仪表盘上的分析进行过滤的值。利用提示,用户可以选择动态过滤分析中的所有视图的值。您也可以创建用于选择步骤的提示,这适用于成员选择步骤和限定条件步骤。

  • “高级”选项卡 - 可用于编辑 XML 代码以及检查为分析生成的逻辑 SQL 语句。可以将现有 SQL 语句作为创建新分析的基础。

“分析”编辑器的各选项卡组织为不同的窗格和区域。在工作时,您可以根据需要管理这些窗格。请参阅管理“分析”编辑器选项卡中的窗格

创建 (或编辑) 分析时访问“分析”编辑器。请参阅创建新分析

注:

如果您是在访问模式下使用 Oracle BI EE,则在创建 (或编辑) 分析时,“分析”编辑器将替换为 BI 编写器向导。有关 BI 编写器的详细信息,请参阅使用 BI 编写器处理分析。有关访问模式的详细信息,请参阅可访问性功能

管理“分析”编辑器选项卡中的窗格

“分析”编辑器中的每个选项卡由多个窗格组成。

例如,“结果”选项卡包含“主题区域”窗格、“目录”窗格、“视图”窗格、复合布局和“选择步骤”窗格。

在工作时,您可以管理这些窗格,使自己获得最充足的工作区域来处理正在执行的任务。例如,如果您向“结果”选项卡上的复合布局添加多个视图,可能希望隐藏“结果”选项卡上的其他窗格,使显示正在添加的视图的区域最大化。您可以执行以下操作:

  • 通过单击显示在左侧和右侧之间的左右三角形按钮,显示或隐藏位于“分析”编辑器左侧的窗格。

  • 通过单击各窗格标题栏中的加号或减号按钮,展开或隐藏该窗格。

  • 通过拖动扩展窗格的分割条,调整该窗格的大小。例如,可以向上拖动“目录”窗格上方的分隔条,增加该窗格的高度。

  • 通过单击窗格的显示/隐藏按钮(如果工具栏上为该窗格提供此按钮),显示或隐藏该窗格。例如,可以通过单击工具栏上的显示/隐藏过滤器窗格,显示或隐藏“标准”选项卡中的“过滤器”窗格。

构建分析的过程是什么?

创建有用的分析需要几个步骤。

注:

如果您在访问模式下使用 Oracle BI EE,或者已选择向导 (有限功能) 作为“分析”编辑器,则可使用 BI 编写器向导而不是“分析”编辑器来构建分析。有关 BI 编写器的详细信息,请参阅使用 BI 编写器处理分析。有关访问模式的详细信息,请参阅可访问性功能

构建分析的过程包括以下步骤:

  1. 创建新分析

  2. 指定分析标准

  3. 显示分析结果

  4. 将提示添加到分析

  5. 检查分析的逻辑 SQL 语句

  6. 保存分析

创建新分析

这是构建分析过程中的一个步骤。

有关详细信息,请参阅构建分析的过程是什么?

通过创建分析,可以将分析添加到仪表盘。

  • 在全局标题中,依次单击新建分析,然后单击以下选项之一:
    • 选择主题区域。如果您购买了 Oracle Data Visualization,则还可以选择外部数据源 (上载的 Microsoft Excel 文件)。

      此时将显示“分析”编辑器。现在可以指定分析标准。请参阅指定分析标准

    • 创建直接数据库查询

      有关信息,请参阅使用直接数据库请求

    • 从简单的逻辑 SQL 创建分析

      此时将显示“分析简单 SQL 语句”对话框,在其中可输入用于创建分析的 SQL 语句。您可以显示“分析”编辑器并在其中进行处理,随后再合并到仪表盘和代理中。

指定分析标准

此过程是构建分析过程中的一个步骤。

有关详细信息,请参阅构建分析的过程是什么?

使用“分析”编辑器的“标准”选项卡可以指定分析标准,包括列、过滤器和选择步骤。您还可以指定:

  • 在分析结果中显示列的默认顺序

  • 显示在视图中的值的默认排序

  • 默认格式设置(例如标题、小数位数、条件格式和系统范围默认值)

  • 列公式 (例如添加排名或百分比段函数)

  • 列总计的聚合规则

  • “主题区域”窗格中主题区域文件夹和文件夹对象的排序顺序

要指定分析标准,请执行以下操作:

  1. 在“标准”选项卡中,通过执行以下操作之一来选择要包含在分析中的列:
    • 双击“主题区域”窗格中的列。

    • 将“主题区域”窗格中的列拖放到“所选列”窗格。

      要选择多个不相邻列,请按住 Ctrl 键,然后单击要包含的每一列。

    • 从“目录”窗格拖放已保存列。

    所选列显示在“所选列”窗格的一个框中。每个列框包含两个部分。上半部分显示包含该列的文件夹的名称,例如“客户”。下半部分显示该列的名称,例如“客户名称”。

    希望实现的操作:

    • 从显示在“主题区域”窗格中的主题区域内,单击搜索按钮以启动搜索。

    • 更改主题区域文件夹以及各文件夹中对象的排序顺序,然后单击排序主题区域按钮。单击该按钮可执行排序并关闭除主要主题区域之外的所有主题区域文件夹。有关其他信息,请参阅更改主题区域和主题区域文件夹的排序顺序

    • 添加或删除从中选择列的相关主题区域,单击“主题区域”窗格中的添加/删除主题区域按钮可以显示“添加/删除主题区域”对话框。

      如果向分析中添加一个相关主题区域但未添加该主题区域中的任何列,则在关闭并重新打开分析时,该主题区域不与分析相关。

    • 主题区域旁边的复选标记标识已添加的相关主题区域。灰显的复选标记标识主要主题区域或者分析、命名过滤器或列提示中当前正在使用其数据的相关主题区域。您不能删除主要主题区域。仅在当前不使用相应数据时,才能删除相关主题区域。

    • 刷新“主题区域”窗格中的内容;单击“主题区域”窗格上的刷新按钮或者单击该按钮旁边的箭头。

      单击该按钮会执行刷新显示的默认行为。单击箭头可选择刷新显示重新加载服务器元数据来刷新主题区域的元数据。

  2. 根据需要使用“所选列”窗格修改列或分层列级别:
    • 在“所选列”窗格中单击列名右侧的选项按钮可显示各个选项,使用这些选项可以:

      • 指定列的排序顺序。(不能指定层次级别的排序顺序。)

        有关详细信息,请参阅对视图中的数据排序

      • 编辑属性列和度量列的公式,包括定制标题和指定聚合规则。(不能为分层列或层次级别定制标题、指定聚合规则或编辑公式。)

        有关详细信息,请参阅编辑列公式

      • 编辑列属性以控制列和层次级别的格式设置和交互。

        有关应用格式的详细信息,请参阅向列应用格式设置

      • 为属性列和度量列添加过滤器。(不能为分层列或层次级别添加过滤器。)有关详细信息,请参阅创建列过滤器

      • 从分析中删除列。(不能删除层次级别。)

    • 在“所选列”窗格中单击从标准中删除所有列按钮,从分析中删除所有列。

    • 在“所选列”窗格中单击基于并集、交集和补集操作组合结果按钮,将两个或更多分析的结果组合为单个结果。有关详细信息,请参阅使用集合操作组合列

    • 在“所选列”窗格中使用拖动列按钮,按显示在分析结果中的默认顺序放置列。

  3. 根据需要使用“过滤器”窗格添加和编辑内嵌过滤器。

    有关详细信息,请参阅创建列过滤器

  4. 根据需要使用“选择步骤”窗格创建或编辑选择步骤。

    有关详细信息,请参阅使用数据选择

  5. 根据需要使用“目录”窗格添加 Oracle BI 表示目录中的命名过滤器、计算项和组。
  6. 根据需要使用“标准”选项卡上的工具栏按钮显示或隐藏“过滤器”窗格、显示或隐藏“选择步骤”窗格以及编辑分析的属性,例如在没有可用结果时显示的消息类型(默认或定制)。

现在可以向分析中添加视图。请参阅显示分析结果

请记住下列准则:

  • 通常,分析中应至少包含一个度量列。度量列是业务绩效的关键附加度量,例如每个店铺的美元销售额或每天未完成和已完成的服务请求数。不带任何度量列的分析通常是没有意义的,会导致较差的查询性能或意外结果。如果要构建不带任何度量列的分析,请首先与管理员联系。

  • 通常,应避免在同一分析中同时包含分层列和分层列中较低级别的属性列,除非已执行选择步骤将分析中的数据限制为仅与属性列相同级别的数据。如果这样做,属性列所在级别以上所有级别的数据将会不正确。

    例如,假设有一个名为“Merchandise Hierarchy”的分层列,并具有以下级别:

    Total Product
       Brand
          LOB
             Product Type
                Product
    

    并有另一个名为“Product Name”的属性列,其级别与“Product”级别相同。如果在同一个分析中同时包括“Merchandise Hierarchy”和“Product Name”属性列,“Product”级别以上的数据将会不正确。

  • 如果在显示分析结果之后将“主题区域”窗格中的列添加到“所选列”窗格,则现有视图中可能包含(即,显示在视图中)或排除该列,具体取决于“分析属性”对话框“数据”选项卡中的显示在“标准”选项卡中添加的列选项的设置:

    • 如果为显示在“标准”选项卡中添加的列选项选择了在现有视图与新视图中显示选项,则该列将包含在现有视图以及您添加的所有新视图中。

    • 如果为显示在“标准”选项卡中添加的列选项选择了从现有视图中排除,但在新视图中显示选项,则该列将从现有视图中排除 (即,放在“布局”窗格的“已排除”放置目标中),但包含在您添加的所有新视图中。

      有关“已排除”放置目标的详细信息,请参阅了解放置目标

了解空值隐藏

内容设计者需要指定是否将显示空值。

默认情况下,隐藏所有分析的空度量值。作为内容设计者,有时您可能需要在分析中包括空值以帮助总体了解数据。您可以通过选择包括空值选项来设置为分析和视图级别的数据显示空值。

选择包括空值选项时,以下方面适用于分析或视图:

  • 将显示列成员。

  • 在关闭了空值隐藏的维边上钻探列时,将为该维边上的所有列关闭空值隐藏。

  • 成员选择和条件应用于维边并首先进行过滤。

    注:

    空值可能会由于应用的条件而不显示。
  • 计算项、组、总计、合计、将数据显示为百分比以及服务器运行聚合 (例如,运行总和) 不受包括空值 设置的影响。

注:

Oracle BI Presentation Services 根据位于 NQSConfig.INI 文件中的 NULL_VALUES_SORT_FIRST 设置对空值进行排序。

注:

如果在度量上设置了标准过滤器,则表视图中将禁止显示空值。

无法对以下内容关闭空值隐藏:

要在分析级别关闭空值隐藏,请执行以下操作:

  1. 在“标准”或“结果”选项卡中,单击分析属性按钮。

  2. 选择包括空值选项以对所有视图关闭空值隐藏。

    注:

    可以在视图级别为漏斗图、计量表、图形、表、数据透视表和格状图覆盖空值隐藏。

要在视图级别为漏斗图、计量表、图形、表、数据透视表和格状图关闭空值隐藏,请执行以下操作:

  1. 显示特定视图的“结果”选项卡。有关其他信息,请参阅编辑视图

  2. 单击属性按钮。

  3. 选择视图相应的包括空值选项。例如,如果要对数据透视表中的行和列关闭空值隐藏,请选中包含仅具有空值的行包含仅具有空值的列复选框。此设置显示具有数据的对应维以及空值。

    注:

    如果视图包含提示或区域维边,则它们还将从行或列维边继承空值隐藏值。

注:

关闭空值隐藏可能会增加返回的数据量并影响性能。有关其他信息,请与管理员联系。

如果包含空值的分析结果不是预期的,请确保源中的数据保持一致。有关详细信息,请参阅《Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition》中的 Ensuring That Data in Multiple Sources Is Consistent

示例 1:当包括空值时将过滤器添加到度量上的行维边

此示例显示带有不同行维边过滤选项的数据透视表。

假定您有一个行维边为 Year 的数据透视表,并在“数据透视表属性”对话框中选择了包括空值(即,不隐藏空值)。

该插图显示未隐藏空值的行维边上的“T05 Per Name Year”示例。

该插图显示未隐藏空值且标准过滤器设置为 2011 和 2012 的行维边上的“T05 Per Name Year”示例。为属性列设置标准过滤器时,将应用该过滤器并从分析中删除对应行。

示例 2:当包括空值时将过滤器添加到度量上的行维边

此示例显示数据透视表,其中将一个过滤器应用于包含空值的表数据。

假定您有同一个行维边上为“Year”的数据透视表,并在“数据透视表属性”对话框中选择了空值 (如示例 1:当包括空值时将过滤器添加到度量上的行维边中所示的相同标准)。但这次在度量“1 - 收入”上设置过滤器,其中值为“大于 23,000,000”。

该插图显示了结果示例。Oracle BI Server 为未隐藏的维边查询返回所有年份 (不考虑度量过滤器)。因为“T05 Per Name Year”的度量值等于 23,000,000,所以将过滤出该行的值,但该行仍将显示。

示例 3:当包括空值时将“不为空值”过滤器添加到度量上的行维边

此示例显示在将“不为空值”过滤器应用于具有空值的数据透视表时呈现的内容。

假定您有同一个行维边上为“Year”的数据透视表,并在“数据透视表属性”对话框中选择了包括空值 (如示例 1:当包括空值时将过滤器添加到度量上的行维边中所示的相同标准)。但这次将度量“1 - Revenue”上的过滤器设置为不为空值

该插图显示了结果示例。Oracle BI Server 返回所有值并针对成员遵从包括空值选项。因此,显示具有空值的所有行。

编辑列公式

在指定分析标准时,可以编辑属性列和度量列的公式。

此编辑操作仅在分析上下文中影响列,不会修改主题区域中原始列的公式。此外,还可以定制表和列标题以及指定列总计的聚合规则。(此功能不适用于分层列。)

列公式指定列值所表示的内容。在最基本的公式形式 (例如 "Base Facts"."1 - Revenue") 中,列按原样从数据源中获取数据。可以编辑公式以添加函数、条件表达式等等。此编辑操作使您可以通过各种方式呈现分析结果。例如,假定您要执行假设分析,并且在收入增加 10% 的情况下按产品显示收入可能是多少。您只需通过更改“1 - Revenue”列的公式来显示增加 10% 后的收入,便可了解增加了多少。该插图使用一个数据透视表显示分析,其中包含“1 - Revenue”列 (显示数据源中的收入) 和“1 - Revenue Increased by 10%”列,在此已对“1 - Revenue”列的公式进行了编辑以计算增加 10% 后的收入。

  1. 在“所选列”窗格中,单击要编辑其公式的列旁边的选项按钮,然后选择编辑公式
  2. 使用“编辑列公式”对话框的“列公式”选项卡可以执行各种任务,例如创建定制标题以及创建或编辑列公式。可以使用运算符和字符按钮构建简单的数学公式,例如 "Base Facts"."1 - Revenue"*1.10。
  3. 可以选择性地使用“编辑列公式”对话框的“收集器”选项卡将列值组合为集合。
  4. 单击确定
    列公式随它所用于的分析一起保存。

使用集合操作组合列

您可以使用集合操作来组合列,以不同方式显示数据。

在为分析选择了主题区域后,可以使用集合操作 (例如并集或交集) 组合一个或多个主题区域中的列。通过组合列,可以创建一个以不同方式显示数据的列。

有关选择要组合的列的准则

如果满足特定准则,则可以组合列。

选择要组合的列时,请牢记以下准则:

  • 要组合的列的编号和数据类型必须相同。为每个列返回的行数可以不同。

  • 可以从同一主题区域中或不同主题区域中选择列,但这些列必须具有某一共性。

  • 只能为一个标准集合指定一个集合操作。例如,如果从“A-Sample Sales”主题区域创建标准,只能向这些列应用一个集合操作。不能向标准集合中的不同列应用不同的集合操作。

  • 在合并标准时,不能使用分层列、选择步骤或组。

使用集合操作组合列与从相关主题区域添加列之间的区别

集合操作与添加列之间存在明显的不同。

使用集合操作组合列与从相关主题区域添加列产生的结果不同:

  • 使用集合操作组合列时,分析结果会显示由集合操作控制的单个新组合列。有关示例,请参阅示例:组合一个主题区域中的列

  • 在将相关主题区域中的列添加到分析时,结果会单独显示每个添加的列。例如,如果您具有适当的权限,则可以通过以下方法创建分析:从主要主题区域选择一列并从相关主题区域选择另一列。

有关信息,请参阅什么是主题区域和列?

示例:组合一个主题区域中的列

可以组合单个主题区域中的两列来创建综合数据集。

“A-Sample Sales”主题区域包含“Offices”文件夹,该文件夹又包含“D1 Office”和“D2 Department”列。您可以将这两列组合起来,创建一个名为“Offices & Departments”的列。可以包含并集集合操作来指定这一新列,从而将前两个列中的所有值显示在表的单个列中。

组合一个或多个主题区域中的列

可以组合一个或多个主题区域中的列。

一些步骤引用了使用“A-Sample Sales”主题区域创建“Offices & Departments”列的示例。

注:

已保存为系统范围默认值的列数据格式设置并不会反映在组合列中。如果希望将数据格式设置包含在组合列中,必须将其重新应用于组合列。有关数据格式设置的详细信息,请参阅“列属性”对话框的“数据格式”选项卡。

通过组合来自多个主题区域的列可以混合数据,使其对用户更有意义:

  1. 在“分析”编辑器中,创建一个使用主题区域 (例如“A-Sample Sales”) 的空分析。
  2. 在“标准”选项卡中,选择要包含在分析中的列。例如,选择“Offices”文件夹中的“D1 Office”和“Base Facts”文件夹中的“1 - Revenue”。
  3. 在“所选列”窗格中,单击基于并集、交集和补集操作组合结果按钮以显示“选择主题区域”菜单。
  4. 选择一个主题区域,其中包含要与先前包含的列组合在一起的列。例如,单击“A-Sample Sales”。
    此时会在“所选列”窗格中显示“集合操作”区域。您会看到标准下方显示了带有虚线边框的方框。这些方框所指示的列必须与先前包含的列组合在一起。例如,这些框可能包含“添加列 (D1 Office)”和“添加列 (1 - Revenue)”。此文本指示使用集合操作将包含在其中每个方框中的列将与先前选择的 D1 Office 和 1 - Revenue 列组合在一起,以组成一个新列。在组合度量列时,不执行算术运算。
  5. 在“主题区域”窗格中,选择与最初选择的列组合在一起的列。例如,从“Offices”文件夹中选择“D2 Department”,并从“Base Facts”文件夹中选择“1 - Revenue”。

    注:

    此时先前带有虚线边框的方框已包含刚选择的列。现在您已指定了要组合的列。
  6. 单击结果列链接下的并集按钮。选择要用于组合列的操作类型。例如,选择并集 (Union All) 类型。
    在对导出列应用集合操作后,结果列就是那些显示在视图中的列。
  7. 单击结果列链接。请注意,“所选列”窗格已更新为显示刚创建的新组合的列。在此窗格中,可以像其他列那样使用这些列。例如,可以按照以下步骤重命名第一个列 (即单个新组合的列):
    1. 单击“D1 Office”列的选项按钮。
    2. 选择列属性
    3. 选择列格式
    4. 确保选择了定制标题
    5. 列标题框中,输入 Offices & Departments
    6. 单击确定
  8. 单击结果选项卡,在复合布局中查看表中的列。

    该图说明了如何在表中显示“Offices & Departments”组合列。

从“主题区域”窗格查看元数据信息

您可以查看主题区域、文件夹、列和层次级别的元数据信息。

元数据信息十分有用,例如在创建分析期间需要其中某一对象的完整说明时。

元数据信息包含在元数据目录中。元数据字典是一个静态 XML 文档集。每个 XML 文档描述一个元数据对象 (例如列),其中包括该对象的属性以及该对象与其他元数据对象的关系。

要查看元数据信息,请执行以下操作:

  1. 在“标准”选项卡或“结果”选项卡的“主题区域”窗格中,选择要查看元数据信息的主题区域、文件夹、列或层次级别。
  2. 在工具栏上单击显示更多按钮,然后单击打开元数据字典

    对象的元数据字典信息将显示在一个新浏览器窗口或新选项卡中,具体取决于浏览器设置。

    注:

    如果元数据字典信息未显示在浏览器中,请确保启用了用于跨域访问数据源的浏览器设置。

将列保存到目录

可以将列保存到目录以在其他分析中重用。

例如,在编辑了某一列的公式或设置了列属性并希望保存以在其他分析中重用时,保存列非常有用。

将列保存到目录时:

  • Oracle 建议将列保存到主题区域文件夹。如果 /My Folders 文件夹或 /Shared Folders 文件夹中没有主题区域文件夹,则 Oracle BI EE 将创建主题区域文件夹,“另存为”对话框将保存路径默认为 /My Folders/Subject Area Contents/<主题区域>。将列保存到主题区域文件夹可以确保在为相同主题区域构建分析时可以使用该列。

  • 选择、过滤器、条件操作链接和条件格式不会保存。

  • 对列的引用将从主题区域更改到目录。

  • 通过从“目录”窗格中拖放其他分析中的已保存列,可以重用该列。

  • 您可以从“目录”窗格、从“目录”页或者在重用的分析中编辑已保存列。

    从“目录”窗格和“目录”页进行的更改会应用到已保存列的所有版本。在分析中进行的编辑仅应用到该分析。

要将列保存到目录,管理员必须已向您授予“保存列”权限。

要将列保存到目录,请执行以下操作:

  1. 在“所选列”窗格中,单击要保存的列旁边的选项按钮,然后选择将列另存为。此时将显示“另存为”对话框。
  2. 完成此对话框以便将列保存到目录。

更改主题区域和主题区域文件夹的排序顺序

用户可以变更“主题区域”窗格中文件夹的排序顺序。

默认情况下,主题区域文件夹按照在“我的帐户”对话框的“首选项”选项卡中指定的排序顺序显示在“主题区域”窗格中。对于所有分析(在 Oracle BI 元数据资料档案库中建立,最初由管理员设置),您可以通过修改“首选项”选项卡中的主题区域排序顺序选项,来更改主题区域、主题区域文件夹和主题区域文件夹中列的此排序顺序。有关其他信息,请参阅更改主题区域和主题区域文件夹的排序顺序

  1. 在全局标题中,单击登录身份:用户名,然后选择我的帐户

  2. 在“首选项”选项卡中,单击主题区域排序顺序列表,然后进行相应选择。有以下选项:

    • 从 A 到 Z 排序 (升序)

    • 从 Z 到 A 排序 (降序)

    • 按保存的顺序排序 (在分析中指定的主题区域排序顺序保存作为默认值,并接下来用作默认排序顺序。)

    • 默认 - 按保存的顺序排序 (主题区域排序顺序最初在资料档案库中定义。)

      注:

      在创建分析时指定的主要主题区域始终固定在顶部;即始终作为第一个主题区域显示在“主题区域”窗格中。例如,如果您有三个主题区域 (A - Sample Sales、B - Sample Quotas 和 C - Sample Headcount) 参与到分析中,C - Sample Headcount 作为主要主题区域,并且排序顺序为升序,则主题区域显示如下所示:
      • C - Sample Headcount

      • A - Sample Sales

      • B - Sample Quotas

  3. 单击确定以保存更改。

对于当前正在创建或修改的分析,您可以更改其主题区域文件夹以及各文件夹中对象的排序顺序。

  1. 在“主题区域”窗格中,添加相应的主题区域。
  2. 单击排序主题区域按钮,然后从下拉列表中选择以下排序顺序之一
    • 从 A 到 Z 排序
    • 从 Z 到 A 排序
    • 按保存的顺序排序
  3. 完成您的分析。

注:

主题区域排序不区分大小写。

主题区域排序顺序还在哪些地方反映?

主题区域排序顺序显示在界面的若干部分中。

除了在“标准”选项卡的“主题区域”窗格中查看主题区域排序顺序之外,您还可以在以下位置查看反映的在“主题区域”窗格中配置的主题区域排序顺序:

  • 在“过滤器”窗格中选择更多列选项以显示“选择列”对话框。请参阅创建列过滤器

  • 在“过滤器”窗格中选择更多选项,然后选择添加 EVALUATE_PREDICATE 函数以显示“新建 EVALUATE_PREDICATE 函数”对话框。请参阅使用 EVALUATE_PREDICATE 函数

  • 为“标准”选项卡中的列选择更多选项按钮,此时“可用”窗格将显示在“编辑列公式”对话框的“列公式”选项卡中。请参阅编辑列公式

  • 为“标准”选项卡中的列选择更多选项按钮,此时将显示“编辑列公式”对话框的“列公式”选项卡。单击过滤器按钮以显示“插入过滤器”对话框。请参阅编辑列公式

  • 选择“分析”编辑器的“提示”选项卡,然后单击新建按钮,并选择列提示 - 更多列以显示“选择列”对话框。请参阅将提示添加到分析

  • 单击显示/隐藏选择步骤窗格按钮以显示“选择步骤”窗格。单击然后,新建步骤并选择应用条件。从“新建条件步骤”对话框中,选择“条件类型”以显示“度量”下拉列表。请参阅创建选择步骤

您还可以在“结果”选项卡的“主题区域”窗格中查看主题区域排序顺序。“结果”选项卡反映了主题区域排序顺序,但列的值不进行排序。此插图显示了对“A - Sample Sales”按降序排序的示例。D52 Country Name 的值(例如,Australia、Brazil、China 等)将按降序排序。

显示分析结果

此过程是构建分析过程中的一个步骤。

有关详细信息,请参阅构建分析的过程是什么?

使用“分析”编辑器的“结果”选项卡可以添加不同的结果视图,例如图形、指示器和数据透视表。有关您可以添加的视图列表,请参阅有哪些视图类型可用?

在创建分析并显示“结果”选项卡时,您会在复合布局中看到标题视图以及根据以下条件默认显示的表视图或数据透视表视图:

  • 如果分析中只包含属性列和度量列,则默认显示表。

  • 如果分析中至少包含一个分层列,则默认显示数据透视表。

管理员可能已配置默认情况下在“结果”选项卡中显示其他视图。

在复合布局中,可以组合视图并将视图放在任意位置。例如,可以创建反映不同数据视图的并排数据透视表、用于深入研究相互关系的图形以及用于限制结果的过滤器。

所有这些视图统称为复合布局。可以创建附加复合布局,如创建附加复合布局中所述。

  1. 单击结果选项卡。
    分析结果将显示在表或数据透视表中。
  2. (可选) 编辑该表或数据透视表或添加其他视图。有关详细信息,请参阅添加在仪表盘中显示的视图

创建附加复合布局

使用分析时,可以创建使用不同视图组合的多个复合布局。

例如,一个布局可以包含图形和标题,另一个布局可以包含图形和叙述视图。在向仪表盘页添加分析时,可以选择要在该页中包含哪个布局。

  1. 单击“分析”编辑器的“结果”选项卡。
  2. 单击“结果”选项卡工具栏上的以下按钮之一可创建另一个复合布局:
    • 创建复合布局 — 创建复合布局的新实例。

    • 复制复合布局 — 创建当前复合布局的副本,其中包含相同的视图。

提醒用户分析结果中没有数据

您可能希望更改向用户显示的无结果默认消息。

当分析结果未返回任何数据时,将向用户显示以下默认消息:

没有结果。指定的标准未产生任何数据。这通常是由于应用限制过多或包含不正确值的过滤器和/或选择造成的。请检查您的分析过滤器,然后重试。下面显示了当前已应用的过滤器。

如果不希望显示默认消息,则可以创建定制消息来提醒用户。通过此消息,您可以提供自己对于分析为何未返回数据的解释。

  1. 编辑要添加定制消息的分析。
  2. 单击“分析”编辑器的“结果”选项卡。
  3. 单击分析属性按钮。
  4. 在“分析属性”对话框的“无结果”设置框中,选择显示定制消息
  5. 标题字段中,输入定制消息的标题文本。
  6. 消息字段中,输入说明性文本。
  7. 单击确定

将提示添加到分析

此过程是构建分析过程中的一个步骤。

可以使用“分析”编辑器的“提示”选项卡创建提示,使用户能够选择用于过滤分析的值。用户使用提示可以选择动态过滤分析中的所有视图的值。有关详细信息,请参阅构建分析的过程是什么?

检查分析的逻辑 SQL 语句

此过程是构建分析过程中的高级步骤。

有关信息,请参阅构建分析的过程是什么?

使用“分析”编辑器的“高级”选项卡可以检查 XML 代码以及为分析生成的逻辑 SQL 语句,还可以根据该 SQL 语句创建分析。通常,不必使用此选项卡的功能,因为执行分析的大部分功能是通过用户界面提供的。以下列表提供可能需要检查 SQL 语句的情形示例:

  • 可以使用“前缀”区域覆盖已标记为要更新的任何用户变量或会话变量。可以指定多个要使用一行代码更新的变量。

    要覆盖变量,请使用以下语法:

    SET VARIABLEvar-name=value

    例如,可以设置在以下代码行中显示的变量:

    SET VARIABLE "My Variable"=4, DISABLE_CACTHE_HIT = 1, LOGLEVEL = 2;

    有关变量的信息,请参阅在何处可以引用变量?

  • 可以临时更改分析的日志记录级别以进行故障排除,即使对分析禁用日志记录也是如此。在“高级”选项卡的“前缀”区域中,可以指定以下内容:

    SET VARIABLE LOGLEVEL=4;

    本规范在级别 4 运行分析,这有助于进行高级故障排除。默认级别为 0,这指示无日志记录。可以使用“管理:管理会话”页上的查看日志链接查看日志。

    有关日志记录级别的信息,请参阅《Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition》中的 Setting Administration Tool Options

  • 您可以输入自己的逻辑 SQL 语句。输入自己的语句将会无法使用许多 Oracle BI EE 功能 (例如分层列、选择步骤、组以及格式设置),但您可以使用 SET 操作等功能。

  • 可以使用现有分析中的 SQL 语句开始创建分析。

使用“高级”选项卡之前,请记住以下要点:

  • 此过程仅适用于具有访问“高级”选项卡的相应职责的高级用户和开发人员。前提条件是您了解高级 SQL 语句、具有使用 Oracle BI Server 元数据的专业知识、熟悉《Logical SQL Reference Guide for Oracle Business Intelligence Enterprise Edition》中的 SQL 信息并且了解基础数据源的内容和结构。

  • 此选项卡提供“高级 SQL 子句”区域,您可以在其中向 SQL 语句添加子句并添加其他熟悉的高级功能。对于包含分层列、成员选择或组的分析,将禁用这些功能 (指定前缀除外)。

注:

通过插入逻辑 SQL 视图可以查看分析所使用的逻辑 SQL 语句。您还可以使用“管理:发出 SQL 语句”页输入 SQL 语句。
  1. 单击“分析”编辑器的高级选项卡。
  2. 使用与选项卡顶部“引用结果”区域中的分析名称相对应的链接,显示包含用于处理分析结果的链接的页。
  3. 使用“分析 XML”区域中的字段查看和修改 XML 代码,然后单击应用 XML

    如果修改 XML 代码,则会影响分析,因为分析将保存在 Oracle BI 表示目录中。

    要应用部分更新不使用 Oracle BI Presentation Services 高速缓存框的设置,还必须单击选项卡底部的应用 SQL 按钮。

  4. 使用“发出的 SQL 语句”区域中的只读框可以检查在执行分析时发送到 Oracle BI Server 的 SQL 语句。

    如果要使用当前分析中的 SQL 语句开始创建分析,则单击新分析按钮。在当前分析中指定的任何分层列、选择步骤、组或格式设置都将删除。

  5. 根据分析的内容,可以使用“高级 SQL 子句”区域中的可用字段更改主题区域,添加 GROUP BY 或 HAVING 子句,以及指定 DISTINCT 处理和前缀。
  6. 单击应用 SQL 以应用更改。

    注:

    单击应用 SQL 按钮时请务必小心。单击该按钮时,Oracle BI Server 将根据您添加或修改的 SQL 语句创建新分析。因此,您将丢失以前为分析创建的所有视图、格式设置等。新分析的 XML 代码也将修改。

保存分析

此过程是构建分析过程中的一个步骤。

有关详细信息,请参阅构建分析的过程是什么?

可以将分析保存到以下位置:

  • 个人文件夹。只有您能够从个人文件夹中访问分析。

    顶级个人文件夹称为“我的文件夹”。具有唯一用户名的每个用户都有一个名为“我的文件夹”的文件夹。它专门用于保存最常运行的分析以及经常访问的其他内容。

    当单击窗格底部的刷新显示链接时,分析会列在保存它的文件夹下方。

  • 共享文件夹。具有该文件夹访问权限的用户都可以从中访问分析。

  • Lotus Notes 数据库,保存方法是:

    • 将分析保存到一个 Web 档案文件 (文件扩展名为 .mht),然后将该文件上载到 Lotus Notes 数据库。

    • 保存分析并使用代理将其调度为自动通过电子邮件发送到 Lotus Notes 服务器上的特定地址。这样,Lotus Notes 服务器便可处理该电子邮件并将其写入数据库。

要保存分析,请执行以下操作:

  1. 在“分析”编辑器中,单击保存分析按钮以显示用于保存分析的对话框。

  2. 如果要将分析保存到个人或共享文件夹,请执行以下操作:

    1. 保存位置框中,选择要保存分析的个人或共享文件夹。

    2. 名称字段中,输入分析的名称,例如 forecasted_sales。

    3. 单击确定

  3. 如果要使用 Web 档案文件将分析保存到 Lotus Notes 数据库,请执行以下操作:

    1. 保存位置框中,选择要保存分析的文件夹。

    2. 名称字段中,输入分析的名称,包括 .mht 文件扩展名,例如 forecasted_sales.mht。

    3. 单击确定

    4. 将 .mht 文件上载到 Lotus Notes 数据库。

  4. 如果要使用代理将分析保存到 Lotus Notes 数据库,请执行以下操作:

    1. 保存位置框中,选择要保存分析的文件夹。

    2. 名称字段中,输入分析的名称,例如 forecasted_sales。

    3. 单击确定

    4. 创建代理,将分析调度为通过电子邮件发送到 Lotus Notes 服务器上的特定地址。

      有关创建代理的详细信息,请参阅创建代理

从分析创建代理

可以直接从分析创建代理。

当您直接从分析创建代理时,Oracle BI EE 将执行以下操作:
  • 创建一个基于分析的条件,然后将该条件添加到“代理”编辑器的“条件”选项卡。

  • 将分析作为传送内容添加到“代理”编辑器的“传送内容”选项卡上。

有关代理的详细信息,请参阅传送内容
  1. 使用以下方法之一找到要从中创建代理的分析:
    • 打开该分析,单击“分析”编辑器的结果选项卡,然后单击调度按钮。此时将保存分析。
    • 在“目录”页上导航到该分析,单击更多列表,然后单击调度选项。
  2. 填写“代理”编辑器的以下选项卡:
    • “一般信息”选项卡
    • “调度”选项卡
    • “条件”选项卡
    • “传送内容”选项卡
    • “收件人”选项卡
    • “目的地”选项卡
    • “操作”选项卡
  3. 保存代理。

编辑分析

可以通过这种方式编辑任何分析,除非您在访问模式中。

注:

如果您在访问模式下使用 Oracle BI 企业版,则可使用 BI 编写器向导而不是“分析”编辑器来编辑分析。有关 BI 编写器的详细信息,请参阅使用 BI 编写器处理分析。有关访问模式的详细信息,请参阅可访问性功能
  1. 在全局标题中,单击目录以显示目录页。
  2. 导航到要编辑的分析,然后单击编辑链接。
  3. 在“分析”编辑器中,对分析进行所需的更改。
  4. 保存该分析。

关于在仪表盘中嵌入分析

通过嵌入,自动在仪表盘中显示当前分析。

如果在仪表盘中嵌入分析,则会自动执行分析并在仪表盘中显示结果。该选项提供对当前结果的访问。例如,如果您是一名销售主管,您所在的公司每天都会捕获销售数据,那么您可能希望在仪表盘的首页看到当天所销售产品的美元金额。

可以使用“仪表盘”编辑器嵌入 Oracle BI 表示目录中以前创建的分析。有关“仪表盘”编辑器的信息,请参阅将内容添加到仪表盘

使用直接数据库请求

具有适当权限的用户可以创建直接数据库请求并直接将其发布到物理后端数据库。

可以在“分析”编辑器中显示和处理请求结果,随后可将结果并入仪表盘和代理中。本部分包含以下主题:

设置直接请求的权限

管理员可以设置直接请求的访问权限。

Oracle BI Presentation Services 管理中的以下权限设置控制您是否能够修改和执行直接请求:

  • 编辑直接数据库分析

    如果为您设置了此权限,您可以创建和编辑直接数据库请求。

  • 执行直接数据库分析

    如果为您设置了此权限,您可以发布直接数据库请求并查看结果。

有关信息,请参阅《Security Guide for Oracle Business Intelligence Enterprise Edition》中的 Managing Presentation Services Privileges

执行直接数据库请求

可以直接查询数据库。

您可以将直接请求从 Oracle BI EE 发送到数据库。

注:

在从 Oracle BI EE 发布直接数据库请求时,将绕过 Oracle BI Server 的数据安全规则,因而无法应用这些规则。

  1. 在全局标题中,依次选择新建分析创建直接数据库查询
  2. 在“分析”编辑器的“标准”选项卡中,指定相应的选项。
  3. 要发布请求并查看结果(如果有),请单击“结果”选项卡。

查看直接数据库请求的结果

在检索列以从直接数据库请求创建分析后,可以像其他分析一样使用该分析。

对于列源自于直接数据库请求的分析,以下列表概括了与这些分析的区别:

  • “主题区域”窗格不包含任何列,因为使用的不是资料档案库中的列。

  • 不能从此分析创建组或选择步骤。

  • 不能为列指定条件格式。

  • 将鼠标悬停在数据透视表、表或格状图视图的标题中列名右侧的区域上时显示的“升序排序”(向上三角形) 和“降序排序”(向下三角形) 不受支持。

使用变量

变量帮助确保在多个位置准确呈现同一个信息和文本。

可以在 Oracle BI 企业版的多个区域引用变量,这些区域包括分析、仪表盘、KPI、操作、代理和条件。例如,假设您要创建一个标题显示当前用户名的分析。可通过引用变量来实现这一点。

有五种类型的变量可供使用:

  • 会话

  • 资料档案库

  • 表示

  • 请求

  • 全局

什么是会话变量?

会话变量是在每个用户登录时进行初始化的变量。

当用户开始会话时,Oracle BI Server 会创建会话变量的新实例并进行初始化。

会话变量的实例与 Oracle BI Server 中的有效会话一样多。会话变量的每个实例都可以初始化为不同的值。

会话变量由初始化块 (INIT BLOCK) 中指定的查询填充。通常只在登录时执行一次这些会话 INIT BLOCK。但是,如果将 INIT BLOCK 标记为延迟,则可以在稍后引用相关变量时执行它。

会话 INIT BLOCKS 通常与查询语句相关联,但也可与轻型目录访问协议 (LDAP) 对象相关联。有关 INIT BLOCK 的详细信息,请参阅《Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition》中的 Working with Initialization Blocks

会话变量有两种类型:

  • 系统 - Oracle BI Server 和 Oracle BI Presentation Services 用于特定用途的会话变量。

    系统会话变量具有保留名称,这些名称不能用于其他类型的变量 (例如静态变量、动态资料档案库变量和非系统会话变量)。

  • 非系统 - 管理员创建和命名的系统变量。例如,管理员可能会创建用于初始化用户销售区域的 SalesRegion 非系统变量。

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

注:

请求变量无法覆盖某些系统会话变量 (例如 USERGUID 或 ROLES)。可以覆盖 DATA_TZ 和 DATA_DISPLAY_TZ (时区) 等其他系统会话变量 (如果已在 Oracle BI 管理工具中配置)。

有关详细信息,请参阅《Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition》中的 Working with Repository Variables

有关详细信息,请参阅《Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition》中的 About Session Variables

什么是资料档案库变量?

资料档案库变量是在任意时间点都具有单个值的变量。

资料档案库变量有两种类型:

  • 静态 - 这种资料档案库变量的值将予以保存,除非管理员决定更改,否则不会发生更改。

  • 动态 - 其值由 INIT BLOCK 中指定的查询填充的资料档案库变量。可以指定刷新 INIT BLOCK 的时间间隔。动态 INIT BLOCK 自动按指定的时间间隔刷新其变量值。

    动态 INIT BLOCK 只能与查询 (即,SQL 语句、ADF 查询或其他支持的数据源) 相关联。有关 INIT BLOCK 的详细信息,请参阅《Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition》中的 Working with Initialization Blocks

管理员使用 Oracle BI 管理工具创建资料档案库变量。

有关详细信息,请参阅《Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition》中的 About Repository Variables

什么是表示变量?

表示变量创建并用于仪表盘提示。

表示变量是可在创建以下任一类型仪表盘提示的过程中创建的变量:

  • 列提示 - 作为列提示一部分创建的表示变量与某个列相关联,它可采用的值来自于列值。

    要在“新建提示”对话框 (或“编辑提示”对话框) 中创建作为列提示一部分的表示变量,必须在设置变量字段中选择表示变量,然后在变量名字段中输入该变量的名称。

    有关使用列提示的信息,请参阅创建列提示

  • 变量提示 - 作为变量提示一部分创建的表示变量不与任何列相关联,您可以定义它可采用的值。

    要在“新建提示”对话框 (或“编辑提示”对话框) 中创建作为变量提示一部分的表示变量,必须在提示字段中选择表示变量,然后在变量名字段中输入该变量的名称。

    有关使用变量提示的信息,请参阅创建变量提示

表示变量的值由创建该变量时所使用的列提示或变量提示填充。也就是说,每次用户在列提示或变量提示中选择一个或多个值时,表示变量的值就会设置为用户选择的一个或多个值。

什么是请求变量?

请求变量会临时覆盖提示数据库请求。

通过请求变量可以覆盖会话变量的值,但这只在从列提示或变量提示启动的数据库请求期间有效。

注:

请求变量无法覆盖某些系统会话变量 (例如 USERGUID 或 ROLES)。可以覆盖 DATA_TZ 和 DATA_DISPLAY_TZ (时区) 等其他系统会话变量 (如果已在 Oracle BI 管理工具中配置)。

有关详细信息,请参阅《Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition》中的 Working with Repository Variables

可在创建以下任一类型仪表盘提示的过程中创建请求变量:

  • 列提示 - 作为列提示一部分创建的请求变量与某个列相关联,它可采用的值来自于列值。

    要在“新建提示”对话框(或“编辑提示”对话框)中创建作为列提示一部分的请求变量,必须在设置变量字段中选择请求变量,然后在变量名字段中输入要覆盖的会话变量的名称。

    有关使用列提示的信息,请参阅创建列提示

  • 变量提示 - 作为变量提示一部分创建的请求变量不与任何列相关联,您可以定义它可采用的值。

    要在“新建提示”对话框(或“编辑提示”对话框)中创建作为变量提示一部分的请求变量,必须在提示字段中选择请求变量,然后在变量名字段中输入要覆盖的会话变量的名称。

    有关使用变量提示的信息,请参阅创建变量提示

请求变量的值由创建该变量时所使用的列提示或变量提示填充。也就是说,每次用户在列提示或变量提示中选择值时,请求变量的值就会设置为用户选择的这个值。不过,只有在从用户按提示的开始按钮到分析结果返回到仪表盘这一段时间内,该值才有效。

注:

只有字符串和数字请求变量才支持多个值。所有其他数据类型只传递第一个值。

什么是全局变量?

全局变量是通过将特定数据类型与值结合创建的列。

值为字符串、数字、日期、时间、表达式、公式等。在使用“编辑列公式”对话框创建分析的过程中创建全局值。全局变量保存在目录中,可供特定租户系统中的所有其他分析使用。

可以在创建分析的过程中创建全局变量。

全局变量有以下类型:

  • 日期

  • 日期和时间

  • 数字

  • 文本

  • 时间

要创建全局变量,请执行以下操作:

  1. 在“标准”选项卡上的“所选列”窗格中,单击要编辑其公式的列旁边的选项按钮,然后选择编辑公式
    此时将显示“编辑列公式”对话框的“列公式”选项卡。可以使用此选项卡为全局变量创建定制标题。
  2. 单击变量按钮,然后选择全局
    此时将显示“插入全局变量”对话框。
  3. 单击添加新的全局变量按钮。
    此时将显示“新建全局变量”对话框。
  4. 请输入唯一的名称。
  5. 选择数据类型。
  6. 输入一个值。

    注:

    如果选择日期和时间作为数据类型,则按照下例所示输入值:03/25/2004 12:00:00 AM

    如果要输入表达式或计算作为值,则必须使用文本数据类型,如下例中所示:"Base Facts"."1- Revenue"*3.1415

  7. 单击确定。新的全局变量将添加到“插入全局变量”对话框中。
  8. 选择刚刚创建的新全局变量,然后单击确定
    此时将显示“编辑列公式”对话框,全局变量已插入到“列公式”窗格中。
  9. 将自动选中定制标题复选框。为将全局变量分配到的列输入新名称以更准确地反映变量。
  10. 单击确定

在执行分析时会对全局变量求值,并相应替换其值。只有具有合适权限的用户才能管理 (添加、编辑和删除) 全局变量。

在何处可以引用变量?

可以在许多区域中引用变量,但不能在每个区域中引用所有变量。

可以在以下区域中引用变量(但不能在每个区域中引用所有类型的变量):

  • 标题视图。

  • 叙述视图。

  • 静态文本视图。

  • 过滤器。

  • 列公式。

  • 条件格式设置的条件。

  • 分析中的表标题和列标题。

  • 直接数据库请求。

  • 仪表盘提示和内嵌提示。

  • PDF 输出的页眉和页脚。

  • 仪表盘中的链接或图像对象。

  • 仪表盘中的文本对象。

  • 用于指定图形数据条件格式的图形。

  • 计量表阈值。

  • 计量表限制。

  • 代理。

  • 用于指定参数的操作。

  • 用于指定参数的条件。

  • 用于覆盖步骤的选择步骤。

  • 用于定义阈值的 KPI。

  • KPI 监视列表中包括的 KPI。

  • 对话框中的 URL 字段。

有关用于引用变量的语法,请参阅引用变量的语法是什么?

引用变量的语法是什么?

可以在分析、仪表盘、KPI 和代理中引用变量。引用变量的方式取决于您所执行的任务。

对于通过对话框中的字段提供的任务,只能指定变量的类型和名称 (而不是完整语法),例如在过滤器定义中引用变量。

对于其他任务 (例如在标题视图中引用变量),可以指定变量语法。所使用的语法取决于变量类型,如表中所述。

注:

在此语法中,如果 @ 符号后面未跟随大括号 ({),则将其视为一个 @ 符号。
变量类型 语法 示例

会话

@{biServer.variables['NQ_SESSION.variablename']}

其中 variablename 是会话变量的名称,例如 DISPLAYNAME。

有关可使用的系统会话变量列表,请参阅《Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition》中的 About System Session Variables

@{biServer.variables['NQ_SESSION.USER']}

资料档案库

@{biServer.variables.variablename}

@{biServer.variables['variablename']}

其中 variablename 是资料档案库变量的名称,例如 prime_begin。

@{biServer.variables.prime_begin}

@{biServer.variables['prime_begin']}

表示或请求

@{variables.variablename}[format]{defaultvalue}

@{scope.variables['variablename']}

其中:

  • variablename 是表示变量或请求变量的名称,例如 MyFavoriteRegion。

  • (可选) format 是依赖于变量数据类型的格式掩码,例如 #,##0、MM/DD/YY hh:mm:ss。(请注意,格式不应用于默认值。)

  • (可选) defaultvalue 是一个常量或变量引用,指示在未填充由 variablename 引用的变量时使用的值。

  • scope 标识变量的限定符。在多个级别 (分析、仪表盘页和仪表盘) 使用变量并希望访问特定值时,必须指定范围。(如果未指定范围,则优先顺序为分析、仪表盘页和仪表盘。)

注:将仪表盘提示用于可以具有多个值的表示变量时,语法会因列类型的不同而异。将多个值的格式设置为以逗号分隔的值,因此,任何设置格式子句将在各个值使用逗号联接起来之前应用。

@{variables.MyFavoriteRegion}{EASTERN REGION}

@{MyFavoriteRegion}

@{dashboard.variables['MyFavoriteRegion']}

(@{myNumVar}[#,##0]{1000})

(@{variables.MyOwnTimestamp}[YY-MM-DD hh:mm:ss]{)

(@{myTextVar}{A, B, C})

全局

@{global.variables.variablename}

其中 variablename 是全局变量的名称,例如,gv_region。引用全局变量时,必须使用全限定名称,如示例中所示。

注:全局变量的命名惯例必须遵守 JavaScript 的 EMCA 脚本编写语言规范。名称不能超过 200 个字符,不能包含嵌入空格、保留关键字以及特殊字符。如果您不熟悉 JavaScripting 语言要求,请查看第三方参考。

@{global.variables.gv_date_n_time}

您也可以在表达式中引用变量。下表中介绍了有关在表达式中引用变量的准则。

变量类型 准则 示例

会话

  • 以 VALUEOF 函数的参数形式包含会话变量。

  • 用双引号将变量名括起来。

  • 在会话变量前面放置 NQ_SESSION 和一个句点。

  • 用括号将 NQ_SESSION 部分和会话变量名括起来。

"Market"."Region"=VALUEOF(NQ_SESSION."SalesRegion")

资料档案库

  • 以 VALUEOF 函数的参数形式包含资料档案库变量。

  • 用双引号将变量名括起来。

  • 按名称引用静态资料档案库变量。

  • 按全限定名称引用动态资料档案库变量。

    如果使用动态资料档案库变量,初始化块和资料档案库变量的名称必须使用双引号 (") 括起来,用句点分隔,并且包含在括号内。例如,要在名为 Region Security 的初始化块中包含名为 REGION 的动态资料档案库变量的值,请使用以下语法:

    VALUEOF("Region Security"."REGION")
    

    有关详细信息,请参阅《Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition》中的 About Repository Variables

CASE WHEN "Hour" >= VALUEOF("prime_begin") AND "Hour" < VALUEOF("prime_end") THEN 'Prime Time' WHEN ... ELSE...END

表示

  • 使用以下语法:

    @{variablename}{defaultvalue}
    

    其中,variablename 是表示变量的名称,defaultvalue(可选)是一个常量或变量引用,指示在未填充由 variablename 引用的变量时使用的值。

  • 要将变量的类型转换为字符串,请将整个语法用单引号括起来。例如:

    '@{user.displayName}'
    

注:如果 @ 符号后面未跟随 {,则将其视为一个 @ 符号。

使用可以具有多个值的表示变量时,语法会因列类型的不同而异。

在 SQL 中为指定列类型使用以下语法以生成有效的 SQL 语句:

  • 文本(@{variablename}['@']{'defaultvalue'})

  • 数字(@{variablename}{defaultvalue})

  • 日期时间(@{variablename}{timestamp 'defaultvalue'})

  • 日期(仅日期)— (@{variablename}{date 'defaultvalue'})

  • 时间(仅时间)— (@{variablename}{time 'defaultvalue'})

"Market"."Region"=@{MyFavoriteRegion}{EASTERN REGION}

"Products"."P4 Brand"=(@{myTextVar}['@']{BizTech})

"Products"."PO Product Number"=(@{myNumVar}{1000})

"Sales Person"."E7 Hire Date"=(@{myDateTimeVar}{timestamp '2013-05-16 00:00:01'})

"Time"."Total Fiscal Time"=(@{myDateVar}{date '2013-05-16'})

"Time"."Time Right Now"=(@{myTimeVar}{time '00:00:01'})

使用 SQL 时,对于多值 (指定的数据类型):

  • 如果列类型为文本并且 variablename 传递 val1、val2 和 val3,则结果为 ('val1', 'val2', 'val3')。

  • 如果列类型为日期并且 variablename 传递 2013-08-09 和 2013-08-10,则结果为 (date '2013-08-09', date '2013-08-10')。

  • 如果列类型为日期时间并且 variablename 传递 2013-08-09 00:00:00 和 2013-08-10 00:00:00,则结果为 (timestamp '2013-08-09 00:00:00', timestamp '2013-08-10 00:00:00')。

有关可引用变量的特定区域,请参阅在何处可以引用变量?

有哪些预定义表示变量可用?

应用程序具有一组预定义的表示变量,您可以在各种输出中使用这些变量。

此表包含您可以在分析、仪表盘、KPI 和代理中引用的预定义表示变量的列表。(请注意,这些预定义表示变量的语法省略了 variables. 限定符,例如采用 @{session.locale} 而不是 @{session.variables.locale}。)

注:

对于时区变量,必须将用户所在时区设置为默认值以外的值,才能使此变量生效。(用户在“我的帐户”对话框的“首选项”选项卡中设置其首选时区。)
范围 表示变量 示例

系统

productVersion

system.productVersion = 11.1.1.3 (Build 090619.0110.000)

系统

currentTime

system.currentTime = 6/29/2009 7:35:59 PM

会话

locale

session.locale = en-us

会话

language

session.language = en

会话

rtl

此变量指示登录页中的语言选择是否是从右向左书写的语言。例如,如果语言选择为“希伯来语”,则此变量会返回“真”。

session.rtl = false

会话

timeZone

session.timeZone = (GMT-06:00) Central America

会话

timeZone.id

此变量返回未本地化的值。

session.timeZone.id = (GMT-06:00) Central America

会话

timeZone.name

此变量返回本地化的值。

session.timeZone.name = (GMT-06:00) 中美洲

会话

timeZone.value

此变量返回本地化的值。

session.timeZone.value = (GMT-06:00) 中美洲

会话

loginTime

session.loginTime = 6/29/2009 7:12:01 PM

会话

logoutTime

session.logoutTime = 6/29/2009 8:02:01 PM

会话

lastAccessTime

session.lastAccessTime = 6/29/2009 7:35:59 PM

会话

currentUser

session.currentUser = Administrator

会话

currency.name

session.currency.name = $ English - United States

会话

currency.symbol

session.currency.symbol = $

会话

currency.userPreference

session.currency.userPreference = Global Currency 2

会话

accessibility

这指示是否为当前用户会话启用了访问模式。

session.accessibility = true

用户

id

user.id = Administrator

用户

displayName

user.displayName = Administrator

用户

homeDirectory

user.homeDirectory = /users/administrator

仪表盘

currentPage

dashboard.currentPage = page 1

仪表盘

xml

dashboard.xml = 仪表盘 XML

仪表盘

dashboard.currency.name

dashboard.currency.name = Euro

仪表盘

dashboard.currency.symbol

dashboard.currency.symbol = $

仪表盘

dashboard.currency.userPreference

dashboard.currency.userPreference = Global Currency 1

仪表盘

dashboard.path

此变量返回目录中的路径。

dashboard.path = /users/administrator/_portal/Sales

仪表盘

dashboard.name

dashboard.name = MyDashboard

仪表盘

dashboard.caption

此变量返回仪表盘的本地化名称。

dashboard.caption = 销售

仪表盘

dashboard.location

此变量返回位置的 URL。

dashboard.location = Dashboard&PortalPath=/users/administrator/_portal

仪表盘

dashboard.description

dashboard.description = 按区域和行政区的销售额

仪表盘

dashboard.author

dashboard.author = Administrator

dashboard.currentPage

dashboard.currentPage.name

dashboard.currentPage.name = Sales page 1

dashboard.currentPage

dashboard.currentPage.path

dashboard.currentPage.path = /users/administrator/_portal/Sales/page 1

dashboard. current Page

dashboard.currentPage.currency.name

dashboard.currentpage.currency. name = USD

dashboard.current Page

dashboard.currentPage.currency.symbol

dashboard.currentPage.currency. symbol = USD

dashboard. current Page

dashboard.currentPage.currency.userPreference

dashboard.currentPage.currency.userPreference = Global Currency 2

分析

report.currency.name

report.currency.name = $ English - United States

分析

report.currency.symbol

report.currency.symbol = $

分析

report.currency.userPreference

report.currency.userPreference = Global Currency 2

在标题视图中引用变量的示例

在标题视图中引用变量可确保信息准确无误。

假设您创建了一个名为“Region”的仪表盘提示,该提示基于“D50 Region”列并创建一个名为“MyFavoriteRegion”的表示变量,如插图中所示。

此外,假设您还创建了一个按“Region”和“Area”显示“Revenue”的分析。您同时在“D50 Region”列上添加了一个设置为提示的过滤器,以便使用此“Region”提示来提示用户选择区域。

可以在标题视图中引用 MyFavoriteRegion 变量,使用户在“Region”提示中的选择显示在分析标题中。为此,请在“标题”编辑器的标题字段中输入该变量语法 @{variables.MyFavoriteRegion},如插图中所示。

此插图显示了用户在“Region”提示中选择“AMERICAS REGION”时在仪表盘页上显示的结果。此时您会看到,分析标题中的此变量已更新为用户选择的“AMERICAS REGION”。