Ansicht
Dokumentation
ABENBDL_FUNCTION - BDL FUNCTION
CL_GUI_FRONTEND_SERVICES - Frontend Services SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3upDiese Dokumentation steht unter dem Copyright der SAP AG.
- function
$[internal$] $[static$] function FunctionName
$[external 'ExternalName'$]
$[InputParameter$]
OutputParameter
Wirkung
Eine RAP-Funktion ist eine selbstimplementierte Operation, die Informationen ohne Nebenwirkungen zurückgibt. Eine Funktion kann auf Business-Objekten Berechnungen oder Leseoperationen durchgeführt werden ohne Sperren anzuwenden oder Daten zu modifizieren. Eine Implementierung in der RAP-Behandlermethode FOR READ im ABAP-Behavior-Pool ist erforderlich.
Beim Modifizieren von Daten in der Funktionsimplementierung im ABAP-Behavior-Pool kommt es nicht zu einer Fehlermeldung, sondern es tritt ein Laufzeitfehler beim Versuch eines RAP-BO-Consumers auf die jeweilige Funktion zuzugreifen auf.
Optionale Zusätze:
- Static:: eine Funktion bezieht sich standardmäßig auf eine RAP-BO-Entitätsinstanz und ändert den Zustand der Instanz. Statische Funktionen sind an keine Instanz einer RAP-BO-Entität gebunden und beziehen sich auf die gesamte Entität.
- external: kann als Aliasname für die Funktion zur externen Verwendung angegeben werden. Der externe Name wird in den OData-Metadaten exponiert, ist ABAP jedoch nicht bekannt. Er kann weitaus länger als der tatsächliche Aktionsname sein.
Die folgenden CDS-BDL-Operationszusätze sind möglich:
- internal: auf die interne Funktion kann nur von innerhalb der Business-Objekt-Implementierung zugegriffen werden.
- Die Funktionssignatur kann optional um ein Eingabeparameter InputParameter erweitert werden.
- Ein Ausgabeparameter OutputParameter ist obligatorisch.
Verfügbarkeit
- Funktionen aus der Basis-BDEF können in einer Projektions-BO wiederverwendet werden. Weitere Informationen über die Wiederverwendung finden Sie unter CDS BDL - Verwendung, Projektions-BDEF. Wie unter CDS BDL - Aktionen und Funktionen, Projektions-BDEF beschrieben, können auch neue Funktionen definiert werden.
Entwicklungsleitfaden für das ABAP-RESTful-Anwendungsprogrammiermodell, Abschnitt Functions
Beispiel
Im folgenden Beispiel wird eine auf der CDS-Wurzel-View-Entität DEMO_CDS_FUNCTION_1 basierte verwaltete BDEF gezeigt. Mit dem Business-Objekt wird eine Bestellung dargestellt. Es werden drei Funktionen definiert:
- getDetails ist eine Instanzfunktion, mit der die Werte der Felder PurchaseDocument, Price und Status für die angegebenen Entitätsinstanzen gelesen und in der Ergebnisstruktur zurückgegeben werden können.
- calculateTotal ist eine statische Funktion, die die Preise aller Entitätsinstanzen mit Status O summiert und die Summe in ihrer Ergebnisstruktur zurückgibt.
- Diese Funktion verwendet als Ausgabeparameter ein DDIC-Datenelement. Empfohlen wird die Verwendung von abstrakten CDS-Entitäten als BDEF-Parametern.
- calculateDiscount enthält einen Eingabeparameter für den Prozentrabatt. Hiermit wird der Rabatt vom initialen Preis abgezogen und ein reduzierter Preis in der Ergebnisstruktur zurückgegeben.
Mit dem Programm DEMO_CDS_FUNCTION wird über EML auf das Business-Objekt zugegriffen, 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.
IMAGE @@ABDOC_FUNCTION.png@@598@@365@@Weitere Informationen über das Beispiel oben finden Sie im ausführbaren Beispiel CDS BDL - function.
Fill RESBD Structure from EBP Component Structure ROGBILLS - Synchronize billing plans
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 7518 Date: 20240523 Time: 171519 sap01-206 ( 91 ms )