Sap-abap-subroutines
提供:Dev Guides
SAP ABAP-サブルーチン
サブルーチンは、コードの再利用可能なセクションです。 これは、プログラム内のモジュール化ユニットであり、関数はソースコードの形式でカプセル化されます。 次の図に示すように、プログラムの一部をサブルーチンにページアウトして、メインプログラムのより良い概要を取得し、対応する一連のステートメントを何度も使用します。
プログラムXには3つの異なる*ソースコードブロック*があります。 各ブロックには同じABAPステートメントがあります。 基本的に、これらは同じコードブロックです。 このコードを保守しやすくするために、コードをサブルーチンにカプセル化できます。 このサブルーチンは、プログラムで何度でも呼び出すことができます。 サブルーチンは、FormおよびEndFormステートメントを使用して定義できます。
サブルーチン定義の一般的な構文は次のとおりです。
FORM <subroutine_name>.
<statements>
ENDFORM.
PERFORMステートメントを使用してサブルーチンを呼び出すことができます。 コントロールは、サブルーチン<subroutine_name>内の最初の実行可能ステートメントにジャンプします。 ENDFORMが検出されると、制御はPERFORMステートメントに続くステートメントにジャンプして戻ります。
例
- ステップ1 *-トランザクションSE80に移動します。 既存のプログラムを開き、プログラムを右クリックします。 この場合、「ZSUBTEST」です。
- ステップ2 *-[作成]を選択し、[サブルーチン]を選択します。 フィールドにサブルーチン名を入力して、続行ボタンをクリックします。 次のスクリーンショットに示すように、サブルーチン名は「Sub_Display」です。
- ステップ3 *-FORMおよびENDFORMステートメントブロックにコードを記述します。 サブルーチンが正常に作成されました。
サブルーチンを呼び出すには、PERFORMステートメントを含める必要があります。 コードを見てみましょう-
REPORT ZSUBTEST.
PERFORM Sub_Display.
* Form Sub_Display
* --> p1 text
* <-- p2 text
FORM Sub_Display.
Write: 'This is Subroutine'.
Write:/'Subroutine created successfully'.
ENDFORM. " Sub_Display
- ステップ4 *-プログラムを保存、アクティブ化、実行します。 上記のコードは、次の出力を生成します-
Subroutine Test:
This is Subroutine
Subroutine created successfully
したがって、サブルーチンを使用すると、プログラムがより機能指向になります。 プログラムのタスクをサブ関数に分割し、各サブルーチンが1つのサブ関数を担当するようにします。 多くの場合、関数の変更はサブルーチンに実装するだけで済むため、プログラムの保守が容易になります。