本記事では、DATA命令で定義した変数に初期値を設定する方法を説明しています。
また、PARAMETERS命令などDATA命令以外で定義する変数に対する設定方法も本記事で解説していますので、合わせてお読みください。本題に入る前に、まずDATA命令やABAPデータ型ついて理解が曖昧な方は以下のページからお読みください。
では、説明を始めます。
変数への初期値設定とは?
DATA命令では、変数を入れる「箱」を定義すると説明しました。
このDATA命令で定義した変数には、処理の途中で様々な値を設定することが可能で、SELECT文で取得したデータを格納する、システム日付を格納する、などをプログラムの処理で実行しています。
が、改めて説明を加えると、DATA命令で変数を定義したタイミングでは「箱」の中には何も入っていない状況です。
ので、基本的には、初期値は設定しなくても処理の実装で何とかすることは可能ですが、例えばユーザが選択画面を利用する際、予め設定した値を入れておきたい場合になどは、「箱」を定義した時点で変数を入れて置ければ大変便利です。
変数の初期値設定の方法は命令ごとに異なりますが、基本的に二つのオプションを覚えれば問題ありません。以下ではその二つのオプションを説明します。
VALUE
構文ルール:VALUEオプション
DATA :LW_COUNTTYPE pVALUE 1,
LW_DATETYPE dVALUE '20200724'.
VALUEオプションの説明
DATE命令の後ろに VALUE(初期値) という形でオプションを付与すると(初期値)に入れた値を格納することが可能です。
VALUEオプションを利用するのは、DATA命令・CONSTANTS命令が代表例です。
※CONSTANTS命令の場合は、VALUEオプションの利用が必須です。
PAREMATERS命令や、SELECT-OPTIONS命令では利用できません。VALUE自体は、他の形で記述する場合もありますが、初期値を設定する場合においては、DATA命令の場合のみ利用できます。
DEFAULT
サンプルコード:DEFAULTオプション
PARAMETERS:p_countTYPE iDEFAULT 100,
p_dateTYPEcDEFAULT '20200724'.
DEFAULTオプションの説明
DEFAULTオプションを利用する命令は、PARAMETERS、SELECT-OPTIONSです。
考え方は、DATA命令の場合と同様、命令の後ろにDEFAULTオプションを利用することで初期値を格納することができます。
VALUE,DEFAULTオプションを利用するときは
留意点として挙げるまでもないことではありますが、必ずTYPEで指定したデータ型に合致する初期値を設定しましょう。
構文エラーで引っかかることはありませんが、プログラムを実行したタイミングでショートダンプしてしまいます。