【ABAP】VALUE / DEFAULT (初期値定義オプション)を3分で解説

ABAP

DATA命令 / CONSTANTS命令 / PARAMETERS命令 / SELECT-OPTIONS命令などで利用する初期値定義オプション(VALUE / DEFAULT オプション)について解説します。

VALUE / DEFAULT どっちを利用すれば良いんだっけ?と迷ってしまう方が結構いらっしゃるのでこのページで整理しておきます。

このページで学べる内容
  • 初期値定義方法(VALUE / DEFAULT)
  • VALUEオプションの利用方法
  • DEFAULTオプションの利用方法

ABAPerであれば知らないと恥ずかしい超・重要知識。是非最後までご覧ください。

スポンサーリンク

初期値定義の目的

ABAPでは変数 / 画面項目などの定義を行う場合に初期値を定義することが可能です。何も指定しない場合、変数はからっぽの状態で誕生します。

ですが、例えばカウント用の変数であれば中身は空にしておくのではなく初期値を「1」として定義しておいたほうが便利です。また、日付を入れるような画面項目があれば今日の日付を初期値として定義してあげるのが親切でしょう。

このような場合に、VALUE / DEFAULT オプションを利用し初期値を定義してあげることが可能です。

変数とは?

VALUEオプション

VALUEオプションを利用する命令は、DATA命令・CONSTANTS命令です。

DATA命令の場合

DATA命令で定義する変数には、VALUEオプションで初期値を指定できます。

構文ルール:DATA命令の場合

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'.

CONSTANTS命令の場合

構文ルール: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命令の場合

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命令の場合

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から学習したい方は

SAP / ABAPを1から学習したい初心者の方向けに、できるだけ網羅的にABAPが理解できるよう以下ページに知識体系を整理しています。

特に初心者のうちは、どこから学べばよいか?どう勉強すれば良いか?すらわからない状態になりがち。

ある程度の知識を持ったうえで、はじめて実践的な理解へとつながります。

是非、一度ご覧になってみてください。

タイトルとURLをコピーしました