Ansicht
Dokumentation

ABAPWITH_ASSOCIATIONS - WITH ASSOCIATIONS

ABAPWITH_ASSOCIATIONS - WITH ASSOCIATIONS

General Material Data   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

WITH, ASSOCIATIONS

... WITH ASSOCIATIONS ( path
                       $|join$[,
                        ...$] )
                     $|(assoc_syntax)


Wirkung

Der Zusatz WITH ASSOCIATIONS zur Definition eines allgemeinen Tabellenausdrucks exponiert Assoziationen dieses Tabellenausdrucks zur Verwendung in den nachfolgenden Queries einer WITH-Anweisung. Gepflegt werden können z.B.:

In den runden Klammern muss mindestens eine Assoziation angegeben werden und es können mehrere Assoziationen als kommaseparierte Liste angegeben werden, wobei vorhandene und neu definierte Assoziationen gemeinsam und in beliebiger Reihenfolge vorkommen können.

  • Die exponierten Assoziationen können in nachfolgenden Queries der aktuellen WITH-Anweisung als Wurzelelemente dortiger Pfadausdrücke verwendet werden:

  • Eine exponierte Assoziation kann von einem nachfolgenden allgemeinen Tabellenausdruck der aktuellen WITH-Anweisung nochmals mit dem Zusatz WITH ASSOCIATIONS exponiert werden, wenn dieser den exponierenden Tabellenausdruck als Datenquelle verwendet. Dabei können andere Attribute angegeben werden.

Statt der statischen Angabe von Assoziationen in runden Klammern, kann ein eingeklammertes Datenobjekt assoc_syntax angegeben werde, das bei Ausführung der Anweisung die bei den statischen Angaben gezeigte Syntax enthalten muss. In diesem Fall kann der allgemeine Tabellenausdruck nur in anderen dynamischen Tokens der WITH-Anweisung verwendet werden. Das Datenobjekt assoc_syntax kann ein zeichenartiges Datenobjekt oder eine Standardtabelle mit zeichenartigem Zeilentyp sein. Die Syntax in assoc_syntax ist wie in der statischen Syntax unabhängig von Groß- und Kleinschreibung. Bei der Angabe einer internen Tabelle kann die Syntax auf mehrere Zeilen verteilt sein. Ungültige Syntax führt zu einer behandelbaren Ausnahme der Klasse CX_SY_DYNAMIC_OSQL_ERROR.

Wenn eine Assoziation mehrfach mit verschiedenen Aliasnamen exponiert wird, wird sie bei Verwendung in einem Pfadausdruck jeweils als eigene Assoziation behandelt. Es wird für jede Verwendung gegebenenfalls ein eigener Join-Ausdruck ausgeprägt, der die Ergebnismenge des exponierenden allgemeinen Tabellenausdrucks als linke Seite verwendet.

Der Zusatz WITH ASSOCIATIONS kann nicht verwendet werden, wenn die Subquery des allgemeinen Tabellenausdrucks das Sprachelement UNION, INTERSECT oder EXCEPT enthält. Weiterhin darf in der aktuellen CTE, in einer CTE, auf die mit dem Zusatz REDIRECTED TO umgeleitet wird, und in Queries, in denen die Assoziation in einem Pfadausdruck verwendet und in einen Join-Ausdruck verwandelt wird, nicht der Zusatz USING oder der obsolete Zusatz CLIENT SPECIFIED verwendet werden.

Hinweise

  • Das Exponieren einer Assoziation der Datenquelle eines allgemeinen Tabellenausdrucks mit WITH ASSOCIATION entspricht dem Exponieren einer Assoziation der Datenquelle einer CDS-View in ihrer SELECT-Liste.
  • Es ist zu beachten, dass nicht die Datenquelle des exponierenden allgemeinen Tabellenausdrucks, sondern dieser selbst die Assoziationsquelle der exponierten Assoziation ist. Der exponierende allgemeine Tabellenausdruck ersetzt die ursprüngliche Assoziationsquelle der Assoziation. Die linke Seite eines für die exponierte Assoziation ausgeprägten Join-Ausdrucks ist die Ergebnismenge der Subquery des allgemeinen Tabellenausdrucks.

Beispiel

Das folgende Beispielprogramm DEMO_WITH_ASSOCIATIONS demonstriert das Exponieren von CDS-Assoziationen durch allgemeine Tabellenausdrücke. Es hat die gleiche Funktionalität, wie das ausführbare Beispiel zur Verwendung von Pfadausdrücken in der FROM-Klausel. Die Hauptquery greift über den Aliasnamen _spfli_scarr auf das Assoziationsziel SCARR der letzten CDS-Assoziation _scarr des für den allgemeinen Tabellenausdruck +cte exponierten Pfadausdrucks \_spfli[ fltime > @fltime ]\_scarr zu. In der SELECT-Liste des allgemeinen Tabellenausdrucks muss die Komponente \_spfli-carrid mit der gleichen Filterbedingung fltime > @fltime wie in der Veröffentlichung aufgeführt sein, damit der zugehörige Join ausgeprägt werden kann.






Vendor Master (General Section)   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8280 Date: 20240523 Time: 135021     sap01-206 ( 118 ms )