Ansicht
Dokumentation

ABENSELECT_HIERARCHY_NODE_NAVIS - SELECT HIERARCHY NODE NAVIS

ABENSELECT_HIERARCHY_NODE_NAVIS - SELECT HIERARCHY NODE NAVIS

BAL Application Log Documentation   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

SELECT, FROM hierarchy_node_navigator

... ${HIERARCHY_DESCENDANTS
    $|HIERARCHY_ANCESTORS
    $|HIERARCHY_SIBLINGS$}(
       SOURCE hierarchy
       START WHERE sql_cond
      $[DISTANCE $[FROM n1$] $[TO n2$]$] ) ...


Varianten:

1. HIERARCHY_DESCENDANTS( ... )

2. HIERARCHY_ANCESTORS( ... )

3. HIERARCHY_SIBLINGS( ... )

Zusatz:

... DISTANCE $[FROM n1$] $[TO n2$]

Wirkung

Angabe eines Hierarchieknotennavigators als Datenquelle data_source in einer Query von . Er greift auf die hinter SOURCE angegebene SQL-Hierarchie hierarchy zu und wertet diese aus.

Hinter START WHERE muss ein logischer Ausdruck sql_cond angegeben werden, welcher Bedingungen für Hierarchieknoten der SQL-Hierarchie hinter SOURCE enthält, wobei auch deren Hierarchiespalten als Operanden verwendet werden können. Hierarchieknoten, welche die Bedingungen erfüllen sind die Ausgangsknoten der Hierarchienavigatoren. Sie werten die hinter SOURCE angegebene SQL-Hierarchie hierarchy ausgehend von allen Ausgangsknoten aus und fügen die selektierten Hierarchieknoten in ihre Ergebnismenge ein.

Zusätzlich zu den Hierarchiespalten der hinter SOURCE angegebenen SQL-Hierarchie enthält die Ergebnismenge jeder dieser Hierarchienavigatoren zwei weitere Hierarchiespalten:

  • START_RANK vom Typ INT8
  • START_ID vom Typ SSTRING der Länge 1333

Diese Spalten enthalten in jeder Zeile der Ergebnismenge die Werte der Hierarchiespalten HIERARCHY_RANK und NODE_ID der zugehörigen Ausgangsknoten.

Variante 1

HIERARCHY_DESCENDANTS( ... )


Wirkung

Der Hierarchienavigator HIERARCHY_DESCENDANTS selektiert aus der hinter SOURCE angegebenen SQL-Hierarchie hierarchy alle Nachfahrenknoten der Ausgangsknoten sowie die Ausgangsknoten selbst. Zusätzlich zu den Hierarchiespalten der hinter SOURCE angegebenen SQL-Hierarchie sowie START_RANK und START_ID enthält die Ergebnismenge eine weitere Hierarchiespalte HIERARCHY_DISTANCE vom Typ INT4, welche den Abstand zum jeweiligen Ausgangsknoten enthält. Dieser ist die positive Differenz zwischen den Hierarchieebenen HIERARCHY_LEVEL der einzelnen Kindknoten und der jeweiligen Ausgangsknoten.

Beispiel

Aufruf des Hierarchienavigators HIERARCHY_DESCENDANTS im Programm DEMO_HIERARCHY_NAVIGATORS, wobei der Hierarchiegenerator HIERARCHY als Quelle angegeben ist. Ein Ausführen des Programms zeigt die Wirkung des Hierarchienavigators. Es wird auch der Wert der Hierarchiespalte HIERARCHY_DISTANCE gezeigt.

Variante 2

HIERARCHY_ANCESTORS( ... )


Wirkung

Der Hierarchienavigator HIERARCHY_ANCESTORS selektiert aus der hinter SOURCE angegebenen SQL-Hierarchie alle Vorfahrenknoten der Ausgangsknoten sowie die Ausgangsknoten selbst. Zusätzlich zu den Hierarchiespalten der hinter SOURCE angegebenen SQL-Hierarchie sowie START_RANK und START_ID enthält die Ergebnismenge eine weitere Hierarchiespalte HIERARCHY_DISTANCE vom Typ INT4, welche den Abstand zum jeweiligen Ausgangsknoten enthält. Dieser ist die negative Differenz zwischen den Hierarchieebenen HIERARCHY_LEVEL der einzelnen Elternknoten und der jeweiligen Ausgangsknoten.

Beispiel

Aufruf des Hierarchienavigators HIERARCHY_ANCESTORS im Programm DEMO_HIERARCHY_NAVIGATORS, wobei die CDS-Hierarchie DEMO_CDS_SIMPLE_TREE als Quelle angegeben ist. Ein Ausführen des Programms zeigt die Wirkung des Hierarchienavigators. Es wird auch der Wert der zusätzlichen Hierarchiespalte HIERARCHY_DISTANCE gezeigt.

