【ABAP】INCLUDE命令―3分で分かるインクルードプログラム

ABAP

本ページでは、INCLUDE:インクルードプログラムの意味と使い方を初心者向けに解説します。

INCLUDEプログラムは、それ単体で実行することはできないプログラムです。他のプログラムに組み込まれることによって、はじめて実行することができるプログラムです。

このページでは、INCLUDEプログラムの意味と使い方、利用するメリットを簡単に説明します。

このページで学べる内容
  • INCLUDE(インクルードプログラム)とは何か?
  • INCLUDEプログラムの作成方法と組み込み方法
  • INCLUDEを利用するメリット

ABAPerであれば知らないと恥ずかしい基本知識ばかりですので、是非最後までご覧ください。

スポンサーリンク
スポンサーリンク

INCLUDE(インクルード)プログラムとは何か?

INCLUDE(インクルード)プログラムは、それ単体で実行することができないプログラムの1つです。

その名の通り、他のプログラムに組み込まれる形で利用されます。イメージとしては、プログラムの一部を外出しして、他のプログラムからでも使えるようにしておくような感じです。

その意味で、ABAPにおけるモジュール化の一手法として用いられます。

構文ルール:INCLUDE命令

INCLUDE(インクルードプログラム名).


構文ルールは非常に簡易的です。INCLUDEの後に、インクルードプログラム名称を記述するだけでOK。

以下のようにチェーン命令の形式で利用することが一般的です。

INCLUDE: (インクルードプログラム1),
         (インクルードプログラム2),
         (インクルードプログラム3).

実際に利用されているプログラムの抜粋がこちら。(プログラム名称は変更しております。)

INCLUDE:
  YINCLUDE_DATA,
  YINCLUDE_SELECTION,
  YINCLUDE_F.
サンプルコードの説明

上記のサンプルコードでは、以下3つのプログラムをインクルードしています。

YINCLUDE_DATA
データ・構造定義用プログラム

YINCLUDE_SELECTION
⇒選択画面定義用プログラム

YINCLUDE_F
⇒サブルーチン用プログラム

インクルードプログラム名称は、なんでもOKです。基本的には、コード規約に沿って可読性が向上するような分かりやすい名称を心がけます。

※インクルードプログラムという単語を使っていますが、プログラムには何種類か存在しています。こちらのページでサクッと解説しています。

インクルードプログラムの作成

メインプログラム中で、INCLUDE命令のあとのプログラム名称をダブルクリックすると、インクルードプログラムのロジック作成画面に自動的に遷移します。

ここでインクルードプログラムのエディタ画面からインクルードプログラムのコーディングが可能になります。

実際に、”YINCLUDE_SELECTION” の中身を見てみましょう。

&---------------------------------------------------------------------
*& Include YINCLUDE_SELECTION
*&---------------------------------------------------------------------*
*-- データ選択条件
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-S01.

SELECT-OPTIONS: S_SEQNO   FOR  GW_SCREEN-SEQNO                       ,   "連番
                S_STATUS  FOR  GW_SCREEN-STATUS OBLIGATORY           ,   "処理ステータス
                S_AUART   FOR  GW_SCREEN-AUART                       .   "販売伝票タイプ
PARAMETERS    : P_VKORG   TYPE YKS002-VKORG     OBLIGATORY           .   "販売組織
SELECT-OPTIONS: S_VKBUR   FOR  GW_SCREEN-VKBUR                       ,   "営業所
                S_VDATU   FOR  GW_SCREEN-VDATU                       ,   "指定納期
                S_BSTKD   FOR  GW_SCREEN-BSTKD                       .   "得意先発注番号

SELECTION-SCREEN END   OF BLOCK B1.

*-- 日情報表示制御
   SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-S02.
   PARAMETERS: P_OUT AS CHECKBOX.
   SELECTION-SCREEN END   OF BLOCK B2.

このインクルードプログラムは、選択画面を作成するためのコードが記載されていることが分かります。

INCLUDE命令で上記プログラム「YINCLUDE_SELECTION」を指定するだけで、どのプログラムでも同じ選択画面が出力されることになります。

メインプログラムではこの記述を「取り込んで」実行し、実際の選択画面を生成していると言えます。

インクルード(INCLUDE)プログラムを利用するメリット

ここまで読んできてお気づきの方もいらっしゃるかと思いますが、実際インクルードを使わなくてもプログラムを完成させることは可能です。インクルードプログラムを利用せずに、メインプログラムにロジックを記載しても処理の内容は全く変わりません。

ですが、インクルードプログラムには結構利点が多く、使い方を覚えれば結構便利な代物です。

以下では、インクルードプログラムを利点するメリットについて補足しておきます。

メリット1:開発効率の向上

インクルードプログラムは、他のプログラムからも呼び出し可能です。

そのため、開発効率の向上が期待できます。同じような処理を別の機能でも利用したい場合に、1から開発しようとすると、設計・コーディングに加えてテスト工数などが膨らんでしまうこともしばしば。

インクルードプログラムであれば、その部分についてはそれらの開発工数が不要となります。

メリット2:可読性の向上

データ宣言部、サブルーチン定義部、選択画面、、、等に区分けしておくことで可読性が向上します。

実際、プログラムを読んでいく作業は大変で、10000行のソースコードを目で見て追っていくことは不可能です。

例えば調査対象がプログラムの「選択画面」であることが分かっている場合、ソースコードを頭からスクロールして見るよりも、INCLUDE分を探して、ピンポイントで調査したほうがはるかに効率的ですよね。

バグが発生したときの原因分析も容易になりますし、同時にプログラムを修正したときの影響範囲も限定させることができます。

ABAPを1から勉強したい方は

ABAPを1から学習したい方は、以下の記事で学習するのがお勧めです。

現在、完全無料で公開しておりますので、是非ご覧ください!

タイトルとURLをコピーしました