!--a11y-->
ABAP
メモリから ABAP プログラム内にデータオブジェクトを読み込む場合は、以下の命令を使用します。構文
IMPORT <f 1> [TO <g 1>] <f 2> [TO <g 2>] ... FROM MEMORY ID <
キー >.この命令によって、一覧内に指定したデータオブジェクトが
ABAP メモリ内のクラスタから読み込まれます。オプション TO <g i> を省略すると、データオブジェクト <f i> は、メモリからプログラム内の同一名のデータオブジェクトに代入されます。このオプションを使用すると、メモリ内のデータオブジェクト <f i> は、項目 <g i> に書き込まれます。 32 文字までの ID < キー > によってメモリ内のデータを特定します。特定の
ID < キー > のもとに格納したオブジェクトのすべてを読み込む必要はありません。その代わり、名称 <f i> のなかから選択することができます。メモリのなかに指定した ID < キー > のもとにオブジェクトがない場合は、 SY-SUBRC が4にセットされます。ただし、その ID を持ったデータクラスタがメモリ内に存在していれば、データオブジェクト <f i> の有無に関わらず、 SY-SUBRC は常に0です。データオブジェクト <f i> がクラスタ内にない場合、目標項目は変更されません。この命令では、メモリ内のオブジェクトの構造とこれが書き込まれる対象の構造が一致しているかどうかについてはチェックしません。データはビット単位で転送されるので、構造が一致していないと、不整合が生じる可能性があります。

PROGRAM SAPMZTS1.
DATA TEXT1(10) VALUE '
エクスポート '.DATA ITAB LIKE SBOOK OCCURS 10 WITH HEADER LINE.
DO 5 TIMES.
ITAB-BOOKID = 100 + SY-INDEX.
APPEND ITAB.
ENDDO.
EXPORT TEXT1
TEXT2 FROM '
EXPORT ITAB
TO MEMORY ID '
SUBMIT SAPMZTS2 AND RETURN.
SUBMIT SAPMZTS3.
このプログラムの最初の部分は、
ABAP メモリへのデータオブジェクトの格納の例と一致しています。この例では、 SUBMIT 命令でプログラム SAPMZTS1 と SAPMZTS2 も呼び出しています。 SUBMIT の後で指定したプログラムを生成、更新するには、 ABAP エディタに入っているそれらのプログラム名をダブルクリックして行います。 SUBMIT に関する追加情報が必要な場合は、 実行可能プログラム(レポート)の呼出を参照してください。SAPMZTS2
の例:PROGRAM SAPMZTS2.
DATA: TEXT1(10),
TEXT3 LIKE TEXT1 VALUE '
IMPORT TEXT3 FROM MEMORY ID '
テキスト '.IMPORT TEXT2 TO TEXT1 FROM MEMORY ID '
テキスト '.SAPMZTS3
の例:PROGRAM SAPMZTS3.
DATA JTAB LIKE SBOOK OCCURS 10 WITH HEADER LINE.
IMPORT ITAB TO JTAB FROM MEMORY ID '
テーブル '.LOOP AT JTAB.
WRITE / JTAB-BOOKID.
ENDLOOP.
出力は連続した2つの画面上に以下のように表示されます。

そして

SAPMZTS2
は存在しないデータオブジェクト TEXT3 をデータクラスタ“テキスト”から読み込もうとしています。したがって、目標項目 TEXT3 は変更されません。既存のデータオブジェクト TEXT2 は TEXT1 の後ろに入ります。どちらの場合でも、クラスタ“ text ”にはデータが含まれているので、 SY-SUBRC は0になります。SAPMZTS3
は、内部テーブル ITAB をクラスタ“ table ”から内部テーブルの JTAB に書き込みます。どちらのテーブルも構造は同じです。つまり、 ABAP ディクショナリテーブルの SBOOK と一致しています。