Ansicht
Dokumentation

ABENBDL_ACTION2_ABEXA - BDL ACTION2 ABEXA

ABENBDL_ACTION2_ABEXA - BDL ACTION2 ABEXA

CL_GUI_FRONTEND_SERVICES - Frontend Services   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Aktion mit Eingabeparameter

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

Datenmodell

Das CDS-Datenmodell besteht aus einer einzelnen Wurzelentität DEMO_CDS_ACTION_INPUT_PARAM. Mit der Wurzelentität wird eine Bestellungsposition dargestellt.

Verhaltensdefinition

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

Aktionsdefinition

Mit der Verhaltensdefinition wird eine Aktion definiert: deductDiscount. Die Aktion hat einen Eingabeparameter, der mit der abstrakten CDS-Entität DEMO_CDS_ABSTRACT_DISCOUNT typisiert ist und mit ihr wird der Ausgabeparameter mit dem gleichen Typ wie die Entität der ausgeführten Aktion definiert. Ziel dieser Aufgabe ist die Reduzierung des Preises der Bestellungsposition durch den vom Eingabeparameter angegebenen Rabatt.

action deductDiscount
       parameter DEMO_CDS_ABSTRACT_DISCOUNT
       result [1] $self;

Mit folgender abstrakter CDS-Entität wird der Eingabeparameter typisiert:

Verhaltensimplementierung

Für die genannte CDS-Verhaltensdefinition wurde ein ABAP-Behavior-Pool (ABP) angelegt. Die globale Klasse des Verhaltens-Pools ist BP_DEMO_CDS_ACTION_INPUT_PARAM. Mit dieser globalen Klasse wird die lokale Behandlerklasse LHC_DEMO_CDS_ACTION_INPUT_PARA implementiert, die die Methode deductDiscount für die Implementierung der Aktion enthält. Diese Methode ist eine FOR MODIFY-Methode und sie wird auf der Grundlage der PurchaseItem-Entität typisiert. Ihre Signatur umfasst auch den Ergebnisparameter. Die eigentliche Implementierung findet in BP_DEMO_CDS_ACTION_INPUT_PARAMCCIMP statt.

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:

  • Der Benutzer wird aufgefordert, den Prozentrabatt einzugeben.
  • Es werden zwei BO-Instanzen mit der Anweisung MODIFY ENTITY angelegt.
  • Auf einer der beiden Instanzen wird die deductDiscount mit der Anweisung EXECUTE ausgeführt.
  • Die result-, failed- und reported-Parameter werden zurückgegeben.
  • Die durch die Aktion im transaktionalen Puffer durchgeführten Änderungen werden mit der Anweisung COMMIT ENTITIES RESPONSE OF auf der Datenbank festgeschrieben.
  • Mit einer SELECT-Anweisung werden die geänderten Daten aus der persistenten Tabelle DEMO_PURCH_DOC_I gelesen. Ergebnis: der Preis einer Bestellungsposition wird um den im Eingabeparameter angegebenen Prozentrabatt reduziert.





CPI1466 during Backup   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 4688 Date: 20240523 Time: 165258     sap01-206 ( 60 ms )