ABAPの基本中の基本。CONSTANTS命令について解説します。
CONSTANTS命令はABAPで定数定義を行うための命令です。変数定義を行うDATA命令とセットで覚えるのがおすすめ!
このページでは、そもそも定数とは何か?定数を定義することのメリットは何か?DATA命令との違いは何かなど、基本的な内容を中心に解説します。
SAPエンジニア/ABAPerを目指す方であれば知らないと恥ずかしい超・重要知識です。是非最後までご覧ください。
ABAP:定数とは?
まずはプログラミングにおける「定数」の意味から学習します。
「定数」とはプログラム実行時に値を変更することができないデータオブジェクト(箱)のことです。
「定数」の対義語は「変数」で、変数の場合はプログラム実行中に値を書き換えることが可能です。一方「定数」の場合はプログラム実行中にその値を書き換えることはできません。
仮に無理やり書き換えようとするコードを書くと、構文エラー/実行時エラー(ダンプ)が発生します。
定数はプログラム開発時点から終了時点まで定数は不変であると理解しておきましょう。
構文ルール:CONSTANTS命令
ここからは本題のABAPにおける定数定義の仕方・使いどころを学習していきます。
構文ルールはDATA命令と基本的には同じですが、CONSTANTS命令で定義するのは変数ではなく定数なので、宣言時にVALUEオプションを利用して「初期値」を指定する必要があります。
VALUEオプションって何?という方は、以下のページで詳しく解説しておりますので、合わせてご覧ください。
サンプルコード:CONSTANTS命令
CONSTANTS命令の使い方をよりイメージしやすいようにいくつかサンプルコードを記載します。
どのような使い方があるのか?をインプットしておきましょう。
定数を利用する意味/メリット
構文ルールも簡単で、概念も理解しやすいCONSTANTS命令ですが、一体どこで利用するのでしょうか?何のために定数が用いられるのでしょうか?
この章ではCONSTANTS命令を利用するメリットを以下の2点に集約して解説します。
CONSTANTS命令を利用するメリット①:可読性の向上
まず1つ目のメリットは「可読性」の向上。つまり、簡単に言えばCONSTANTS命令を利用する方がプログラム全体が読みやすくなる場合が多いです。
定数を定義せずにコーディングしたプログラムと、定義定義がされているプログラムを比較してみます。
いかがでしょうか。CONSTANTS命令を利用することで、ただの定数が「どんな意味を持った数字・値」なのか?という点を明確にすることができます。
処理は同じでも、ハードコーティングされている場合「1.1」という数字の意味が分かりませんが、定数として「TAX_RATE = 15」とすれば「15」という数字が税率であることが直感的にわかるようになります。
CONSTANTS命令を利用するメリット②:保守性の向上
2つ目のメリットは保守性の向上です。つまり、後で修正を行う必要が出た場合にCONSTANTS命令を利用していれば修正・改修が簡単になるということです。
以下2つのサンプルコードを改修する場面を考えてみます。例として、消費税率の変更を考えましょう。
下のサンプルコードを改修するとすれば最初の1行だけ(定数の値を変更)を変更すればOK。ですが、ハードコーティングされていると3か所直す必要が出てきてしまいます。
また、直すのは本当に3か所だけ?というのを調査する必要も出てきてしまいます。定数定義の目的(ハードコーディング回避のメリット)については、以下の記事でさらに詳しく解説していますので、合わせてご覧ください。
SAP / ABAPを1から学習したい方は
初めてABAPを勉強するのは結構難しいですよね。
でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。
ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?
読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!