DATA命令 / CONSTANTS命令 / PARAMETERS命令 / SELECT-OPTIONS命令などで利用する初期値定義オプション(VALUE / DEFAULT オプション)について解説します。
VALUE / DEFAULT どっちを利用すれば良いんだっけ?と迷ってしまう方が結構いらっしゃるのでこのページで整理しておきます。
ABAPerであれば知らないと恥ずかしい超・重要知識。是非最後までご覧ください。
初期値定義の目的
ABAPでは変数 / 画面項目などの定義を行う場合に初期値を定義することが可能です。何も指定しない場合、変数はからっぽの状態で誕生します。
ですが、例えばカウント用の変数であれば中身は空にしておくのではなく初期値を「1」として定義しておいたほうが便利です。また、日付を入れるような画面項目があれば今日の日付を初期値として定義してあげるのが親切でしょう。
このような場合に、VALUE / DEFAULT オプションを利用し初期値を定義してあげることが可能です。
変数(variable)とは、データを扱うメモリ領域のことを指します。メモリ領域というと言葉が難しくなるため、変数はデータを保管しておく「箱」のようなものです。
詳しくは以下のページをご覧ください。
VALUEオプション
VALUEオプションを利用する命令は、DATA命令・CONSTANTS命令です。
DATA命令の場合
DATA命令で定義する変数には、VALUEオプションで初期値を指定できます。
DATA(変数名)TYPE(データ型)VALUE(初期値).
DATA命令は変数を定義する命令であるため、初期値の付与は任意です。そのため、VALUEオプションを付けなくても構文エラーは発生しません。(その場合には、空の変数が定義されます。)
DATA: LV_CNT TYPE I VALUE 1, LV_TMP TYPE I VALUE 50, LV_TEST(4) TYPE C VALUE 'TEST'.
初期値を定義した変数をCLEARした場合変数は「空」になります。VALUEオプションで定義した値になるわけではないため注意が必要です。
CONSTANTS命令の場合
CONSTANTS(変数名)TYPE(データ型)VALUE(初期値).
CONSTANTS命令の場合は、VALUEオプションが必須です。
CONSTANTS: GV_CSV(4) TYPE C VALUE '.csv', GV_TEX(4) TYPE C VALUE '.txt', GV_SLASH(1) TYPE C VALUE '/', GV_PATH(1) TYPE C VALUE '\'.
DEFAULTオプション
画面定義に関連するPARAMETERS命令 / SELECT-OPTIONS命令の場合に利用するのがDEFAULTオプションです。
PARAMETERS命令の場合
PARAMETERS(項目名)TYPE(データ型)DEFAULT(初期値).
PARAMETERS GP_BUKRS TYPE BKPF-BUKRS DEFAULT '1000'.
この場合、項目「GP_BUKRS」の初期値は「1000」となります。プログラムを実行し選択画面が表示されたとき当該項目には「1000」が表示された状態になります。
PARAMETERS GP_1 RADIOBUTTON GROUP GRP1 DEFAULT 'X'.
上記のようにコーディングすることで、ラジオボタンがチェックされた状態になります。
SELECT-OPTIONS命令の場合
SELECT-OPTIONS(項目名)FOR(データオブジェクト)DEFAULT(初期値)[TO 最大値].
SELECT-OPTIONS命令はFROM~TOの指定が可能な項目を生成する命令のため、初期値を指定する場合FROM項目の値なのか、TO項目の値なのかを識別する必要があります。
SELECT-OPTIONS: GS_BURKS1 FOR BKPF-BUKRS DEFAULT '1000', GS_BURKS2 FOR BKPF-BUKRS DEFAULT '1000' TO '9000'.
2行目の例だと、FROMに「1000」が、TOに「9000」がセットされた状態になります。
SAP / ABAPを1から学習したい方は
初めてABAPを勉強するのは結構難しいですよね。
でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。
ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?
読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!