Datenobjekte in Cluster-Datenbanken speichern
Um Datenobjekte aus einem ABAP-Programm in Cluster-Datenbanken zu speichern, verwenden Sie die folgende Anweisung:
Syntax
EXPORT <f1> [FROM <g
1>] <f
2> [FROM <g
2>] ...
TO DATABASE <dbtab>(<ar>) [CLIENT <cli>] ID <key>.
Diese Anweisung legt die in der Liste angegebenen Datenobjekte als Cluster in der Cluster-Datenbank <dbtab> ab. Sie müssen <dbtab> mit der TABLES-Anweisung deklarieren. Ohne Verwendung der Option FROM <g
i > wird ein Datenobjekt <f i > unter seinem Namen abgespeichert. Verwenden Sie diese Option, wird ein Datenobjekt <g i > unter dem Namen <f i > abgespeichert.Mit <ar>, geben Sie die zweistellige Bereichskennung für das abzuspeichernde Cluster in der Datenbank an.
(siehe Punkt 2 unter
Mit der Bezeichnung <key>, deren maximale Länge von der Länge des Bezeichnerfelds in <dbtab> abhängt identifizieren Sie die Daten in der Datenbank.
(siehe Punkt 3 unter
Mit der Option CLIENT <cli> können Sie bei mandantenabhängigen Cluster-Datenbanken die automatische Mandatenbehandlung abschalten und den Mandanten selbst angeben. Diese Option muß direkt hinter dem Namen der Datenbank stehen.
(siehe Punkt 1 unter
Die EXPORT-Anweisung transportiert auch den Inhalt der Benutzerfelder des Tabellenarbeitsbereichs <dbtab> in die Datenbanktabelle. Sie können diese Felder vorher gemäß Ihren Anforderungen füllen.
(siehe Punkt 5 unter
Die EXPORT-Anweisung überschreibt immer vollständig den Inhalt eines eventuell vorhandenen Daten-Clusters im gleichen Bereich <ar>, mit der gleichen Bezeichnung <key> und im gleichen Mandant <cli>.
Bei internen Tabellen mit Kopfzeile kann nur die eigentliche Tabelle, nicht die Kopfzeile abgespeichert werden. Bei der EXPORT-Anweisung wird der Tabellenname als Tabelle interpretiert. Dies ist eine Ausnahme von der allgemeinen Regel, nach der Anweisungen den Tabellennamen normalerweise als Tabellenarbeitsbereich interpretieren (siehe
REPORT demo_data_ext_cluster_export_d.
DATA wa_indx TYPE indx.
DATA: BEGIN OF wa_itab,
col1 TYPE i,
col2 TYPE i,
END OF wa_itab.
DATA itab LIKE TABLE OF wa_itab.
DO 3000 TIMES.
wa_itab-col1 = sy-index.
wa_itab-col2 = sy-index ** 2.
APPEND wa_itab TO itab.
ENDDO.
wa_indx-aedat = sy-datum.
wa_indx-usera = sy-uname.
wa_indx-pgmid = sy-repid.
EXPORT itab TO DATABASE indx(hk) ID 'Table' FROM wa_indx.
WRITE: ' SRTF2',
AT 20 'AEDAT',
AT 35 'USERA',
AT 50 'PGMID'.
ULINE.
SELECT *
FROM indx
INTO wa_indx
WHERE relid = 'HK' AND
srtfd = 'Table'.
WRITE: / wa_indx-srtf2 UNDER 'SRTF2',
wa_indx-aedat UNDER 'AEDAT',
wa_indx-usera UNDER 'USERA',
wa_indx-pgmid UNDER 'PGMID'.
ENDSELECT.
Es wird eine interne Tabelle ITAB mit 3000 Zeilen gefüllt und nach der Zuweisung von Werten zu einigen Benutzerfeldern von INDX wird ITAB nach INDX exportiert.
Da INDX eine relationale Datenbank ist, können die einzelnen Zeilen mit Open SQL-Anweisungen angesprochen werden. Über die SELECT-Anweisung werden die durch EXPORT abgespeicherten Zeilen durch geeignete WHERE-Bedingungen selektiert.
Die Ausgabe einiger Datenbankfelder sieht folgendermaßen aus:
Die Ausgabe zeigt, daß die Benutzerfelder AEDAT, USERA und PGMID durch EXPORT transportiert wurden und daß sich der ITAB enthaltende Daten-Cluster über 6 Zeilen ausdehnt. Wenn Sie die Zahl 3000 in der DO-Anweisung ändern ändert sich die Anzahl der von diesem Daten-Cluster belegten Zeilen.