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として切り出しておくことで、同じ内容を重複して記述せずに再利用できます。