Ansicht
Dokumentation

ABENBDL_USE_PROJECTION - BDL USE PROJECTION

ABENBDL_USE_PROJECTION - BDL USE PROJECTION

TXBHW - Original Tax Base Amount in Local Currency   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- use

... use create $[( augment$[, precheck$])$]
  $| use update $[(augment$[, precheck$])$]
  $| use delete $[(precheck)$]
  $| use association _Assoc { create $[( augment$[, precheck$])$];
                            $[with draft;$]}
  $| use action $[(precheck)$] ActionName
               $[result entity ProjResultEntity$]
               $[as ProjAction$]
               $[external 'ExtName'$]
               $[result external 'ExtResultName'$]
  $| use function FunctionName
               $[result entity ProjResultEntity$]
               $[as AliasName$]
               $[external ExtName$]
               $[result external ExtResultName$]
  $| use draft
  $| use etag ...


Varianten:

1. ... use create ...

2. ... use update ...

3. ... use delete ...

4. ... use association ...

5. ... use action ...

6. ... use function ...

7. ... use draft ...

8. ... use etag ...

Wirkung

Das Schlüsselwort use ermöglicht die Wiederverwendung von Entitätsverhaltensmerkmalen, Entwurfsbehandlung und RAP-BO-Operationen aus der Basis-BDEF in einer Projektions-BDEF oder Interface-BDEF.

Es können folgende Operationen und Merkmale wiederverwendet werden:

Es können nur diejenigen Elemente wiederverwendet werden, die in der zugrunde liegenden Verhaltensdefinition definiert werden. Die Realisierung des Verhaltens erfolgt durch eine Abbildung auf das zugrunde liegende Verhalten und es ist keine Implementierung in einem ABAP-Behavior-Pool notwendig.

Zusätzlich zum Wiederverwendungsverhalten stehen zwei neue optionale Zusätze für das wiederverwendete Verhalten zur Verfügung: precheck und augment. Beide erfordern eine Implementierung im ABAP-Behavior-Pool. Sie stehen nur in Projektions-BDEFs zur Verfügung und in keinen Interface-BDEFs Die Zusätze sind im eigenen Abschnitten dokumentiert. Siehe:

Es findet für die in diesem Abschnitt aufgeführten Operationen und Merkmale keine automatische Vererbung statt. Sie müssen in der Projektions- oder Interface-BDEF explizit angegeben werden. Wenn nicht, steht die entsprechende Funktion in der Projektion nicht zur Verfügung.

Beispiel

Im folgenden Beispiel wird eine Projektions-BDEF gezeigt, die Standardoperationen und Operationen für Assoziationen aus ihrer zugrunde liegenden Basis-BDEF wiederverwendet. Die Basis-BDEF ist DEMO_SALES_CDS_BUPA_2.

Mit dem ABAP-Programm DEMO_RAP_PROJECTION_CRUD wird über EML auf ein RAP-Business-Objekt zugegriffen. Damit werden BO-Instanzen angelegt, aktualisiert und gelöscht.

  • Entwicklungsleitfaden für das ABAP-RESTful-Anwendungsprogrammiermodell, Abschnitt Projection Behavior Definition

Variante 1

... use create ...


Wirkung

Die Standardoperation create kann in einer Projektions- oder Interface-BDEF wiederverwendet werden.

In einer Projektions-BDEF können folgende Zusätze hinzugefügt werden. Beide erfordern eine Implementierung in einem ABAP-Behavior-Pool.

Beispiel: siehe oben, Projektions-BDEF DEMO_RAP_PROJECTION_CRUD.

Variante 2

... use update ...


Wirkung

Die Standardoperation update kann in einer Projektions-BDEF wiederverwendet werden.

In einer Projektions-BDEF können folgende Zusätze hinzugefügt werden. Beide erfordern eine Implementierung in einem ABAP-Behavior-Pool.

Beispiel: siehe oben, Projektions-BDEF DEMO_RAP_PROJECTION_CRUD.

Variante 3

... use delete ...


Wirkung

Die Standardoperation delete kann in einer Projektions-BDEF wiederverwendet werden.

In einer Projektions-BDEF kann folgender Zusatz hinzugefügt werden. Er erfordert eine Implementierung in einem ABAP-Behavior-Pool.

Beispiel: siehe oben, Projektions-BDEF DEMO_RAP_PROJECTION_CRUD.

Variante 4

... use association ...


Wirkung

Die transaktionale Fähigkeit von Assoziationen kann in einer Projektions- oder Interface-BDEF wiederverwendet werden.

Bei eingeschalteter RAP-Entwurfsbehandlung in der Projektions- oder Interface-BDEF müssen Assoziationen über den Syntaxzusatz with draft entwurfsfähig gemacht werden.

