Ansicht
Dokumentation

ABENBDL_SAVING - BDL SAVING

ABENBDL_SAVING - BDL SAVING

PERFORM Short Reference   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Sicherungsoptionen

... ${with additional save $[and cleanup$]$[with full data$]$}
  $| ${with unmanaged save $[and cleanup$]$[with full data$]$} ...


Varianten:

1. ... with additional save $[and cleanup$]$[with full data$]

2. ... with unmanaged save $[and cleanup$]$[with full data$]

Zusätze:

1. ... and cleanup

2. ... with full data

Wirkung

Die in diesem Abschnitt beschriebenen Syntaxzusätze stehen nur in einem verwalteten RAP-BO zur Verfügung.

Mit den Zusätzen with additional save und with unmanaged save kann die Standardsicherungssequenz in einem verwalteten RAP-BO erweitert oder ersetzt werden. Das RAP-Framework führt eine verwaltete Sicherung standardmäßig durch. Mit einer Zusatzsicherung kann eine verwaltete Sicherung um Schritte erweitert werden. In einer nicht verwalteten Sicherung wird das Standardverhalten verhindert und es wird die Implementierung einer eigenen Sicherungsstrategie ermöglicht. Bei beiden Zusätzen ist eine Neuimplementierung der save_modified-Methode der RAP-Saver-Klasse im ABAP-Behavior-Pool erforderlich.

Falls einer der Zusätze with additional save oder with unmanaged save angegeben wird, werden nur die Werte von Schlüsselfeldern und geänderten Feldern an die save_modified-Methode der RAP-Saver-Klasse übergeben. Mit dem Zusatz with full data können die vollständigen Instanzdaten, nämlich die Werte aller Felder, die zur Komponentengruppe %data gehören, an die save_modified-Methode übergeben. Weitere Details sind unten beschrieben.

Es gibt zwei Notationsoptionen:

  • Direkt nach dem Schlüsselwort managed im BDEF-Kopf. In diesem Fall ist die zusätzliche Sicherung oder nicht verwaltete Sicherung für alle Entitäten des Business-Objekts eingeschaltet.
Beispiel: managed with additional save implementation in class ...;

Beispiel

Im folgenden Beispiel wird eine verwaltete BDEF gezeigt, die eine zusätzliche Sicherung im BDEF-Kopf definiert.

Im ABAP-Behavior-Pool verfolgt die Methode save_modified Datenänderungen in einer Protokolltabelle. Die vollständige Implementierung ist in BP_DEMO_MANAGED_ADDITIONAL_SAVCCIMP enthalten.

Das ABAP-Programm DEMO_RAP_MANAGED_ADD_SAVE verwendet EML, um auf das RAP-Business-Objekt zuzugreifen: Hiermit werden anlegende, aktualisierende und löschende Operationen durchgeführt. Die Änderungen werden in internen Protokolltabellen gesichert und verfolgt.

Das Beispiel oben wird im Abschnitt ABAP EML - TYPE REQUEST FOR in einem verwalteten BO mit Zusatzsicherung angezeigt und im Detail erläutert.



Variante 1

... with additional save


Wirkung

Hiermit kann man zusätzliche Funktionalität in der Standardsicherungssequenz aufrufen, beispielsweise Änderungsdokumente und ein Anwendungsprotokoll.

Eine Implementierung in der lokalen Sicherungsklasse ist notwendig.

Entwicklungsleitfaden für das ABAP-RESTful-Anwendungsprogrammiermodell, Abschnitt Additional Save

Variante 2

... with unmanaged save


Wirkung

Hiermit wird die Sicherung von Änderungen durch die verwaltete Laufzeit des BO verhindert und erlaubt stattdessen die Implementierung einer Sicherungsstrategie. Bei einer nicht verwalteten Sicherung darf keine persistente Tabelle angegeben werden.

Eine Implementierung in der lokalen Sicherungsklasse ist notwendig.

Ein Beispiel eines verwalteten RAP-BOs mit nicht verwalteten Sicherung ist im Abschnitt ABAP EML - TYPE REQUEST FOR in einem verwalteten RAP-BO mit nicht verwalteter Sicherung enthalten.

Entwicklungsleitfaden für das ABAP-RESTful-Anwendungsprogrammiermodell, Abschnitt Unmanaged Save

Zusatz 1

... and cleanup

Wirkung

Bei Angabe der RAP-Saver-Methode cleanup, muss sie neu definiert werden.

Zusatz 2

... with full data

Wirkung

Falls angegeben werden die vollständigen Instanzdaten an die save_modified-Methode der RAP-Saver-Klasse im ABAP-Behavior-Pool übergeben. Anders beschrieben werden alle Felder, die zur Komponentengruppe %data gehören, beim Aufruf der save_modified-Methode mit Werten gefüllt.

Hinweise

  • Die Felder der Komponentengruppe %control sind davon nicht betroffen. Es werden nur die geänderten Felder von %control gekennzeichnet.
  • In Szenarien, die alle Felder und nicht nur geänderte Felder für die weitere Verarbeitung benötigt werden, kann der Zusatz with full data verwendet werden. Dadurch entfällt eine zusätzliche READ-Operation für den RAP-BO-Verwender.

Beispiel

Im folgenden Beispiel wird eine verwaltete BDEF gezeigt, die eine zusätzliche Sicherung mit with full data im BDEF-Kopf definiert.

Im ABAP-Behavior-Pool verfolgt die Methode save_modified Datenänderungen in einer Protokolltabelle. Die vollständige Implementierung ist in BP_DEMO_MANAGED_ADDITIONAL_SAVCCIMP enthalten.

Das ABAP-Programm DEMO_RAP_MANAGED_FULL_DATA verwendet EML, um auf das RAP-Business-Objekt zuzugreifen: Es werden zuerst zwei Entitätsinstanzen erzeugt und alle Entitätsfelder mit Werten gefüllt. Danach werden beide Entitätsinstanzen aktualisiert und die Werte von zwei Feldern geändert, nämlich field1 und field2. Ohne den Zusatz with full data werden nur die Werte der geänderten Felder in der save_modified-Methode berücksichtigt. Die nicht geänderten Felder behalten ihren initialen Wert. Da dieses Beispiel aber with full data verwendet, werden die Werte der Felder field3 und field4 berücksichtigt.

Quelltextausschnitt: Es soll beachtet werden, dass field3 und field4 nicht aktualisiert werden.

Variable lt_update im ABAP-Behavior-Pool bei Angabe des Zusatzes with full data: es werden alle Felder mit ihren Werte aufgelistet, auch Felder, die in der aktualisierenden Operation nicht enthalten sind.

IMAGE @@with_full_data.png@@567@@64@@

Variable lt_update im ABAP-Behavior-Pool bei Nichtangabe des Zusatzes with full data: nicht aktualisierte Felder werden mit initialen Werten gefüllt.

IMAGE @@without_full_data.png@@520@@66@@

In diesem Beispiel werden nicht aktualisierte Felder mit initialen Werten gefüllt. Es muss beachtet werden, dass dies nicht immer der Fall ist. Nicht aktualisierte Felder enthalten keine konsistenten Werte und die Werte müssen daher nicht ausgewertet werden.






SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 12367 Date: 20240523 Time: 160205     sap01-206 ( 166 ms )