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

ABAP/PERFORM の変更点

Top/ABAP/PERFORM

[[サブルーチン>アドオン/サブルーチン]]を呼び出すための命令。

* 概要 [#j4d77dd6]
** 用法 [#m1e61e8f]
ダラダラ書くと可視性も保守性も低下するため、適切な[[サブルーチン>アドオン/サブルーチン]]に分け、この命令で呼び出す。
                                                IT_SOITEM.

** サンプル [#p8e30ede]
*** USING, CHANGING [#bf8f3397]
# PERFORM F_FUNC_GET_SALES_ORDER_DETAIL USING    P_VBELN
#                                       CHANGING IT_SO_HEADER
#                                                IT_SOITEM.

[[引数>アドオン/引数]]と[[戻り値>アドオン/戻り値]]を受け渡しする。
[[サブルーチン>アドオン/サブルーチン]]を分けていようと、正しく受け渡しされていなければ''結局、中で何をやっているか分からない''ため、正しく定義し利用すること。

*** IF FOUND, IN PROGRAM xxx [#b8c95f16]
# PERFORM F_FUNC_GET_SALES_ORDER_DETAIL IN PROGRAM (ZZZzzz) IF FOUND.
 PERFORM F_FUNC_GET_SALES_ORDER_DETAIL IN PROGRAM (ZZZzzz) IF FOUND.

「存在するか分からない」[[サブルーチン>アドオン/サブルーチン]]の呼び出しに用いる。
[[ルーチン>SAPの拡張手段#h9fd20e0]]など、標準プログラムでよく利用されている。

他のプログラムのサブルーチンを流用することもできるが、流用するような或いはしたいようなロジックは汎用モジュールか共通インクルードにしておくべきで、思わぬところで影響範囲が広がったりするため、そういった用途では使用しないこと。

* その他 [#lb3435f1]
** TABLESオプション [#rcf00220]
SAPが推奨しない通り[[TABLES>ABAP/TABLES]]命令は使用しないこと。
内部テーブルを受け渡ししたい場合は、[[TYPES>ABAP/TYPES]]で「TYPE TABLE OF 〜」としておけば、USINGやCHANGINGで連携できる。
内部テーブルを受け渡ししたい場合は、[[TYPES>ABAP/TYPES]]で「TYPE TABLE OF ~」としておけば、USINGやCHANGINGで連携できる。

** 引数の指定順序 [#jbad5c6d]
引数の指定順序は、必ずTABLES((※上記の通り現在は使用しないこと))→USING→CHANGINGの順となり、逆転は出来ないらしい。(筆者はこのルールに逆らったことがない)
引数の指定順序は、必ずTABLES((※上記の通り現在は使用しないこと))→USING→CHANGINGの順となり、逆転は出来ないらしい。(筆者はこのルールに逆らったことがないし、試すのも面倒)

CHANGING→USINGと書いた場合、CHANGINGと言う名のUSINGパラメータになり、USINGと言う名のCHANGINGパラメータになるとのこと。


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