Ansicht
Dokumentation

ABENCDS_ASSOCIATIONS_AND_JOINS - CDS ASSOCIATIONS AND JOINS

ABENCDS_ASSOCIATIONS_AND_JOINS - CDS ASSOCIATIONS AND JOINS

PERFORM Short Reference   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

In diesem Thema werden verschiedene Anwendungsfälle von CDS-Assoziationen beschrieben. Unter anderem wird erklärt, in welchem Anwendungsfall eine Join auf der Datenbank generiert wird und welcher Join-Typ dabei generiert wird. Die Umwandlung in Joins wird durch auf der Datenbank generierte Beispiele und Bildschirmabgriffe der SQL-Anweisung weiter veranschaulicht.

Wird eine CDS-Assoziation als Join auf der Datenbank instanziiert, stellt die Assoziationsquelle die linke Seite des Joins da und das Assoziationsziel die rechte Seite. Die ON-Bedingung des Joins wird um die ON-Bedingung der Assoziation ergänzt.

Die folgenden grundlegenden Anwendungsfälle existieren für CDS-Assoziationen:

Pfadausdruck in der FROM-Klausel verwenden

Anwendungsfall: die Datenquelle einer CDS-View-Entität hinter FROM wird als Pfadausdruck angegeben.

Beispiel:

Auf der Datenbank generierte SQL-Anweisung:

IMAGE @@ABDOC_ASSOC_6.png@@590@@174@@

Die auf der Datenbank generierte SQL-Anweisung zeigt die Umwandlung des Pfadausdrucks in einen inneren Join auf der Datenbank.

CDS-Assoziation exponieren

Anwendungsfall: eine Assoziation wird in der Elementliste einer CDS-View-Entität definiert und exponiert. So kann sie auch in anderen CDS-Entitäten verwendet werden. Die Assoziation ist aber nicht Teil der Ausgabe und keine Daten wird aus dem Assoziationsziel selektiert.

Beispiel:

Auf der Datenbank generierte SQL-Anweisung:

IMAGE @@ABDOC_ASSOC_1.png@@452@@119@@

Die auf der Datenbank generierte SQL-Anweisung zeigt die Nichtgenerierung eines Joins und die Übergabe einer nicht in der Anweisung angegebenen Assoziation an die Datenbank.

Ein Feld aus dem Assoziationsziel der Elementliste hinzufügen

Anwendungsfall: Definition einer Assoziation und die Aufnahme eines Elements aus dem Assoziationsziel in die Elementliste der gleichen CDS-View-Entität. In diesem Beispiel wird die Assoziation verwendet aber nicht exponiert und sie kann daher nicht in den Pfadausdrücken anderer CDS-Entitäten verwendet werden.

Beispiel:

Auf der Datenbank generierte SQL-Anweisung:

IMAGE @@ABDOC_ASSOC_2.png@@489@@173@@

Die auf der Datenbank generierte SQL-Anweisung zeigt die Umwandlung des Pfadausdrucks in einen links äußeren Join auf der Datenbank.

Pfadausdruck in der WHERE-Klausel verwenden

Anwendungsfall: Definition einer Assoziation und Verwendung in der WHERE-Klausel der gleichen CDS-View-Entität. In diesem Beispiel wird die Assoziation verwendet aber nicht exponiert und sie kann daher nicht in den Pfadausdrücken anderer CDS-Entitäten verwendet werden.

Beispiel:

Auf der Datenbank generierte SQL-Anweisung:

IMAGE @@ABDOC_ASSOC_3.png@@567@@196@@

Die auf der Datenbank generierte SQL-Anweisung zeigt die Umwandlung des Pfadausdrucks in einen links äußeren Join mit einer Viele-zu-Eins-Kardinalität.

Eine exponierte View in einer externen View verwenden

Anwendungsfall: Eine CDS-View-Entität verwendet eine Assoziation, die in anderen CDS-Entität definiert und veröffentlicht wurde. Die Assoziation wird in einem Pfadausdruck verwendet, um eine Feld aus dem Assoziationsziel in die Elementliste der CDS-View-Entität aufzunehmen.

Beispiel:

Auf der Datenbank generierte SQL-Anweisung:

IMAGE @@ABDOC_ASSOC_4.png@@772@@166@@

Die auf der Datenbank generierte SQL-Anweisung zeigt die Umwandlung des Pfadausdrucks in einen links äußeren Join auf der Datenbank. Es soll beachtet werden, das dies in der die Assoziation verwendenden View und nicht in der die Assoziation definierenden View stattfindet.

Eine exponierte Assoziation in verwenden

Anwendungsfall: Das Programm DEMO_CDS_SELECT_ASSOC verwendet eine Assoziation, die in einer CDS-View-Entität in einem Pfadausdruck in definiert und veröffentlicht wird.

Beispiel:

REPORT demo_cds_select_assoc.

CLASS demo DEFINITION
  PUBLIC SECTION.
    CLASS-METHODS main.
ENDCLASS.

CLASS demo IMPLEMENTATION.
  METHOD main.
    SELECT carrid,
           carrname,
           /_spfli[ (*) ]-connid
           FROM demo_cds_assoc_exposition
           INTO TABLE @DATA(result).
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  demo=>main( ).

Auf der Datenbank generierte SQL-Anweisung:

IMAGE @@ABDOC_ASSOC_5.png@@539@@179@@

Der Pfadausdruck wird in einen links äußeren Join auf der Datenbank verwandelt.






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

Length: 6797 Date: 20240523 Time: 162917     sap01-206 ( 86 ms )