Ansicht
Dokumentation

ABENBDL_FUNCTION_ABEXA - BDL FUNCTION ABEXA

ABENBDL_FUNCTION_ABEXA - BDL FUNCTION ABEXA

General Material Data   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- function

In diesem Beispiel wird dargestellt, wie in einem verwalteten RAP-BO eine Funktion definiert, implementiert und genutzt wird.

Datenmodell

Das CDS-Datenmodell besteht aus der Wurzel-Entität DEMO_CDS_FUNCTION_1, die eine Bestellung darstellt.

Wurzelentität:

Verhaltensdefinition

Die CDS-Verhaltensdefinition DEMO_CDS_FUNCTION_1 wird in CDS BDL wie folgt definiert:

Funktionsdefinition

Es werden drei Funktionen definiert:

  • getDetails: 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: 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: Funktion mit einem Eingabeparameter für einen Prozentrabatt. Hiermit wird der Prozentrabatt vom initialen Preis einer Entitätsinstanz abgezogen und der reduzierte Preis in der Ergebnisstruktur zurückgegeben.

Alle drei Funktionen liefern einfach Information in deren Ergebnisstruktur. Es wird keine modifizierende Operation durchgeführt und keine Daten auf der Datenbank geändert.

Verhaltensimplementierung

Für die genannte CDS-Verhaltensdefinition wurde ein ABAP-Behavior-Pool (ABP) angelegt. Darauf kann unter BP_DEMO_CDS_FUNCTION_1========CCIMP zugegriffen werden.

Quelltext

Ausführen

Beschreibung

Zugriff mit ABAP über EML

Der obige Quelltext verwendet EML, um auf das RAP-Business-Objekt aus einem ABAP-Programm zuzugreifen und alle drei Funktionen zu ausführen:

  • Es wird zuerst die persistente Datenbanktabelle demo_purch_doc über die Methode fill_table und ABAP SQL mit Werten gefüllt. So sind BO-Instanzen bereits vorhanden und müssen nicht über EML angelegt werden.
  • Die Funktion getDetails wird für zwei Entitätsinstanzen ausgeführt. Diese Entitätsinstanzen werden über die Werte deren Schlüsselfelder ermittelt. Die Funktion liest die Werte der Felder PurchaseDocument, Price und Status für die angegebenen Entitätsinstanzen und gibt sie in ihrer Ergebnisstruktur zurück. Die Werte aus der Ergebnisstruktur werden an die interne Struktur instance_function angehängt und eine Bildschirmausgabe generiert.
  • Die Funktion calculateTotal ist eine statische Funktion und gilt daher für das ganze BO und nicht nur für eine spezifische Entitätsinstanz. Zuerst filtert die Funktion alle Entitätsinstanzen mit dem Status O (in diesem Beispiel haben alle Entitätsinstanzen den Status O). Danach summiert sie die Werte des Feldes Price aller Entitätsinstanzen mit dem Status O. Die Werte aus der Ergebnisstruktur werden an die interne Struktur static_function angehängt und eine Bildschirmausgabe generiert.
  • Die Funktion calculateDiscount ist eine Instanzfunktion mit Eingabeparameter. Voraussetzung für die Ausführung der Funktion ist die Angabe einer Entitätsinstanz und eines Wertes für den Eingabeparameter. In diesem Beispiel stellt der Eingabeparameter einen Prozentrabatt dar und die Funktion zieht den Rabatt vom Wert des Feldes Price einer Entitätsinstanz ab. Es wird in der Ergebnisstruktur der reduzierte Preis zurückgegeben. Die Werte aus der Ergebnisstruktur werden an die interne Struktur function_input_param angehängt und eine Bildschirmausgabe generiert.





ROGBILLS - Synchronize billing plans   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6164 Date: 20240523 Time: 173921     sap01-206 ( 101 ms )