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つのサブ関数を担当するようにします。 多くの場合、関数の変更はサブルーチンに実装するだけで済むため、プログラムの保守が容易になります。