Ansicht
Dokumentation

ABENCDS_TO_PARENT_ASSOC_V1 - CDS TO PARENT ASSOC V1

ABENCDS_TO_PARENT_ASSOC_V1 - CDS TO PARENT ASSOC V1

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

- 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

  • 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:

  • 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.
  • 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:

Einschränkungen:

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.).
  • 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 )