PR

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

ABAP

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

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

参考 ABAPのプログラムタイプ

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

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

SAPエンジニア/ABAPerを目指す方であれば知らないと恥ずかしい基本知識ばかりです。是非最後までご覧ください。

参考 ABAPの基本構文ルール

スポンサーリンク

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

ABAPのINCLUDE(インクルード)プログラムとは、共有可能なコードブロック:つまり一連のソースコードをひとまとめにしたプログラムで、他のメインプログラムや他のインクルードプログラムから呼び出される形で利用されます。

イメージとしては、プログラムの一部を外出しして、他のプログラムからでも使えるようにしたようなものです。

インクルードプログラムを利用することで、コードの再利用性が向上し、複数のプログラムで同じコードをコピー&ペーストする必要がなくなります。コードのメンテナンスが容易になるため、大規模な開発現場では利用必須の仕組みの1つです。

参考 プログラミングにおけるモジュール化とは?

このページでは、インクルードプログラムの作成方法と利用方法(INCLUDE命令の使い方)をご説明。

まずは、INCLUDE命令の使い方から解説します。

ABAP:INCLUDE命令

ABAPで他のプログラムをインクルードするためには INCLUDE 文を使用します。これにより、別のプログラム(一般に「インクルード」と呼ばれる)を現在のプログラムに挿入することができます。

INCLUDE <program_name>.
* <program_name> はインクルードしたいプログラムの名前

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

大抵の場合、インクルードするプログラムは基本的に複数あることが多いので、ソースコードの冒頭にチェーン形式で記載します。

INCLUDE:
  YINCLUDE_D,     " データ定義
  YINCLUDE_S,     " 選択画面
  YINCLUDE_F.     " サブルーチン
インクルードプログラムをさらに具体的に・・・

インクルードプログラムの仕組みをさらに具体的に解説します。

まず、以下のような単純なインクルードプログラム ZHELLO_INCLUDE を作成します。

WRITE: 'Hello, World!'.

参考 WRITE命令

次に、メインプログラム内でこのインクルードプログラムを使用します。

REPORT ZMAIN.

INCLUDE ZHELLO_INCLUDE.

START-OF-SELECTION.
  PERFORM hello.

FORM hello.
  WRITE: 'This is from the main program.'.
ENDFORM.

* Hello, World!
* This is from the main program.

参考 イベントブロック / FORM(サブルーチン)

↑の例:メインプログラム ZMAINZHELLO_INCLUDE をインクルードしています。

このプログラムを実行すると、先にインクルードプログラムから 'Hello, World!' と出力し、次にメインプログラムから 'This is from the main program.' と出力する流れ。

このように、 INCLUDE 文を使用すると、プログラムの一部を他のプログラムと共有し、プログラムの構造を整理し、コードの再利用性を向上することができます。

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

インクルードプログラムの作成方法はとっても簡単。ABAP Workbench(または最新のABAP Development Tools)を使用して、新しいINCLUDEプログラムを作成することができます。

以下に基本的な手順を示します。

  1. ABAP Workbenchを開く: SAP GUIからトランザクションコードSE38またはSE80を入力し、ABAP Workbenchを開きます。
  2. 新しいプログラムの作成: 「プログラム」→「作成」を選択します。新しいウィンドウが開きます。
  3. プログラム名の指定: プログラム名を指定します。プログラムの種類として「Include program」を選択します。
  4. プログラムの記述: ソースコードエディターでプログラムを記述します。
  5. 保存とアクティベート: プログラムを保存し、アクティベート(有効化)します。
裏技

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

INCLUDE:
  YINCLUDE_D,     " データ定義
  YINCLUDE_S,     " 選択画面
  YINCLUDE_F.     " サブルーチン

↑の「YINCLUDE_S」をダブルクリックすることでプログラム作成が可能。以下のようにそのままコーディングを開始することができ、とっても便利です。

&---------------------------------------------------------------------
*& Include YINCLUDE_S
*&---------------------------------------------------------------------*
*-- データ選択条件
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.

参考 SELECTION-SCREEN / SELECT-OPTIONS / PARAMETERS

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

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

実際、インクルードプログラム(INCLUDE)を使わなくてもシステム全体を完成させることは可能です。インクルードプログラムを利用せず、メインプログラムにゴリゴリ、ロジックを記載していくことで目的とするプログラム開発を行うことは可能。

ですが、インクルードプログラムには様々な利点があるため、使い方を覚えれば結構便利な代物ですし、実際の開発現場では当たり前のように利用される技術でもあります。

インクルードプログラムのメリット1:開発効率の向上

インクルードプログラムは、複数のプログラムから呼び出し可能。

例えば、プログラムAでインクルード(INCLUDE)しているプログラムでも、また別のプログラムBでもインクルード(INCLUDE)することが可能です。

"プログラムA"

INCLUDE:
  YINCLUDE_D,     " データ定義
  YINCLUDE_S,     " 選択画面
  YINCLUDE_F.     " サブルーチン
"プログラムB"

INCLUDE:
  YINCLUDE_S,     " 選択画面
  YINCLUDE_FUNCTION.     " サブルーチン

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

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

汎用モジュールでも同じことができるのでは?

汎用モジュールもインクルードプログラム同様、複数のプログラムから呼び出し可能です。ただし、汎用モジュールの方が用途が限定されており、例えば選択画面だけのプログラムを汎用モジュールとしてコーディングすることはできません。

一方で、インクルードプログラムではインターフェースとしてのパラメータ受け渡しができません。

汎用モジュールとインクルードプログラムの違いは以下の記事でもご確認ください。

インクルードプログラムのメリット2:可読性の向上

データ宣言部、サブルーチン定義部、選択画面、、、等、プログラム全体をある程度の部品に分解・区分けしまとめておくことで可読性が向上します。

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

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

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

ABAP:INCLUDEのまとめ

ポイント1 INCLUDEプログラムとは?

  • ABAPのプログラムの一部を含むコードブロック。
  • 別のプログラム内でインクルード(組み込み)され、共有可能なコード片として利用される。

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

  • コードの再利用: 同じコード片を複数のプログラムで再利用することができ、コードの重複を減らす。
  • メンテナンスの容易さ: 共有コードを一箇所で管理できるため、変更やバグ修正が容易。
  • コードの整理: プログラムの構造を整理し、可読性と管理性を向上させる。

ポイント3 インクルードプログラムを利用するデメリット

  • 依存性: インクルードプログラムは、それが含まれるプログラムのコンテキストに依存する。(必要な変数やデータ構造が適切に定義されていなければならない)
  • 実行の不可: インクルードプログラムは単独で実行できない。
  • トラブルシューティングの難易度: エラーが発生した場合、原因を特定するのが難しくなる可能性がある。

初めてABAPを勉強するのは結構難しいですよね。

でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。

ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?

あなたの技術、もっと価値ある場所で活かしませんか?
SAPエンジニアのキャリア支援はこちらから↓

No.1 > 外資系・IT業界などハイクラスの転職なら【アクシスコンサルティング】blank
4人に1人のコンサルタントが選ぶパートナー!
ビッグ4やアクセンチュアへの転職を実現し年収1000万へ。

No.2 > IT・Web転職特化エージェント【レバテックキャリアblank
blank
サービス利用者数20万人突破。

平均年収アップ率77%であなたの転職成功を保証します。

No.3 > blankリクルートエージェント
blank
\転職支援実績NO.1/

応募が殺到しすぎるが故に・・・非公開にせざるを得ない魅力的な求人が多数!

読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
ABAPSAP
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました