Ansicht
Dokumentation

ABENCDS_DEFINE_VIEW_AS_PROJECTION - CDS DEFINE VIEW AS PROJECTION

ABENCDS_DEFINE_VIEW_AS_PROJECTION - CDS DEFINE VIEW AS PROJECTION

BAL_S_LOG - Application Log: Log header data   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- DEFINE VIEW ENTITY AS PROJECTION ON, transaktionale Query

$[@entity_annot1$]
$[@entity_annot2$]
...
$[@proj_view_annot1$]
$[@proj_view_annot2$]
...
DEFINE $[ROOT$] VIEW ENTITY projection_view
   $[PROVIDER CONTRACT TRANSACTIONAL_QUERY$]
    AS PROJECTION ON cds_entity $[AS alias_name$]
   $[ association1 association2 ...$]
   $[redefined_assoc1 redefined_assoc2 ...$]
      { projection_list }
   $[WHERE cds_cond$]


Zusätze:

1. ... ROOT

2. ... AS alias_name

Wirkung

Definition einer transaktionalen CDS-Query mit dem Namen projection_view in der CDS DDL. Eine CDS-Projektions-View ist eine direkt Projektion einer zugrunde liegenden CDS-Entität cds_entity ( projizierte Entität genannt) und exponiert eine Untermenge der Elemente der projizierten Entität, die in der Projektionsliste projection_list definiert sind.

Die projizierte Entität cds_entity kann entweder eine CDS-View-Entität oder eine (veraltet) sein. Andere CDS-Entitäten oder Datenquellen sind als projizierte Entität nicht erlaubt. Mit Pfadausdrücken darf die projizierte Entität darf nicht angegeben werden. Eine CDS-Entität kann als Grundlage für mehrere CDS-Projektions-Views verwendet werden.

Der Name der CDS-Projektions-View projection_view wird hinter der DEFINE VIEW ENTITY-Anweisung definiert. Für diesen Namen gelten die üblichen Einschränkungen für Views des ABAP Dictionary und die Groß-/Kleinschreibung spielt keine Rolle (bzw. er wird intern in Großbuchstaben umgesetzt). Er kann maximal 30 Zeichen haben und befindet sich im Namensraum aller globalen Typen eines AS ABAP. Der Name der DDL-Quelle und der Name der CDS-Entität müssen identisch sein.

Eine transaktionale CDS-Query, die den Zusatz PROVIDER CONTRACT TRANSACTIONAL_QUERY verwendet, muss Teil eines RAP-Business-Objekts sein. Die View muss daher entweder selbst eine Wurzelentität sein oder zu einem Kompositionsbaum gehören und eine Wurzelentität über eine Komposition erreichen.

Komponenten

  • Vor der Anweisung DEFINE VIEW ENTITY angegebene Kopfannotationen werden nicht aus der projizierten Entität übernommen. Das Angeben von Entitätsannotationen @entity_annot oder Projektions-View-Annotationen @proj_view_annot als Kopfkonditionen ist möglich, aber nicht erforderlich.
  • Der Provider-Kontrakt gibt das Szenario an, in dem die Projektions-View verwendet wird. Die Angabe eines Provider-Kontraktes wird immer empfohlen. Andernfalls werden keine laufzeitspezifischen Syntaxprüfungen angewendet. Weitere Informationen finden Sie im Abschnitt zu Provider-Kontrakten.
  • Die Projektions-View kann hinter der View-Definition mit DEFINE VIEW ENTITY AS PROJECTION ON um neue lokale schreibgeschützte Assoziationen association1, association2 ergänzt werden. Die gleichen Regeln gelten wie für Assoziationen in CDS-View-Entitäten. Ein wesentlicher Unterschied besteht darin, dass schreibgeschützte Assoziationen in Projektions-Views nur exponiert und nicht in Pfadausdrücken verwendet werden können, um Elemente aus neuen Assoziationen zu exponieren. Details zu neuen lokalen Assoziationen in CDS-Projektions-Views sind unter CDS DDL - projection_view, ASSOCIATION zu finden.
  • Die Anzahl Zeilen in der Ergebnismenge kann mit dem Zusatz WHERE optional weiter eingeschränkt werden.

Hinweis

Die für eine transaktionale CDS-Query definierte CDS-Zugriffskontrolle muss symmetrisch zur CDS-Zugriffskontrolle für die projizierte Entität definiert sein. Das ganze Verhalten der Zugriffkontrolle der projizierten Entität muss geerbt sein.

Beispiel

Die folgende transaktionale CDS-Query DEMO_SALES_PV_BUPA ist eine Projektion der existierenden CDS-View DEMO_SALES_CDS_BUPA. Die Ergebnismenge enthält ausschließlich Zeilen, in denen der Name des Geschäftspartners mit „P“ anfängt.

Beispiel

Die folgende transaktionale CDS-Query DEMO_SALES_PV_SO_I_SL ist eine Projektion der existierenden CDS-View DEMO_SALES_CDS_SO_I_SL. Sie exponiert sowohl eine Untermenge der Elemente der projizierten Entität als auch eine Assoziation.

Ein Provider-Kontrakt wird nicht angegeben, da der Provider-Kontrakt nur angegeben wird, nachdem die Wurzelentität eines CDS-Kompositionsbaums und alle untergeordneten Entitäten diesen Provider-Kontrakt automatisch erben. In diesem Fall ist die Wurzelentität DEMO_SALES_PV_SO und gibt das Business-Objekt als transaktionale Query an.

Zusatz 1

... ROOT

Wirkung

Das Schlüsselwort ROOT bewirkt, dass die Projektions-View die Wurzelentität eines Kompositionsbaums ist. Die Projektions-View muss immer die Position der projizierten Entität im Kompositionsbaum widerspiegeln. Wenn die projizierte Entität nämlich eine Wurzelentität ist, muss die Projektions-View dann auch eine Wurzel sein. Wenn die projizierte Entität keine Wurzel ist, kann die Projektions-View auch keine Wurzel sein. In diesem Fall muss die projizierte Entität eine To-Parent-Assoziation enthalten.

Bei der Definition einer CDS-Projektions-View als transaktionale Query über den Zusatz PROVIDER CONTRACT TRANSACTIONAL_QUERY muss die View entweder selbst eine Wurzelentität sein oder sie muss Teil eines Kompositionsbaums sein und eine Wurzelentität über eine Assoziation erreichen.

Zusatz 2

... AS alias_name

Wirkung

Definiert den Namen alias_name als Aliasnamen der projizierten Entität. Der Aliasname kann maximal 30 Stellen haben. Wenn kein Namen über AS explizit definiert wird, wird der ursprüngliche Name der Datenquelle verwendet.






General Material Data   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 12380 Date: 20240606 Time: 072902     sap01-206 ( 144 ms )