コンテンツフレーム起動

内部テーブルの初期化 文書を SAP ライブラリストラクチャに組み込む

初期のメモリ要件

すべてのデータオブジェクトと同様に、内部テーブルも

CLEAR <itab>.

命令で初期化することができます。この命令によって、内部テーブルは宣言された直後の状態に戻されます。つまり、テーブルは行が含まれていない状態になります。ただし、すでにテーブルに占有されているメモリは、その領域をクリアするまでテーブルに割り当てられたままになります。

ヘッダ行のある内部テーブルを使用している場合は、ヘッダ行とテーブル本体の名前は同じであるということに注意してください。比較でテーブル本体をアドレス指定する場合は、以下のようにテーブル名の後ろに 2 つの角括弧 ([ ]) を記述してください。

CLEAR <itab>[].

テーブル自体が初期化されたことを確認するには、

REFRESH <itab>.

命令を使用します。この命令は、常にテーブル本体に適用されます。CLEAR 命令を使用した場合と同様に、テーブルを初期化する前にそのテーブルによって使用されていたメモリは割り当てられたままになります。メモリスペースを解放するには、以下の命令を使用します。

FREE <itab>.

FREE を使用すると、最初に REFRESH 命令または CLEAR 命令を使用しなくても、内部テーブルを初期化して、メモリスペースを解放することができます。REFRESH と同様に、FREE では、テーブル作業領域ではなくテーブル本体が処理されます。FREE 命令のあとに、内部テーブルを再びアドレス指定することができます。テーブルヘッダに必要な量のメモリは占有されたままです ( 現在は 256 バイト) 。テーブルに再度データを書き込むときは、行に新しいメモリスペースが割り当てられます。

 例

DATA: BEGIN OF LINE,
         COL1,
         COL2,
      END OF LINE.

DATA ITAB LIKE TABLE OF LINE.

LINE-COL1 = 'A'.LINE-COL2 = 'B'.

APPEND LINE TO ITAB.

REFRESH ITAB.

IF ITAB IS INITIAL.
  WRITE 'ITAB is empty'.
  FREE ITAB.
ENDIF.

出力は以下のようになります。

ITAB is empty.

このプログラムでは、内部テーブル ITAB にデータが書き込まれたあと、REFRESH によってテーブルが初期化されます。IF 命令では、ITAB IS INITIAL 論理式を使用して、ITAB が空かどうかが調べられます。ITAB が空の場合は、メモリが解放されます。

 

 

 

 

 

 

コンテンツフレーム終了