Ansicht
Dokumentation
ABENCDS_TO_PARENT_ASSOC_V1 - CDS TO PARENT ASSOC V1
General Material Data General Material DataDiese Dokumentation steht unter dem Copyright der SAP AG.
- DDIC-basierte View, ASSOCIATION TO PARENT
... ASSOCIATION TO PARENT target $[AS _assoc$] ON $projection.
cds_cond ...
Wirkung
Eine CDS-To-Parent-Assoziation in ABAP CDS ist eine spezialisierte CDS-Assoziation. Sie ist das Gegenstück einer CDS-Komposition. Eine CDS-Komposition wird in der übergeordneten Entität definiert und zeigt auf die untergeordnete Entität, während eine CDS-To-Parent-Assoziation in der untergeordneten Entität definiert wird und auf eine übergeordnete Entität zeigt. Sowohl übergeordnete als auch untergeordnete Entitäten müssen gegenseitige Assoziationen definieren. Zusammen definieren Kompositionen und To-Parent-Assoziationen den CDS-Kompositionsbaum eines RAP Business-Objekts im Kontext des ABAP-RESTful-Anwendungsprogrammiermodells.
Eine To-Parent-Assoziation wird in einer SELECT-Anweisung einer DDIC-basierten CDS-View mithilfe des Schlüsselworts ASSOCIATION TO PARENT definiert. Eine 1To-Parent-Assoziation verknüpft die aktuelle CDS-Entität als Assoziationsquelle mit der in der Definition der Assoziation angegebenen Assoziationsziel target.
Die übergeordnete Entität muss immer zuerst eine To-Parent-Assoziation definieren, bevor eine CDS-Komposition in der untergeordneten Entität definiert werden kann. Eine umgekehrte Definition führt zu einem Syntaxfehler. Die To-Parent-Assoziation kann nicht gelöscht werden, solange die übergeordnete Entität das Ziel der Komposition ist. Die Komposition muss zuerst gelöscht werden, bevor die To-Parent-Assoziation gelöscht werden kann.
Regeln
CDS-To-Parent-Assoziationen werden ähnlich wie CDS-Assoziationen definiert. Im Folgenden werden die Gemeinsamkeiten und Unterscheide aufgeführt:
- Gemeinsamkeiten
- Für den Namen AS _assoc gelten dieselben Regeln wie für normale CDS-Assoziationen, siehe Abschnitt CDS DDL - DDIC-basierte View, ASSOCIATION.
- Eine ON-Bedingung muss definiert werden. Die Regeln für ON-Bedingungen von To-Parent-Assoziation sind nachfolgend aufgelistet.
- Unterschiede
- Es kann kein Standardfilter für eine To-Parent-Assoziation definiert werden. Die Syntax ... WITH DEFAULT FILTER ... ist nicht erlaubt.
- Die Kardinalität kann nicht explizit für To-Parent-Assoziationen definiert werden und wird als [1..1] generiert.
Folgendes gilt für das Assoziationsziel target:
- Ein Assoziationsziel kann eine andere CDS-View-Entität, eine , eine CDS-Projektionsview, eine abstrakte Entität oder eine Custom-Entität sein.
- Das Assoziationsziel einer To-Parent-Assoziation kann nicht die CDS-Entität sein, in der die To-Parent-Assoziation definiert ist. D. h. To-Parent-Assoziationen können keine Selbstassoziationen sein.
- Die Zielentität einer CDS-Komposition und einer To-Parent-Assoziation, die in derselben Datendefinition definiert sind, müssen unterschiedlich sein.
Allgemeine Regeln für untergeordnete Entitäten:
- Eine untergeordnete Entität muss genau eine To-Parent-Assoziation zu seiner übergeordnete Entität definieren.
- Eine untergeordnete Entität, die der Ziel eine CDS-Komposition ist, kann selbst eine übergeordnete Entität sein und weitere CDS-Kompositionen definieren.
- Eine Wurzelentität kann keine To-Parent-Assoziationen definieren.
- Die untergeordnete Entität, in der die To-Parent-Assoziation definiert ist, muss mindestens ein Schlüsselfeld haben.
Exponierung:
- Der Name der To-Parent-Assoziation _assoc muss genau einmal ohne Attributen und Alias zur select_list der CDS-View hinzugefügt werden, in der sie definiert ist. Wenn kein Name der To-Parent-Assoziation definiert ist, ist der Name der To-Parent-Assoziation der Name der Zielentität target, und dieser Name muss in der SELECT-Liste verfügbar gemacht werden.
Verwendung:
- Eine To-Parent-Assoziation kann in Datendefinitionen propagiert werden, in denen sie nicht definiert ist. In diesem Fall verwendet die To-Parent-Assoziation ihre spezielle Semantik und wird als normale CDS-Assoziation behandelt.
- To-Parent-Assoziationen können lokal in Pfadausdrücken und in anderen CDS-Entitäten, in denen sie propagiert sind, verwendet werden.
- To-Parent-Assoziationen können als Werte für AssociationRef-Assoziationen angegeben werden. Diese To-Parent-Assoziationen werden dann als Assoziationen behandelt.
To-Parent-Assoziationen und Joins:
- Alle Anwendungsfälle und Details zur Generierung von Joins, die im Abschnitt CDS DDL - DDIC-basierte View, Assoziationen und Joins beschrieben sind, gelten auch für To-Parent-Assoziationen.
Einschränkungen:
- To-Parent-Assoziationen können weder in einer CDS-View-Erweiterung noch mit EXTEND VIEW, oder mit EXTEND VIEW ENTITY definiert werden.
ON-Bedingung
Eine To-Parent-Assoziation muss eine ON-Bedingung definieren. Diese ON-Bedingung wird automatisch für die entsprechende CDS-Komposition in der übergeordneten Entität verwendet.
Es gelten die folgenden Regeln für die Operanden und Syntax der ON-Bedingung:
- In der ON-Bedingung können nur Schlüsselfelder der übergeordneten Entität verwendet werden.
- Die ON-Bedingung muss alle Schlüsselfelder der untergeordneten Entität verwenden. Jedes Feld darf in der ON-Bedingung nur einmal verwendet werden.
- Schlüsselfelder der übergeordneten Entität dürfen nur mit den Feldern der untergeordneten Entität verglichen werden.
- Ein Feld der untergeordneten Entität kann nur einmal verwendet werden.
- Den Feldern des Assoziationsziels muss $projection vorangestellt werden.
- Den Feldern des Assoziationsziels muss der Name der CDS-To-Parent-Assoziation vorangestellt werden (durch einen Punkt getrennter Präfix _assoc.).
- Nur der Vergleichsoperator "=" ist erlaubt. Es ist kein anderer relationaler Operator oder Vergleichsoperator erlaubt.
- Nur der boolesche Operator AND ist erlaubt. Negation mit NOT ist nicht erlaubt.
- lhs kann ein Feld der Assoziationsquelle oder des Assoziationsziels sein.
- rhs kann ein Feld der Assoziationsquelle oder des Assoziationsziels sein.
- Pfadausdrücke, Ausdrücke, eingebaute Funktionen und elementare Operanden sind nicht erlaubt.
- Alle Felder, die in der ON-Bedingung verwendet werden, müssen in der SELECT-Liste aufgeführt sein.
Hinweise
- Ein Knoten, der eine To-Parent-Assoziation definiert, ist nicht automatisch eine untergeordnete Entität des Business-Objekts. Ein Knoten ist nur dann eine übergeordnete Entität des Business-Objekts, wenn es das Ziel einer Komposition ist.
- To-Parent-Assoziationen können in der Elementliste
der CDS-Entität, in der sie definiert sind, mit Annotationen versehen werden.
Beispiel
Die unten gezeigte CDS-ViewDEMO_SALES_CDS_SO_I_SL gibt Information über die Einteilung von Kundenauftragspositionen zurück. Sie definiert eine To-Parent-Assoziation zu der CDS-View DEMO_SALES_CDS_SO_I, die Informationen zu Kundenaufträgen enthält.
In der SELECT-Liste wird die To-Parent-Assoziation
_SalesOrderItem exponiert, damit externe CDS-Entitäten auf sie zugreifen kann.
BAL_S_LOG - Application Log: Log header data SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 14705 Date: 20240523 Time: 174024 sap01-206 ( 156 ms )