Ansicht
Dokumentation

ABENBDL_FUNCTION - BDL FUNCTION

ABENBDL_FUNCTION - BDL FUNCTION

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

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

Verfügbarkeit

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 )