Ansicht
Dokumentation

ABENBDL_DRAFT_TABLE - BDL DRAFT TABLE

ABENBDL_DRAFT_TABLE - BDL DRAFT TABLE

General Material Data   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- draft table

...
draft table DraftTableName
...


Wirkung

Dieser Zusatz ist nur für entwurfsfähige RAP-BOs relevant und sogar auch obligatorisch. Hiermit wird die zum Speichern von Entwurfsdaten verwendete Entwurfsdatenbanktabelle definiert. Die Entwurfstabelle wird aus der entsprechenden CDS-Entität abgeleitet. Zusätzlich enthält sie einige technische Informationen, die transaktionalen RAP-Engine muss den Entwurf behandeln. Die technische Informationen werden über das Entwurfsadministrations-Include hinzugefügt.

Entwurfstabelle:

define table DraftTable {
  key client        : abap.clnt not null;
    ...
    "%admin"        : include sych_bdl_draft_admin_inc;}

Das Entwurfsadministrations-Include ist die vordefinierte DDIC-Include-Struktur SYCH_BDL_DRAFT_ADMIN_INC.

In einem Projektions-Business-Objekt wird die Entwurfstabelle automatisch geerbt und muss nicht explizit definiert werden. Weitere Informationen finden Sie unter CDS BDL - Verwendung, Projektions-BDEF.

Entwicklungsleitfaden für das ABAP-RESTful-Anwendungsprogrammiermodell, Abschnitt Draft Database Table.

Hinweise

  • Eine Entwurfstabelle ist eine normale DDIC Datenbanktabelle und darauf kann wie eine solche Tabelle zugegriffen werden. Der Zugriff über , Native SQL and AMDP ist technische möglich, wird aber nicht empfohlen. Es wird empfohlen, dass auf eine Entwurfstabelle nur über das RAP-Framework, beispielsweise mit EML, zugegriffen wird, damit die Metadaten des Entwurfs automatisch aktualisiert werden.
  • Die Entwurfsdatenbanktabelle kann über eine schnelle Korrektur in der Verhaltensdefinition automatisch generiert werden, die direkt nach der Aktivierung der RAP-Entwurfsbehandlung für das Business-Objekt angeboten wird.
  • Wenn Sie die späte Nummernvergabe für ein entwurfsfähiges RAP-BO nutzen, ist es obligatorisch, dass die Entwufstabelle über ein zusätzliches Schlüsselfeld DRAFTUUID des Datentyps raw(16) verfügt.

Beispiel

Im folgenden Beispiel wird demonstriert, warum der Zugriff auf Entwurfsdatenbanktabellen über nicht passend ist.

Es wird eine auf der CDS-Wurzel-View-Entität DEMO_RAP_MANAGED_DRAFT_1 basierte verwaltete BDEF gezeigt. Die BDEF ist entwurfsfähig und definiert die persistente Datenbanktabelle DEMO_DBTAB_ROOT und die Entwurfsdatenbanktabelle DEMO_DBTAB_DRAFT.

Das Programm DEMO_RAP_MANAGED_DRAFT_1 greift über EML auf das Business-Objekt zu. Er enthält zweimal den gleichen Quelltextblock: zuerst wird die Entwurfsdatenbanktabelle über die -Anweisung DELETE FROM geleert. Danach wird eine neue Entwurfsinstanz mit dem Schlüsselwert '3' über die EML-Anweisung MODIFY ENTITIES angelegt und diese Entitätsinstanz auf die Entwurfsdatenbanktabelle festgeschrieben.

Quelltextausschnitt - dieser Quelltextblock wird zweimal wiederholt:

Bei der ersten Wiederholung wird dieser Eintrag auf die Entwurfsdatenbanktabelle geschrieben und als eine Bildschirmausgabe angezeigt. Bei der zweiten Wiederholung schlägt das Anlegen der neuen Entwurfsinstanz aber fehl und die Entwurfsdatenbanktabelle bleibt leer. Dies liegt daran, dass die Entwurfsdatenbanktabelle über nicht geleert werden kann. Sie enthält Metadaten, die über nicht gelöscht werden kann und der Schlüssel wird trotz Leerung der Entwurfsdatenbanktabelle als Duplikat betrachtet.

IMAGE @@ABDOC_draft_table.png@@632@@256@@

Hiermit wird demonstriert, warum auf die Entwurfsdatenbanktabelle nur über das RAP-Framework zugegriffen werden kann, entweder über die EML-Anweisung DELETE oder die Entwurfsaktion Discard damit alle Einträge aus der Entwurfsdatenbanktabelle entfernt werden.

Mit dem Programm DEMO_RAP_MANAGED_DRAFT_2 wird die korrekte Leerung einer Entwurfsdatenbanktabelle demonstriert:

  • Hiermit wird eine neue Entwurfsinstanz mit dem Schlüsselwert '4' angelegt und mit der Entwurfsaktion Discard entfernt.
  • Danach wird die gleiche Instanz erfolgreich wieder angelegt.
  • Die Instanz wird über die EML-Anweisung DELETE FROM nochmal gelöscht und dann wieder angelegt.

Ergebnis: das Anlegen einer neuen Entwurfsinstanz mit dem gleichen Schlüsselwert funktioniert dreimal hintereinander, da mit Discard und DELETE FROM sowohl die Einträge der Entwurfstabelle als auch die Metadaten entfernt werden.

IMAGE @@ABDOC_DRAFT_TABLE.jpg@@637@@341@@






Addresses (Business Address Services)   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7517 Date: 20240523 Time: 180437     sap01-206 ( 100 ms )