Beispiel: use association _assoc { create; with draft; }

Weitere Informationen über read-by-association- und create-by-association-Operationen, und die Entwurfsfähigkeit von Assoziationen, finden Sie im Abschnitt CDS BDL - Operationen für Assoziationen.

In Projektions-BDEFs können folgende Zusätze hinzugefügt werden. Beide erfordern eine Implementierung in einem ABAP-Behavior-Pool.

Beispiel: siehe oben, Projektions-BDEF DEMO_RAP_PROJECTION_CRUD.

Variante 5

... use action ...


Wirkung

Mit dem Syntaxelement use action können in einer Projektions- oder Interface-BDEF Aktionen, Entwurfsaktionen und Determinierungsaktionen aus dem zugrunde liegenden Basis-BDEF projiziert werden. Es können nur diejenigen Aktionen, Entwurfsaktionen und Determinierungsaktionen wiederverwendet werden, die in der zugrunde liegenden Verhaltensdefinition definiert sind. Bei der Angabe eines Berechtigungskonzepts oder Feature-Controls für eine Aktion, wird diese automatisch von der Projektion oder dem Interface übernommen.

Zusätze:

  • precheck: eine Vorabprüfung kann in der Projektionsschicht hinzugefügt werden. Eine Implementierung in einem ABAP-Behavior-Pool ist erforderlich.
  • result entity: Falls die Basis-BDEF eine Ausgabeparameterentität durch das Schlüsselwort result entity angibt, muss die Projektions-BDEF die Projektion der Ergebnisentität mit der Syntax result entity ProjResultEntity angeben. Wenn nicht, könnte die Aktion bei Nichtaufnahme der Ergebnisentität in den Service nicht mehr exponiert sein.
  • as: eine Aktion kann über das Schlüsselwort as einen neuen Aliasnamen in der Projektionsschicht erhalten.
  • external: es kann ein neuer Aliasname für die externe Verwendung in OData in der Projektionsschicht bereitgestellt werden. Dieser externe Name darf viel länger als der ABAP-Aliasname sein und muss bei der Definition der entsprechenden UI-Annotationen verwendet werden.
  • result external: es kann ein neuer Aliasname für die Ergebnisentität in der Projektionsschicht bereitgestellt werden. Dieser neue Name wird in den OData-Metadaten exponiert.

Beispiel

Im folgenden Beispiel wird eine Projektions-BDEF gezeigt, die die zwei Aktionen Approve_Order und Reject_Order aus der zugrunde liegenden Basis-BDEF wiederverwendet. Die zugrunde liegende Basis-BDEF ist DEMO_CDS_PURCH_DOC_M.

Eine detaillierte Beschreibung der Definition und Implementierung des Basis-BOs finden Sie im Abschnitt CDS BDL - Aktion.

Das ABAP-Programm DEMO_RAP_PROJ_ACTION verwendet EML, um auf ein RAP-Business-Objekt zuzugreifen: Damit wird die Aktion Reject auf einer einzelnen Entitätsinstanz ausgeführt

Ergebnis: die Spalte Status der jeweiligen Instanz wird mit R für Rejected gefüllt.

IMAGE @@ABDOC_REJECTED.jpg@@304@@113@@

Beispiel

Ein Beispiel der Wiederverwendung von Entwurfsaktionen finden Sie unter Variante 7, use draft.

Variante 6

... use function ...


Wirkung

Mit dem Syntaxelement use function können Funktionen aus dem zugrunde liegenden Basis-BDEF in einer Projektions- oder Interface-BDEF wiederverwendet werden. Es können nur diejenigen Funktionen wiederverwendet werden, die in der zugrunde liegenden Verhaltensdefinition definiert werden.

Zusätze:

  • result entity: Falls die Basis-BDEF eine Ausgabeparameterentität durch das Schlüsselwort result entity angibt, muss die Projektions-BDEF die Projektion der Ergebnisentität mit der Syntax result entity ProjResultEntity angeben. Wenn nicht, könnte die Funktion bei Nichtaufnahme der Ergebnisentität in den Service nicht mehr exponiert sein.
  • as: eine Funktion kann über das Schlüsselwort as einen neuen Aliasnamen in der Projektionsschicht erhalten.
  • external: es kann ein neuer Aliasname für die externe Verwendung in OData in der Projektionsschicht bereitgestellt werden. Dieser externe Name darf viel länger als der ABAP-Aliasname sein und muss bei der Definition der entsprechenden UI-Annotationen verwendet werden.
  • result external: es kann ein neuer Aliasname für die Ergebnisentität in der Projektionsschicht bereitgestellt werden. Dieser neue Name wird in den OData-Metadaten exponiert.

Beispiel

