数据库管理者可以通过创建列映射并定义一个或多个可钻取区域创建穿透钻取报表定义。
您创建的穿透钻取报表与数据库检查器的“脚本”部分中的多维数据集关联。
每个穿透钻取报表定义必须包含列映射和可钻取区域。(可选)如果为穿透钻取报表提供外部源数据连接的数据源中存在参数化查询,您可以为运行时参数定义映射。
要创建穿透钻取报表定义,您必须是数据库管理者或更高级别角色。
注:
如果穿透钻取报表的数据源连接到 Oracle 数据库,则您可以选中使用临时表选项以提高 SQL "IN" 子句具有大量值的查询的性能。您还可以设计穿透钻取报表来访问 Web URL。
列映射定义哪些外部源列应包含在报表中,这些列映射到哪些 Essbase 维,以及(可选)层代/级别筛选条件(指示要提供的访问深度)。
要深入了解列映射,请参见 穿透钻取报表定义。
定义列映射:
在“应用程序”页上,依次打开应用程序和多维数据集。
在左侧面板中选择脚本。
单击穿透钻取报表。
单击创建,然后从菜单中选择数据源。
在名称字段中,添加报表名称。
在数据源字段中,选择要使用的数据源。
创建列映射:
从外部数据源中选择要包括在报表中的列。
选择要将每个列映射到的维。
选择用于映射的筛选条件;例如“0 级”、“层代”或“无”(对于维映射)。

完成后,单击可钻取区域。如果未定义区域,则无法保存穿透钻取报表定义,如为穿透钻取报表定义可钻取区域中所述。
定义列映射:
在“应用程序”页上,展开应用程序。
从多维数据集名称右侧的操作菜单中,单击检查。
在应用程序检查器中,选择脚本选项卡。
选择穿透钻取报表。
单击创建,然后从下拉菜单中选择数据源。
在名称字段中,添加报表名称。
在数据源字段中,选择要使用的数据源。
创建列映射:
从外部数据源中选择要包括在报表中的列。
选择要将每个列映射到的维。
选择用于映射的筛选条件;例如“0 级”、“层代”或“无”(对于维映射)。

完成后,单击可钻取区域。如果未定义区域,则无法保存穿透钻取报表定义,如为穿透钻取报表定义可钻取区域中所述。
在 Essbase 多维数据集中定义一个或多个您可以从其访问(“穿透钻取到”)外部数据源的可钻取区域。
可钻取区域示例
以下示例显示了 Smart View 中的可钻取区域(以蓝色突出显示)。
示例 1
要在 Market、Year 和 Scenario 维顶部、成员 Sales 以及 Product 维的所有 1 级成员定义可钻取区域,请使用:
Market,Year,Scenario,Sales,@LEVMBRS(Product,1)
钻取到 Smart View 工作表中时,生成的网格类似于以下:

示例 2
要为 Market 的后代定义可钻取区域,请使用:
@DESCENDANTS(Market)
钻取到 Smart View 工作表中时,生成的网格类似于以下:

示例 3
要在 Market、Year、Scenario 维顶部和成员 Sales 为 Product 维中层代 3 的成员定义可钻取区域,请使用:
Market,Year,Scenario,Sales,@GENMBRS(Product,3)
钻取到 Smart View 工作表中时,生成的网格类似于以下:

要使穿透钻取报表更加灵活,可以设计穿透钻取以实施参数。
如果您是数据库管理者或更高级别角色,您可以在穿透钻取报表中实施参数化数据源查询。
先决条件:应用程序管理者或更高级别的角色为您提供了访问某个数据源的访问权限,该数据源使用 固定(默认)值、替代变量或用户定义的外部函数作为参数。
Essbase 在运行时会识别参数的值,并将其当前值插入到执行穿透钻取时 Essbase 生成的查询中。
在穿透钻取报表定义中,您可以选择为运行时参数添加维、层代和级别映射。这样,您可以基于当前变量上下文进一步定制穿透钻取报表的结果。
如果您希望 Essbase 基于变量动态构建穿透钻取报表,请按照以下工作流进行操作:
在基础数据源查询中 为数据源实施参数。这必须由应用程序管理者或更高级别的角色完成。
创建与数据源关联的穿透钻取报表定义。
(可选)在穿透钻取报表定义中提供要供参数使用的运行时定制设置。下面提供了一个示例。
通过运行穿透钻取报表和使用 Essbase 服务器平台日志调试穿透钻取测试和验证预期行为。
运行时参数和用户定义的函数
以下示例用例基于先决条件假设:
在外部源系统中定义了用户定义的函数 getMonths。该函数返回逗号分隔的月份列表。
使用调用 getMonths 函数的查询定义了用于穿透钻取报表定义的数据源,如下所示:
select * from SampleBasic where month in (getMonths(?))
运行时参数的 0 级(递归)映射
在穿透钻取报表定义中,当运行时参数在 0 级绑定到 Year 时,
![穿透钻取报表定义的“运行时参数”选项卡。参数:Param1。变量:已选中。值:Sample.mnth。维:Year。层代绑定:Level0 [Level] 穿透钻取报表定义的“运行时参数”选项卡。参数:Param1。变量:已选中。值:Sample.mnth。维:Year。层代绑定:Level0 [Level]](img/GUID-624E8E4B-3E0A-4690-B440-73A3CCCC12C9-default.jpg)
如果 Smart View 用户对 Year 维的 Qtr1 进行穿透钻取,则穿透钻取报表将包含 Jan、Feb、Mar。如果 Smart View 用户对 Year 进行穿透钻取,则穿透钻取报表将包含 Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec。
运行时参数的层代映射
在穿透钻取报表定义中,当运行时参数在 Quarter 层代绑定到 Year 时,
![穿透钻取报表定义的“运行时参数”选项卡。参数:Param1。变量:已选中。值:Sample.mnth。维:Year。层代绑定:Quarter [Generation] 穿透钻取报表定义的“运行时参数”选项卡。参数:Param1。变量:已选中。值:Sample.mnth。维:Year。层代绑定:Quarter [Generation]](img/GUID-B39A03C6-E71A-4950-9250-1907B4461935-default.jpg)
如果 Smart View 用户对 Year 维成员进行穿透钻取,则穿透钻取报表将包含 Qtr1、Qtr2、Qtr3、Qtr4。
注:
如果设置的运行时参数的维/层代绑定与列映射重叠,则设置无效。在此情况下生成的查询始终为空值集。