[ABAP] Variablen im ABAP-Programmspeicher zwischenspeichern, IMPORT / EXPORT FROM MEMORY ID

Die Objekte sind solange im Zwischenspeicher vorhanden, wie die aktuelle Session aktiv ist.

Beispiel 1 (String)

* Name für Speicherobjekt definieren
CONSTANTS: c_mem_str TYPE char10 VALUE 'STR_TEST1'.

DATA: lv_s TYPE string VALUE 'Test123'.

INITIALIZATION.
* Variable aus dem Zwischenspeicher holen
  IMPORT lv_s FROM MEMORY ID c_mem_str.

START-OF-SELECTION.

  WRITE: / 'Alt:', lv_s.

* Speicherinhalt löschen
  DELETE FROM MEMORY ID c_mem_str.

  lv_s = ''.

* Speicherinhalt importieren
* -> Es werden nur INITIAL-Variablen überschrieben!
  IMPORT lv_s FROM MEMORY ID c_mem_str.

  WRITE: / 'Leer: ', lv_s.

* Variable verändern
  lv_s = sy-uzeit.

* Variable im Zwischenspeicher ablegen
  EXPORT lv_s TO MEMORY ID c_mem_str.

  WRITE: / 'Neu:', lv_s.

Beispiel 2 (interne Tabelle)

* Name für Speicherobjekt definieren
CONSTANTS: c_mem_itab TYPE char10 VALUE 'ITAB_STR'.

DATA: it_strings TYPE STANDARD TABLE OF string WITH DEFAULT KEY.

INITIALIZATION.
* iTab aus dem Zwischenspeicher holen
  IMPORT it_strings FROM MEMORY ID c_mem_itab.

START-OF-SELECTION.

  WRITE: / 'Alt:'.

  LOOP AT it_strings ASSIGNING FIELD-SYMBOL(<fs_line1>).
    WRITE: / <fs_line1>.
  ENDLOOP.

* Speicherinhalt löschen
  DELETE FROM MEMORY ID c_mem_itab.

  CLEAR: it_strings.

* Speicherinhalt importieren
* -> Es werden nur INITIAL-Variablen überschrieben!
  IMPORT it_strings FROM MEMORY ID c_mem_itab.

  ULINE.
  WRITE: / 'Leer:'.

  LOOP AT it_strings ASSIGNING FIELD-SYMBOL(<fs_line2>).
    WRITE: / <fs_line2>.
  ENDLOOP.

* itab mit neuen Daten füllen
  DATA: lv_tsl TYPE timestampl.
  GET TIME STAMP FIELD lv_tsl.

  it_strings = VALUE #( ( |{ lv_tsl TIMESTAMP = USER }| ) ( |{ lv_tsl TIMESTAMP = USER }| ) ( |{ lv_tsl TIMESTAMP = USER }| ) ).

* iTab im Zwischenspeicher ablegen
  EXPORT it_strings TO MEMORY ID c_mem_itab.

  ULINE.
  WRITE: / 'Neu:'.

  LOOP AT it_strings ASSIGNING FIELD-SYMBOL(<fs_line3>).
    WRITE: / <fs_line3>.
  ENDLOOP.

Weiterführende Links: Link und Link