Im folgenden Beispiel wird eine Projektions-BDEF gezeigt, die die Funktionen getDetails, calculateTotal und calculateDiscount aus der zugrunde liegenden Basis-BDEF wiederverwendet. Die zugrunde liegende Basis-BDEF ist DEMO_RAP_PROJ_FUNCTION.

Eine detaillierte Beschreibung der Definition und Implementierung des Basis-BOs finden Sie im Abschnitt CDS BDL - Funktion.

Das ABAP-Programm DEMO_RAP_PROJ_FUNCTION verwendet EML, um auf ein RAP-Business-Objekt zuzugreifen: Damit werden alle drei Funktionen ausgeführt und der Inhalt ihrer Ergebnisstrukturen angezeigt. Es werden keine modifizierenden Operationen durchgeführt und die Funktionen liefern in ihrer Ergebnisstruktur ausschließlich Informationen ohne die Datenbankeinträge zu ändern.

Ergebnis:

IMAGE @@ABDOC_FUNCTION.png@@598@@365@@



Variante 7

... use draft ...


Wirkung

Die RAP-Entwurfsbehandlung kann mit dem Syntaxelement use draft wiederverwendet werden. Als Voraussetzung muss das zugrunde liegende RAP-BO entwurfsfähig sein. Die Entwurfstabellen und das gesamte ETag-Feld sind Implementierungsdetails, die automatisch wiederverwendet werden und nicht explizit angegeben werden muss. Weitere Informationen über die RAP-Entwurfsbehandlung finden Sie im Abschnitt CDS BDL - with draft.

In einer Projektions-BDEF sollten Entwurfsaktionen explizit mit dem Syntaxelement use action angegeben werden. Sie werden zwar implizit wiederverwendet, sollten aber explizit geschrieben werden. Beim eingeschalteten strikten BDEF-Modus ist eine explizite Angabe aller Entwurfsaktionen obligatorisch.

In einem Interface-BDEF sollten Entwurfsaktionen direkt nach Wiederverwendung der Entwurfsbehandlung explizit mit dem Syntaxelement use action angegeben werden.

Wiederverwendete Assoziationen sollten mit dem Syntaxelement with draft explizit entwurfsfähig gemacht werden

Beispiel: use association _assoc { create; with draft; }

Weitere Informationen über entwurfsfähige Assoziationen finden Sie unter CDS BDL - Operationen für Assoziationen.

Beispiel

Im folgenden Beispiel wird eine auf der nicht verwalteten entwurfsfähigen BDEF basierten Projektions-BDEF DEMO_RAP_UNMANAGED_DRAFT_ROOT gezeigt. Hiermit wird die RAP-Entwurfsbehandlung wiederverwendet.

Eine detaillierte Beschreibung der Definition und Implementierung des Basis-BOs finden Sie im Abschnitt CDS BDL - with draft.

Die Implementierung wird aus dem Basis-BO automatisch wiederverwendet.

Das ABAP-Programm DEMO_RAP_PROJECTION_DRAFT greift über EML auf das Business-Objekt zu und führt die folgenden Schritte aus:

  • Es legt zwei neue Entwurfsinstanzen der übergeordneten Entität sowie zwei neue Entwurfsinstanzen der untergeordneten Entität an und zeigt den Inhalt der Entwurfstabellen an.
  • Danach aktiviert es über die Entwurfsaktion Activate die Entwurfsentitäten. Der Inhalt der Entwurfstabellen wird in die persistenten Tabellen geschrieben und die Entwurfstabellen werden geleert.



Variante 8

... use etag ...


Wirkung

Falls das Basis-BO Master-ETag-Felder oder abhängige ETag-Felder für das optimistische Concurrency-Control angibt, können diese Felder wiederverwendet werden. Das Schlüsselwort use etag muss für jede Entität in der Projektions- oder Interface-BDEF einzeln angegeben werden. Bei einer nicht expliziten Angabe in der Projektions- oder Interface-BDEF geht die Funktionalität des optimistischen Concurrency-Controls verloren.

Hinweis

Auch in Projektions-BDEFs ohne die Syntax use etag wird der Wert des ETag-Feldes während jeder modifizierenden Operation aktualisiert. Die Syntax use etag ermöglicht aber eine optimistische Sperrphase in einem OData-Service. Während der optimistischen Sperrphase und bei jeder modifizierenden Anforderung wird der Wert des ETag-Feldes überprüft. Wenn ein OData-Client keine Änderungen im ETag-Wert feststellt, sind keine Datenänderungen möglich. Ein Versuch, Daten zu sichern, schlägt fehl.

Entwicklungsleitfaden für das ABAP-RESTful-Anwendungsprogrammiermodell, Abschnitt Optimistic Concurrency Control.






SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 27780 Date: 20240523 Time: 155500     sap01-206 ( 314 ms )