トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

ABAP/CHANGING の変更点

Top/ABAP/CHANGING

[[戻り値>アドオン/戻り値]]を受け取るの命令。
[[戻り値>アドオン/戻り値]]の引き渡し、受け取りに使用する命令。

* 概要 [#pe856262]
この命令は、主に[[サブルーチン>アドオン/サブルーチン]]の受け渡しに用いる。

「なんでいちいち受け渡しするの?[[グローバル変数>アドオン/グローバル変数]]を使えばいいじゃん」という人もいるが、どこで読み込みどこで編集しているのかを書いた人以外、最悪は書いた人間すらよくわからなくなってしまう。
「なんでいちいち受け渡しするの?[[グローバル変数>アドオン/グローバル変数]]を使えばいいじゃん」という左脳が欠損した輩もいるが、どこで読み込みどこで編集しているのかを書いた人以外、最悪は書いた人間すらよくわからなくなってしまう。

一々ソースを全部読まなくても、おおまかな処理ブロックに[[引数>アドオン/引数]]と[[戻り値>アドオン/戻り値]]が添えてあれば、大体なにをやっているか想像はつくし追いかけやすいので、面倒がらずにちゃんと書くこと。

** 用法 [#h64f92ec]
概要と同じ。

** サンプル [#t3576cac]
# PERFROM F_FUNC_CHECK_ITEM_MASTER USING    L_WA_VBAP-MATNR
#                                           L_WA_VBAP-WERKS
#                                  CHANGING L_SUBRC.
 PERFROM F_FUNC_CHECK_ITEM_MASTER USING    L_WA_VBAP-MATNR
                                           L_WA_VBAP-WERKS
                                  CHANGING L_SUBRC.

* その他 [#r384e674]
呼び出し先の[[サブルーチン>アドオン/サブルーチン]]でエラーメッセージ設定および出力などの判定をするか、呼び出し後の[[戻り値>アドオン/戻り値]]で判定するかは、それぞれ一長一短。

プログラム単体のことを考えれば[[サブルーチン>アドオン/サブルーチン]]の中で実施した方がわかりやすくメンテもしやすい。
が、プログラムによってエラーとするのか無視するかなど求められる[[例外処理>アドオン/例外処理]]は異なるため、外で判定する方式の方が再利用性は高くツブシが効くと言える。

つまりどちらにもメリット・デメリットがあるわけだが、併用するのはやめよう。
コーディングの体系が一貫していないため「このプログラムは信用できない」となってしまい、ある意味で可読性が低くなってしまう。

~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)