[[変数>アドオン/変数]]の対義語で、常に変わらない値のこと。
広義では固定値という解釈もできるが、固定値 = ベタ書き([[リテラル>ABAP/リテラル]])と認識する技術者も少なくないため、こう呼んだほうが無難。
なお、[[リテラル>ABAP/リテラル]]でなく定数化する意味は、
+視認性が向上する
+単純に、視認性が向上する
+無味乾燥なコードや値に「意味」を付与することによって、ソースが直感的になる
+分岐などの箇所を一括検索することができ、影響範囲の絞り込みが容易
+値さえ書き換えてしまえば、ロジックを直接変更しなくとも修正ができる
といったところ。
以下に、誤った、そしてよく使われる書き方を紹介する。
-定数にすればいいってもんじゃない!
-定数にすればいいってもんじゃない!ベタ書きしなけりゃいいってもんじゃない!!
--誤:C_&color(Red){X}; TYPE C LENGTH 1 VALUE 'X'.
--正:C_&color(Blue){FLAG_ON}; TYPE C LENGTH 1 VALUE 'X'.
-意味的な正体が分からなかったら意味が無い!?〜プログラムで対象とする[[品目タイプ>品目マスタ/品目タイプ]]の例
-意味的な正体が分からなかったら意味が無い!①~プログラムで対象とする[[品目タイプ>品目マスタ/品目タイプ]]の例
--誤:C_&color(Red){Z001 TYPE C LENGTH 4}; VALUE 'Z001'.
--正:C_&color(Blue){TRG_MTART TYPE MARA-MTART}; VALUE 'Z001'.
-意味的な正体が分からなかったら意味が無い!?〜[[IF>ABAP/IF]]文などで判断基準とする[[受注伝票タイプ>販売管理/受注伝票タイプ]]の例
-意味的な正体が分からなかったら意味が無い!②~[[IF>ABAP/IF]]文などで判断基準とする[[受注伝票タイプ>販売管理/受注伝票タイプ]]の例
--誤:&color(Red){C_AUART_ZOR1}; TYPE VBAK-AUART VALUE 'ZOR1'.
--正:&color(Blue){C_AUART_STOCK_SALES}; TYPE VBAK-AUART VALUE 'ZOR1'.
また、上記の話に関連して、定数に限った話ではないがネーミングには気をつけたいもの。
特に、iTAB_Aのような''書いた自分すら分からなくなりそうなもの''を書くことは論外で、心当たりのある人は、頭でも丸めて頂きたい。
また、命名ルールに抵触するようなあまりに長いネーミングはセンスが無さ過ぎるものの、''名称を省略するのもやめるべき''であり、四半世紀前の[[変数>アドオン/変数]]名称に制限があるような世界であれば別だが、昨今の環境では実用外レベルの制約は存在しない。
むしろ、自分ルールで変な略し方をした結果、メンテする人間に伝わらなかったり誤認を招いたりし得るリスクやデメリットの方が勝るため、略する意味が無いどころか、ありのまま表記しない理由が無い。
また、インデックスをIDXとしたりカウンタをCNTにするくらいなら苦笑レベルで済むが、''区分をKBNと表記する''ような輩も多く存在するので、コードの標準化という意味でも「略さない」は有用であると考える。
~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)