このトピックでは、ABAP言語の定数と変数を取り上げて説明します。
定数
ABAP定数は、CONSTANTS 命令を使用して宣言します。
CONSTANTS <name> TYPE <type> VALUE [<value> | IS INITIAL]
CONSTANS 命令の構文は、以下の例外を除いて DATA 命令とまったく同じです。
- CONSTANTS命令では VALUE オプションを使用しなければなりません。
VALUE オプションで指定した開始値をプログラムの実行中に変更することはできません。 - XSTRINGS 、参照、内部テーブル、または内部テーブルを含む構造に対して定数を定義することはできません。
変数
ABAP定数は、DATA命令を使用して宣言します。
DATAS <name> TYPE <type> VALUE [<value> | IS INITIAL]
完全に定義されたデータ型<type>の他に、もう1つのデータオブジェクト<obj>と同じデータ型の変数<f>を宣言することもできます。
スコープと生存期間
データ型は定義される場所により、スコープが変わります。
データ型 | 変数 | 定数 | ||
---|---|---|---|---|
スコープ | グローバル(システムレベル) | ○※1 | × | × |
グローバル(プログラムレベル) | ○※2 | ○※2 | ○※2 | |
ローカル | ○※3 | ○※3 | ○※3 | |
生存期間 | 自動記憶域期間 | - | ○※4 | - |
静的記憶域期間 | - | ○※5 | - |
- ※1
ABAPディクショナリーで定義されているデータ型は、全てのABAPプログラムで参照することが可能です。 - ※2
ABAPプログラムの「グローバルデータ宣言部分」で定義されているデータ型、変数及び定数は、当プログラムの中でどこでも参照することができます。 - ※3
ABAPプログラムのプロシージャの中で定義されているデータ型、変数及び定数は、当プロシージャの内部でしか参照できません。 - ※4
プロシージャの中で定義された非statics変数の生存期間はプロシージャのの実行が完了するまでです。 - ※5
ABAPプログラムの「グローバルデータ宣言部分」で定義されている変数や、プロシージャの中で定義されたstatics変数の生存期間は、プログラムの実行開始から終了までです。