このトピックでは、ABAP開発の構造化手法を取り上げて説明します。構造化手法はモジュール化とも呼ばれます。
概要
ABAPプログラムの処理ロジックは処理ブロックで構成されます。
処理ブロックには、ABAP 実行システムによって外部プログラムから呼び出される処理ブロックと、ABAPプログラムの ABAP 命令による呼出が可能な処理ブロックの2種類があります。
ABAP命令による呼出が可能な処理ブロックは、プロシージャと呼ばれます。
カテゴリ | 処理ブロック | 呼出元 | ローカルデータ領域 |
---|---|---|---|
画面制御 | ダイアログモジュール | PBO、PAI (個別画面) | 無 |
イベントブロック | PBO、PAI (標準の選択、一覧画面) | 無 | |
プロシージャ | サブルーチン | 有 | |
汎用モジュール | 有 | ||
メソッド | 有 |
処理ブロックは分離不可能な構文的モジュール化単位であり、他の処理ブロックを含むことはできません。
ダイアログモジュール
ダイアログモジュールは、画面の初期表示時やユーザがなんらかのアクションを起こした後に、ABAP実行環境(ダイアログプロセッサ) から、Dynno制御ロジックのPAI、PBOを通して、呼び出されます。
ダイアログモジュールは MODULE 命令によって導入され、ENDMODULE 命令によって終了します。
以下の図でダイアログモジュールの呼出イメージを示します。
ここのダイアログモジュールはcall dialogで呼ばれている「ダイアログモジュール」とは別物です。
call dialogで呼ばれている「ダイアログモジュール」はアプリケーションプログラムを通常の「Transaction」ではなく、呼出元のプログラムのSAP LUWの中に動く「dilalog」として呼び出すための名称というものです。
以下の図でダイアログモジュールの実装イメージを示します。
イベントブロック
サブルーチン
サブルーチンは、主としてローカルなモジュール化で使用されます。一般に、サブルーチンは、そのサブルーチンが定義されているプログラムから呼び出されます。サブルーチンを使用して、プログラム内で繰り返し使用する機能を記述することができます。
サブルーチンは 全てのABAPプログラムで定義することができます。
汎用モジュール
汎用モジュールは、グローバルなモジュール化で使用され、常に別のログラムから呼び出されます。
汎用モジュールは汎用グループで定義する必要があり、任意のプログラムから呼び出すことができます。
汎用モジュールにより、データ交換の固定インタフェースが処理されます。たとえば、入力パラメータにデフォルトの値を割り当てることができます。また、このインタフェースでは例外処理もサポートしています。これによって、エラーを検出し、そのエラーを対処するため呼び出し元プログラムに返し、処理させることができます。
汎用モジュールは独自のメモリ領域を使用します。呼び出し元プログラムと汎用モジュールとが、共有メモリ領域を使ってデータ交換を行うことはできません。汎用モジュールインタフェースを使用しなければなりません。