Ansicht
Dokumentation
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 R3upDiese Dokumentation steht unter dem Copyright der SAP AG.
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
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.
- Erste MODIFY-Anforderung: Die Methode finalize wird nicht erfolgreich verarbeitet und die Daten werden nicht gesichert.
- Zweite MODIFY-Anforderung: Die Methode finalize wird erfolgreich verarbeitet und die Methode check_before_save nicht. Die Daten werden nicht gespeichert.
- 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 )