コンテンツフレーム起動

フィールドシンボルのデータ領域 文書を SAP ライブラリストラクチャに組み込む

ABAP プログラムのデータ領域のデータオブジェクトだけをフィールドシンボルに割り当てることができます。データオブジェクトがフィールドシンボルに割り当てられると、フィールドシンボルがデータ領域外のメモリをアドレスすることでデータが消失しないように、実行時にチェックが行われます。

ABAP プログラムのデータ領域は、次のとおりです。

        内部テーブルのテーブルメモリ領域。この記憶域のサイズは、テーブル行の数によって異なります。テーブル行の数は固定されておらず、実行時に動的に決定されます。

        他のデータオブジェクトの DATA 記憶域。この記憶域のサイズは、データ宣言で固定されます。

フィールドシンボルは、この領域の外のメモリを指すことはできません。データオブジェクトをフィールドシンボルに割り当て、領域外のアドレスを指すと、実行時エラーが発生します。

内部テーブルの制御ブロックなど一部のシステム情報も、DATA 記憶域に保存されます。したがって、実行時にはチェックが行われますが、項目の一部が誤って上書きされ、エラーが起こる可能性があります ( テーブルヘッダが壊れるなど)

 例

PROGRAM DEMO.

DATA: TEXT1(10), TEXT2(10), TEXT3(5).

FIELD-SYMBOLS <FS>.

DO 100 TIMES.
  ASSIGN TEXT1+SY-INDEX(1) TO <FS>.
ENDDO.

DEMO 開始後、実行時エラーが発生します。ショートダンプメッセージの最初は、以下のようになります。

このグラフィックは添付のテキストに説明されています

DATA メモリ領域は、25 バイト以上の幅があります ( メモリ内のデータ領域を整列することで拡張可能) 。ループパスの 1 つで、プログラムはこの領域外のアドレスにアクセスしようとします。強制終了メッセージには、項目 SY-INDEX の内容も含まれます。この内容は、そのときによって異なります。24 番目のループパスまでは、エラーは発生しません。ASSIGN 命令の TEXT1 TEXT2 を交換すると、エラーが 10 個前のループパスで発生します。

 

 

 

 

 

 

コンテンツフレーム終了