Ansicht
Dokumentation

ABENDERIVED_TYPES_PRE_TMP_ABEXA - DERIVED TYPES PRE TMP ABEXA

ABENDERIVED_TYPES_PRE_TMP_ABEXA - DERIVED TYPES PRE TMP ABEXA

Vendor Master (General Section)   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Verwendung von %pre/%tmp

Mit diesem Beispiel wird die Verwendung von %pre und %tmp mit einem nicht verwalteten RAP-BO in einem Szenario der späten Nummernvergabe demonstriert.

Beachten Sie, dass dieses Beispiel kein produktives Business-Szenario für die späte Nummernvergabe enthält. Stattdessen soll es Ideen sowohl zur Verwendung von %pre und %tmp während der RAP-Sicherungssequenz liefern als auch zu den Optionen zur Verwendung von %pid und %key beim Referenzieren der RAP-BO-Instanzen während der RAP-Interaktionsphase.

Datenmodell

Das CDS-Datenmodell besteht aus der Wurzelentität DEMO_UMANAGED_ROOT_LATE_NUM3.

Wurzelentität:

Verhaltensdefinition

Die CDS-Verhaltensdefinition DEMO_UMANAGED_ROOT_LATE_NUM3 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_UMANAGED_ROOT_LATE_NU3. Die eigentliche Verhaltensimplementierung findet in lokalen Klassen statt, die im BP_DEMO_UMANAGED_ROOT_LATE_NU3CCIMP des Verhaltens-Pools definiert und implementiert werden.

Die folgende Klasse ist für dieses Beispiel relevant:

  • lcl_buffer: Bildet den transaktionale Puffer, der in diesem Beispiel eine interne Tabelle darstellt. Sie enthält alle Felder der Datenbanktabelle und weitere im Beispiel verwendete Felder, zum Beispiel enthält die interne Tabelle auch die Komponenten %pid und %cid. Weiterhin gibt es Komponenten, die Kennzeichen darstellen, wie changed und final_key_assigned. Das erste gibt an, ob eine Instanz angelegt oder geändert wurde und daher gesichert werden soll. Das zweite gibt an, ob endgültige Schlüssel der Instanz zugeordnet wurde.

Die folgenden Methoden sind im Beispiel relevant:

  • create: Hiermit werden die Instanzen angelegt und in den transaktionalen Puffer geschrieben. In diesem Fall wird sowohl eine %pid als auch ein Vorabwert für %key für die Instanzen angelegt.
  • update: Hiermit werden Instanzen aktualisiert. Auch wenn für das Beispiel nicht relevant umfasst die Methode diverse Fälle in denen der transaktionale Puffer gegen die eingehenden Entitäten geprüft werden, d.h. ob %cid_ref bereitgestellt wird und ob die Aktualisierung auf einer schon persistierten Instanz stattfindet.
  • prep_root_buffer: Hiermit wird der Transaktionspuffer vorbereitet. Bei einer Aktualisierungsanforderung auf persistierten Instanzen werden diese Instanzen aus der Datenbanktabelle in den transaktionalen Puffer gelesen.
  • adjust_numbers: Hiermit werden die endgültigen Schlüssel zugeordnet. In diesem einfachen Beispiel werden den endgültigen Schlüsseln ganze Zahlen zugeordnet, beginnend mit 1. Weiterhin wird sowohl MAPPED LATE, die %pre und %tmp zeigt, gefüllt als auch die REPORTED LATE-Antwortstrukturen. Für Demonstrationszwecke werden die Einträge für beide Strukturen in zwei in der Ausgabe angezeigten internen Tabellen gespeichert.
  • Mit den Methoden save, cleanup und cleanup_finalize werden die Einträge im transaktionalen Puffer in die Datenbanktabelle gesichert oder geleert.

Quelltext

Ausführen

Beschreibung

Zugriff mit ABAP über EML

Es gibt zwei modifizierende -Anforderungen. Mit der ersten Anforderung werden mehrere RAP-BO-Instanzen angelegt und mit der zweiten Anforderung werden die neuen Instanzen aktualisiert.

In der anlegenden Anforderung wird %key nicht angegeben. Mit der create-Methode werden %pid und %key für die Instanzen angelegt.

Mit der Implementierung der Aktualisierungsanforderung werden diverse Optionen zum Referenzieren der Instanzen gezeigt, die noch nicht auf der Datenbank persistiert wurden. Die Referenz erfolgt über %tky, %pid und %key, der einen Vorabschlüsselwert hat.

Die Sicherungssequenz wird durch die Anweisung COMMIT ENTITIES ausgelöst. Mit der Methode adjust_numbers werden die endgültigen Schlüssel den Instanzen zugeordnet In diesem Beispiel wird mit der Methode der Schlüssel einfach um eine ganze Zahl erweitert. Weiterhin werden die oben erwähnten internen Tabellen in der globalen Klasse gefüllt, und hiermit eine mögliche Adressierung von %pre und %tmp demonstriert. Schließlich wird mit der save-Methode die Instanzen auf der Datenbanktabelle gesichert.

In der Ausgabe werden drei Tabellen gezeigt:

  1. In einer Tabelle wird das Ergebnis der RAP-Operationen gezeigt, d.h. die erfolgreich auf der Datenbanktabelle gesicherten Einträge.
  2. In einer Tabelle wird die MAPPED LATE-Information gezeigt. Außer den automatisch generierten %pid-Werten im Feld pid und den endgültigen Schlüsseln %key im Feld key_field zeigen die ersten drei Instanzen einen initialen Wert für das Feld tmp_key, das den Wert für %tmp-key_field darstellt. Für die letzten drei Instanzen enthält tmp_key den innerhalb der anlegenden RAP-Operation angegebenen Wert.
  3. In einer Tabelle wird die REPORTED LATE-Information gezeigt. Die Mapped- und Reported-Angaben wurden beide im Laufe der Methode adjust_numbers gefüllt.





ABAP Short Reference   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8512 Date: 20240523 Time: 183645     sap01-206 ( 130 ms )