世代抽出の例

このトピックでは、ノードおよび祖先フィルタ、最大深さ、および世代抽出を使用する様々な方法を示すためのバランス入力オプションなどの様々な抽出オプションの例をいくつか示します。

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 equals 0を表示するフィルタ

次に、抽出を縮小して、州別ではなく、地域別の営業担当を表示します。これには抽出への2つの変更が必要です。最初に、州情報が格納されている祖先レベルを識別する必要があります。抽出によって各列にヘッダー情報が追加されるように、最大深さを指定してこれを行います(挿入図を参照)。列A、B、CおよびDのすべてに、レベルおよびノード名を識別するヘッダーが表示されるようになったことに注意してください。


最大深さ4を表示する挿入図

州情報が祖先レベル3にあることがわかったので、祖先フィルタを追加してレベル3をフィルタで除外し、探している地域情報を返すことができます。祖先フィルタが挿入図に表示されています。1つのレベルをフィルタで除外しているので、最大深さを4ではなく3に変更する必要があることに注意してください。


node.properties.corestats.level not equal 3を表示するフィルタ

従業員ID、開始日、ジョブ・タイトルなどの追加の列を追加し(挿入図を参照)、レポートの情報を識別するためのカスタム・ヘッダーを使用して、レポートを確定します。


追加フィールドを表示する最終的なレポート

例2: バランスがくずれた階層でのバランス入力オプションの使用

次に、バランスがくずれた階層のバランスをとるためにバランス入力オプションを使用する例を見てみましょう。今回は勘定科目階層を使用します。最下位ノード1770 Goodwill Asset7110 Advertisingが階層内の異なるレベルにあることに注意してください。


レベル5に1770を表示し、レベル7に7110を表示する勘定科目階層

最大深さ8でこの階層を抽出すると、最下位ノード1770 Goodwill Assetのレベル5、6および7にはnull値が入り、この階層のバランスがくずれます。


前述のnull値を示すスクリーンショット

「バランス入力オプション」「親の繰返し」を選択し、階層の値がない場所に親の名前および説明を充てんします(次の赤でハイライト表示された領域)。階層のバランスがとれました。


スクリーンショットに階層を充てんする親の名前および説明が表示されています