INCLUDEプログラム

22.3 INCLUDEプログラム

INCLUDEプログラムは、単体では実行できない「部品用のプログラム」です。
メインプログラムで「INCLUDE <include名>.」を宣言すると、INCLUDE内に定義したデータ定義やサブルーチンを利用できます。
また、1つのINCLUDEを複数のプログラムから呼び出すことは可能です。
ただし、INCLUDE内で宣言したデータは「メインプログラムに取り込まれる」だけであり、 別プログラム間で値を共有する仕組みではありません。

INCLUDEプログラム作成方法

1. ABAPエディタ[SE38]を起動し、プログラムIDを入力して「登録」を押下します。

2. [タイプ]は[INCLUDEプログラム]を選択し、保存します。

サンプルコード(サブルーチン)
*&---------------------------------------------------------------------*
*&  Include           Z_SAMPLE222_INCLUDE
*&---------------------------------------------------------------------*
* 数値加算プログラム
FORM CALCULATE_SUM
  USING   VALUE(IV_NUM1) TYPE I
               VALUE(IV_NUM2) TYPE I
               CHANGING CV_RESULT TYPE I.

  " 2つの数値を加算して結果を返す
  CV_RESULT = IV_NUM1 + IV_NUM2.

ENDFORM.

3. 作成したINCLUDEプログラムを参照するレポートプログラムを作成します。

INCLUDEプログラム
REPORT Z_SAMPLE222_SUBROUTINE_INC.

" INCLUDE(部品)を取り込む:ここにあるサブルーチンを使えるようになる
INCLUDE Z_SAMPLE222_INCLUDE.

" データ定義(宣言は上部に統一)"
DATA GV_NUM1   TYPE I.
DATA GV_NUM2   TYPE I.
DATA GV_RESULT TYPE I.

START-OF-SELECTION.

  " 入力値を設定
  GV_NUM1 = 3.
  GV_NUM2 = 5.

  " INCLUDE内のサブルーチンを呼び出す
  PERFORM CALCULATE_SUM USING GV_NUM1 GV_NUM2
                       CHANGING GV_RESULT.

  " 結果表示
  WRITE: / |RESULT: { GV_RESULT }|.

4. INCLUDEプログラム内に定義されたサブルーチンが呼び出され、結果が表示されます。

補足
プログラムは、すべての処理を1つのプログラム内に記述することも可能です。
しかし、処理が増えて大規模になるほど行数が多くなり、どこで何を行っているのか把握しづらくなります。
また、機能追加や仕様変更により修正が必要になった場合、修正箇所の特定に時間がかかることがあります。

そこで、メインプログラムには処理の流れ(全体の骨格)を記述し、詳細な処理や共通部品は INCLUDEプログラムに分割して記述します。
このように構成することで、プログラム全体の見通しがよくなり、修正が必要な場合も変更箇所を見つけやすくなります。

さらに、INCLUDEプログラムは複数のプログラムから取り込んで利用できます。
そのため、複数の機能で同じ選択画面を使用したい場合や、同じ処理を実行したい場合には、 共通部分をINCLUDEとして切り出しておくことで、同じ内容を重複して記述せずに再利用できます。

NEXT>> 22.4 汎用モジュール

研修の詳細はこちら