Datenobjekte aus dem Memory lesen Dokument im Navigationsbaum lokalisieren

Um Datenobjekte aus dem ABAP-Memory in ein ABAP-Programm zu lesen, verwenden Sie die folgende Anweisung:

Syntax

IMPORT <f1> [TO <g 1>] <f 2> [TO <g 2>] ... FROM MEMORY ID <key>.

Diese Anweisung liest die in der Liste angegebenen Datenobjekte aus einem Cluster im Memory. Ohne Verwendung der Option TO <g i > wird das Datenobjekt <f i > aus dem Memory dem Datenobjekt gleichen Namens im Programm zugeordnet. Verwenden Sie diese Option, wird das Datenobjekt <f i > des Memorys in das Feld <g i > geschrieben. Mit der Bezeichnung <key>, die maximal 32 Stellen haben kann, identifizieren Sie die Daten im Memory.

Sie müssen nicht alle Objekte lesen, die unter einer bestimmten Bezeichnung <key> abgespeichert sind, sondern können über die Namen <f i > eine Auswahl treffen. Enthält das Memory unter der angegebenen Bezeichnung <key> keine Objekte, wird SY-SUBRC auf 4 gesetzt. Existiert dagegen ein Daten-Cluster mit dieser Bezeichnung im Memory, so ist SY-SUBRC immer 0, unabhängig davon, ob das bezeichnete Datenobjekt <f i > auch vorhanden ist. Liegt ein Datenobjekt <f i > nicht im Cluster vor, bleibt das Zielfeld unverändert.

Das System überprüft bei dieser Anweisung nicht ob die Struktur der Objekte im Memory mit denen, in die sie geschrieben werden sollen, übereinstimmt. Die Daten werden Bit füt Bit transportiert. Bei nichtverträglichen Strukturen kann es daher zu Schiefständen kommen.

Beispiel

REPORT demo_data_ext_cluster_import.

DATA text1(10) TYPE c VALUE 'Exporting'.

DATA: itab TYPE TABLE OF sbook,
      wa_itab LIKE LINE OF itab.

DO 5 TIMES.
  wa_itab-bookid = 100 + sy-index.
  APPEND wa_itab TO itab.
ENDDO.

EXPORT text1
       text2 = 'Literal'
  TO MEMORY ID 'text'.

EXPORT itab
  TO MEMORY ID 'table'.

SUBMIT demo_data_ext_cluster_import2 AND RETURN.

SUBMIT demo_data_ext_cluster_import3.

Der erste Teil dieses Programms entspricht dem Beispiel unter Datenobjekte im Memory speichern. Im vorliegenden Beispiel werden zusätzlich die beiden Programme DEMO_DATA_EXT_CLUSTER_IMPORT2 und DEMO_DATA_EXT_CLUSTER_IMPORT3 über SUBMIT aufgerufen. Sie können die Programme hinter SUBMIT durch Doppelklick auf ihre Namen aus dem ABAP-Editor heraus erzeugen und pflegen. Mehr Informationen zu SUBMIT finden Sie unter Ausführbare Programme (Reports) aufrufen.

Beispiel für DEMO_DATA_EXT_CLUSTER_IMPORT2:

REPORT demo_data_ext_cluster_import2.

DATA: text1(10) TYPE c,
      text3 LIKE text1 VALUE 'Initial'.

IMPORT text3 FROM MEMORY ID 'text'.
WRITE: / sy-subrc, text3.

IMPORT text2 TO text1 FROM MEMORY ID 'text'.
WRITE: / sy-subrc, text1.

Beispiel für DEMO_DATA_EXT_CLUSTER_IMPORT3:

REPORT demo_data_ext_cluster_import3.

DATA: jtab TYPE TABLE OF sbook,
      wa_jtab LIKE LINE OF jtab.

IMPORT itab TO jtab FROM MEMORY ID 'table'.

LOOP AT jtab INTO wa_jtab.
  WRITE / wa_jtab-bookid.
ENDLOOP.

Die Ausgabe erfolgt auf zwei aufeinanderfolgenden Bildern und sieht so aus:

Diese Grafik wird im zugehörigen Text erklärt

und

Diese Grafik wird im zugehörigen Text erklärt

In DEMO_DATA_EXT_CLUSTER_IMPORT2 wird versucht ein Datenobjekt TEXT3 aus dem Daten-Cluster "text" zu lesen, das nicht vorhanden ist. Deshalb bleibt das Zielfeld TEXT3 unverändert. Das vorhandene Datenobjekt TEXT2 wird nach TEXT1 gestellt. In beiden Fällen ist SY-SUBRC gleich 0, da der Cluster "text" Daten enthält.

In DEMO_DATA_EXT_CLUSTER_IMPORT3 wird die interne Tabelle ITAB aus dem Cluster "table" in die interne Tabelle JTAB geschrieben. Beide Tabellen haben die gleiche Struktur, nämlich die der im ABAP-Dictionary abgelegten Tabelle SBOOK.

Ende des Inhaltsbereichs