Ansicht
Dokumentation

ABENABP_SAVER_CLASS_ABEXA - ABP SAVER CLASS ABEXA

ABENABP_SAVER_CLASS_ABEXA - ABP SAVER CLASS ABEXA

CPI1466 during Backup   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

Beispiel für RAP-Saver-Methoden

Mit diesem Beispiel werden RAP-Saver-Methoden innerhalb einer RAP-Saver-Klasse mithilfe eines nicht verwalteten RAP BOs demonstriert.

Datenmodell

Das CDS-Datenmodell besteht aus der Wurzelentität DEMO_UNMANAGED_ROOT und ihrer untergeordneten Entität DEMO_UNMANAGED_CHILD.

Wurzelentität:

Kindentität:

Verhaltensdefinition

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

Verhaltensimplementierung

Für die oben genannte CDS-Verhaltensdefinition wird ein ABP angelegt. Die globale Klasse des Behavior-Pools ist BP_DEMO_UNMANAGED_ROOT. Die eigentliche Verhaltensimplementierung findet in lokalen Klassen statt, die im BP_DEMO_UNMANAGED_ROOT========CCIMP des Behavior-Pools definiert und implementiert werden. Hinweis: Der ABP enthält absichtlich wenige Behandlermethodenimplementierungen, da die Betonung bei den Saver-Methoden liegt.

Die Klasse lsc_demo_unmanaged_root ist die RAP-Saver-Klasse, die folgende RAP-Saver-Methoden enthält:

Methode Details
finalize Hiermit werden endgültige Berechnungen mit den BOs in der aktuellen LUW vor der Sicherung auf der Datenbank ausgelöst. In diesem Beispiel wird die Methode für eine Berechnung auf einem Datenfeld implementiert. field3 wird durch 2 geteilt. Da das Feld vom Typ i ist, führt eine Teilung durch zwei bei ungeraden Zahlen zu einem Fehler. Bei einem Fehler werden die Parameter FAILED und reported gefüllt. Bei einer erfolgreichen Teilung erhält field3 das Ergebnis und eine Erfolgsmeldung wird in den Parameter reported für die jeweilige Instanz aufgenommen. Eine Protokolltabelle (DEMO_TAB_SAVELOG) wird dann mit dem Inhalt der Strukturen failed (wenn verfügbar) und reported gefüllt. Das Ziel dieser Protokolltabelle ist es, die zurückgegebenen Meldungen der Methoden finalize, check_before_save und save in der Ausgabe zu zeigen.
check_before_save Enthält eine Konsistenzprüfung. Eine Instanz sollte nur gesichert werden, wenn der Wert des Datenfelds field4 100 nicht überschreitet. Weiterhin werden die Parameter failed und reported und die Protokolltabelle DEMO_TAB_SAVELOG gefüllt.
save Speichert die Daten aus dem transaktionalen Puffer in die Datenbank. Die Methode wird nur bei erfolgreichen Verarbeitung der Methoden finalize, check_before_save und adjust_numbers aufgerufen. Nachdem die Daten gesichert werden, wird eine Erfolgsmeldung in den Parameter reported und die Protokolltabelle DEMO_TAB_SAVELOG aufgenommen.
cleanup Hiermit wird der Transaktionspuffer geleert. Diese Methode wird bei Verarbeitung der Methode save gerufen.
cleanup_finalize Hiermit wird der Transaktionspuffer geleert. Diese Methode wird bei Problemen in den Methoden finalize und check_before_save gerufen.

Quelltext

Ausführen

Beschreibung

Zugriff mit ABAP über EML

Der obige Quellcode verwendet EML, um auf das RAP Business-Objekt aus einem ABAP-Programm zuzugreifen:

Mit diesem Beispiel werden drei unterschiedliche -MODIFY-Anforderungen demonstriert. Jede MODIFY-Anforderung enthält CREATE-Operationen, um drei Instanzen anzulegen. COMMIT ENTITIES-Anweisungen stoßen die Sicherungssequenz an.

  1. Erste MODIFY-Anforderung: Die Methode finalize wird nicht erfolgreich verarbeitet und die Daten werden nicht gesichert.
  2. Zweite MODIFY-Anforderung: Die Methode finalize wird erfolgreich verarbeitet und die Methode check_before_save nicht. Die Daten werden nicht gespeichert.
  3. Dritte MODIFY-Anforderung: Die Methoden finalize und check_before_save werden erfolgreich verarbeitet. Folglich wird die Methode save gerufen und die Daten auf der Datenbanktabelle gesichert.

Die Ausgabe zeigt drei Abschnitte für jede MODIFY-Anforderung:

  • Eine Protokolltabelle mit den gerufenen Saver-Methoden.
  • Eine Protokolltabelle mit zurückgegebene Information für failed und reported.
  • Eine Tabelle mit den Datenbanktabelleneinträge nach den CREATE-Operationen. Die Ausgabe der ersten beiden MODIFY-Anweisungen zeigt die Tabelle nicht, da die CREATE-Operationen absichtlich nicht erfolgreich verarbeitet werden können.





ABAP Short Reference   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6504 Date: 20240523 Time: 153631     sap01-206 ( 90 ms )