Variante 3

HIERARCHY_SIBLINGS( ... )


Wirkung

Der Hierarchienavigator HIERARCHY_SIBLINGS selektiert aus der hinter SOURCE angegebenen SQL-Hierarchie alle Geschwisterknoten der Ausgangsknoten sowie die Ausgangsknoten selbst. Zusätzlich zu den Hierarchiespalten der hinter SOURCE angegebenen SQL-Hierarchie sowie START_RANK und START_ID enthält die Ergebnismenge eine weitere Hierarchiespalte HIERARCHY_SIBLING_DISTANCE vom Typ INT4, welche den Abstand zum jeweiligen Ausgangsknoten enthält. Dieser ist die positive oder negative Differenz zwischen den Nummern HIERARCHY_RANK der Geschwisterknoten und der jeweiligen Ausgangsknoten.

Hinweis

Wenn auf die Werte in der Zusatzspalte HIERARCHY_SIBLING_DISTANCE zugegriffen wird, sollte in der hinter SOURCE angegebenen SQL-Hierarchie der Zusatz SIBLINGS ORDER BY verwendet werden. Ansonsten sind die Werte undefiniert.

Beispiel

Aufruf des Hierarchienavigators HIERARCHY_SIBLINGS im Programm DEMO_HIERARCHY_NAVIGATORS, wobei die CTE-Hierarchie +hierarchy als Quelle angegeben ist. Ein Ausführen des Programms zeigt die Wirkung des Hierarchienavigators. Es wird auch der Wert der zusätzlichen Hierarchiespalte HIERARCHY_SIBLING_DISTANCE gezeigt.

Zusatz

... DISTANCE $[FROM n1$] $[TO n2$]

Wirkung

Der Zusatz DISTANCE beschränkt bei den Hierarchienavigatoren HIERARCHY_DESCENDANTS und HIERARCHY_ANCESTORS den Abstand zum jeweiligen Ausgangsknoten. Bei dem Hierarchienavigator HIERARCHY_SIBLINGS kann der Zusatz DISTANCE nicht angegeben werden.

Es muss mindestens einer der Zusätze FROM oder TO in der gezeigten Reihenfolge angegeben werden. Für n1 und n2 werden Hostvariablen, Hostausdrücke oder Literale vom Typ i erwartet. Es dürfen nur die Typen b, s, oder i verwendet werden. Es werden nur solche Hierarchieknoten selektiert, bei denen der Wert der Hierarchiespalte HIERARCHY_DISTANCE zwischen den Werten von n1 und n2 liegt. Wenn der Wert von n1 größer als der von n2 ist, wird kein Hierarchieknoten selektiert. Wenn TO nicht angegeben ist, gibt es keine obere Beschränkung. Wenn FROM nicht angegeben ist, gibt es keine untere Beschränkung.

Hinweise

  • Die Funktionalität des Zusatzes DISTANCE kann auch durch Verwendung des Vergleichsoperators BETWEEN für die Hierarchiespalte HIERARCHY_DISTANCE erreicht werden. Dann findet die Selektion aber erst auf der Ergebnismenge des Hierarchienavigators und nicht durch diesen statt.
  • Um Hierarchieknoten in der Ergebnismenge von HIERARCHY_DESCENDANTS zu erhalten, müssen die Intervallgrenzen positive Werte umfassen. Um Hierarchieknoten in der Ergebnismenge von HIERARCHY_ANCESTORS zu erhalten, müssen die Intervallgrenzen negative Werte umfassen.
  • Um die Ausgangsknoten aus der Ergebnismenge auszuschließen, können die Zusätze FROM und TO wie folgt verwendet werden:
  • Mit FROM 1 ohne den Zusatz TO selektiert HIERARCHY_DESCENDANTS nur Nachfahrenknoten

  • Mit TO -1 ohne den Zusatz FROM selektiert HIERARCHY_ANCESTORS nur die Vorfahrenknoten

Beispiel

Aufruf des Hierarchienavigators HIERARCHY_DESCENDANTS im Programm DEMO_HIERARCHY_DISTANCE unter Angabe des Zusatzes DISTANCE. Ein Ausführen des Programms zeigt die Wirkung des Zusatzes. Wenn beispielsweise der Wert 2 für n1 und 3 für n2 angegeben wird, werden nur die Enkel und Urenkel des Ausgangsknotens selektiert. Wenn -3 für n1 und -2 für n2 angegeben wird, ist die Ergebnismenge von HIERARCHY_DESCENDANTS leer. Die Ergebnismenge von HIERARCHY_ANCESTORS enthält für diese Werte dagegen die Großeltern und Urgroßeltern des Ausgangsknotens.






ROGBILLS - Synchronize billing plans   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 13317 Date: 20240523 Time: 091633     sap01-206 ( 187 ms )