分代式擷取範例

本主題提供幾個不同的擷取選項 (例如,節點和祖代篩選、最大深度,以及平衡填入選項) 範例,以便說明不同的分代式擷取使用方式。

Tip:

  • 平衡的階層就是所有底端節點都在同一個層級的階層。

  • 不平衡的階層 (或自然階層) 就是底端節點都在不同層級的階層。

    您可以使用最大深度平衡填入選項欄位來平衡某個不平衡的階層,方法是重複父項、節點或最上層節點,以便讓所有底端節點都在同一個層級上。我們將在下列範例中說明:範例 2:在不平衡的階層中使用平衡填入選項

範例 1:平衡階層中的節點及祖代篩選

在此範例中,我們將使用節點及祖代篩選,擷取按地區分組的銷售代表報表。我們將利用節點篩選只傳回底層節點,然後使用祖代篩選篩除州別以取得按地區排列的報表,藉此減少報表。由於這是平衡的階層,我們並不需要使用「平衡填入選項」。

針對第一個範例,我們使用的階層有一個稱為「依地區的銷售代表」(SRT) 的最上層節點,該節點下方有幾個地區節點:中西部 (MW)、東北部 (NE)、東南部 (SE)、西南部 (SW) 及西部 (W)。每個地區下方都有一系列的州 (例如,在「中西部」下方,有 Iowa、Illinois、Indiana、Michigan 及 Ohio ),而每個州都有一系列作為底層節點的銷售代表。


如上所述的階層

我們將首先擷取節點及其祖代的名稱,方法是將祖代的 Core.Name 與節點的 Core.Name 新增至擷取 (請參閱下面的插圖欄)。


顯示「層級」和「節點」欄名稱的擷取

請注意,擷取中有數列包含在報表中無用的資訊。例如,列 2、3 及 4 包含祖代資訊,但並非有我們想要之銷售代表資訊的底端節點。我們可以利用 (顯示在嵌入項目中的) 節點篩選表示式,只傳回底層節點。


篩選顯示 return.node.children.size 等於 0

接下來,我們要減少擷取,以便顯示按地區排列,而非按州別排列的銷售代表。這需要我們變更擷取的兩個地方。首先,我們需要識別用來儲存州別資訊的祖代層級。方法是指定最大深度 (請查看嵌入項目),以便讓擷取為每欄新增標頭。請注意,現在欄 A、B、C 及 D 都有可識別層級和節點名稱的標頭。


嵌入項目顯示最大深度為 4

既然我們現在知道州別資訊位於祖代層級 3,就可以新增祖代篩選以篩除層級 3,並傳回我們想要的地區資訊。該祖代篩選已顯示在嵌入項目中。請記住,既然我們現在要篩除一個層級,就需要將「最大深度」從 4 變更成 3。


篩選顯示 node.properties.corestats.level 不等於 3

最後,透過新增員工 ID、開始日期及職稱等額外的欄 (請查看嵌入項目),並使用自訂標頭識別報表中的資訊,以完成報表。


顯示額外欄位的最終報表

範例 2:在不平衡的階層中使用平衡填入選項

接下來,我們來看看利用「平衡填入選項」,讓不平衡的階層得以平衡的範例。我們這次會使用「科目」階層。請注意,階層中的底端節點 1770 Goodwill Asset7110 Advertising 分別位於不同的層級。


顯示 1770 在層級 5,且 7110 在層級 7 的科目階層

當我們以最大深度 8 來擷取此階層時,底端節點 1770 Goodwill Asset 的層級 5、6 及 7 欄是空值,讓此階層不平衡。


顯示如上所述之空值的螢幕擷取畫面

我們在平衡填入選項中選取重複父項,以便在階層中沒有值的地方 (下方以紅線醒目提示之處),填入父項名稱及描述。現在,階層平衡了。


顯示已在階層中填入父項名稱及描述的螢幕擷取畫面