层代提取示例

本主题提供不同提取选项的一些示例,例如节点和祖先筛选器、最大深度和平衡填充选项,以说明使用层代提取的不同方式。

Tip:

  • 平衡层次是所有底层节点都位于相同级别的层次。

  • 不平衡层次(或自然层次)是底层节点位于不同级别的层次。

    您可以使用最大深度平衡填充选项字段来平衡不平衡层次,方法为重复父代、节点或顶级节点,以便将所有底层节点放在相同级别。说明见“示例 2:在不平衡层次中使用平衡填充选项”。

示例 1:平衡层次中的节点和祖先筛选器

在此示例中,我们将使用节点和祖先筛选器按区域提取销售代表的报表。我们将使用节点筛选器以仅返回底层节点,然后我们将使用祖先筛选器来减少报表,方法为通过筛选出各州来按区域获得报表。因为这是平衡层次,我们不需要使用平衡填充选项。

对于此示例,我们使用的层次将具有名为 Sales Representative by Territory (SRT) 的顶级节点,其下有多个区域节点:Midwest (MW)、Northeast (NE)、Southeast (SE)、Southwest (SW) 和 West (W)。每个区域在其下具有一系列州(例如,在 Midwest 下为 Iowa、Illinois、Indiana、Michigan 和 Ohio),而每个州具有一系列销售代表作为底层节点:


如上所述的层次

首先,我们将提取节点及其祖先的名称,方法是将祖先的 Core.Name 和节点的 Core.Name 添加到提取中(请参阅下面插图中的列)。


提取显示了级别和节点名称列

请注意,提取中的多个行包含的信息在我们的报表中没有用处。例如,行 2、3 和 4 包含祖先信息,但不包含具有我们要查找的销售代表信息的底层节点。我们可以使用节点筛选器表达式(显示在插图中)来仅返回底层节点。


筛选器显示 return.node.children.size 等于零

接下来,我们要减少我们的提取,以按区域(而不是按州)显示销售代表。这需要对我们的提取进行两个更改。首先,我们需要标识存储州信息的祖先级别。我们通过指定最大深度(请参见插图)来实现这一点,以便提取将标题信息添加到每列。请注意,列 A、B、C 和 D 现在都具有用于标识级别和节点名称的标题。


插图显示最大深度为 4

现在我们知道州信息位于祖先级别 3,我们可以添加祖先筛选器来筛选出级别 3,并返回我们正在查找的区域信息。祖先筛选器显示在插图中。请记住,现在我们正筛选出一个级别,我们需要将“最大深度”更改为 3,而不是 4。


筛选器显示 node.properties.corestats.level 不等于 3

我们通过添加一些其他列(例如 Employee ID、Start Date 和 Job Title(见插图))并使用自定义标题来标识报表中的信息,从而完成报表。


最终报表显示了其他字段

示例 2:在不平衡层次中使用平衡填充选项

接下来,我们看一个使用“平衡填充选项”来平衡不平衡层次的示例。这次我们将使用帐户层次。请注意,底层节点 1770 Goodwill Asset7110 Advertising 位于层次中的不同级别。


帐户层次显示 1770 位于级别 5,7110 位于级别 7

我们以最大深度 8 提取此层次时,底层节点 1770 Goodwill Asset 的级别 5、6 和 7 的列具有 null 值,使此层次不平衡。


屏幕截图显示了如上所述的 null 值

我们在平衡填充选项中选择重复父代,在没有值的位置用父代名称和描述填充层次(下面红色突出显示区域)。层次现在已平衡。


屏幕截图显示在层次中填充父代名称和描述