!--a11y-->

以下の各セクションでは、ABAP プログラムにおけるさまざまな処理ブロックと、それらの呼出方法について説明します。
Dynpro 制御ロジックからダイアログモジュールを呼び出します (Dynpro コマンド MODULE) 。ABAP プログラムに属するすべての Dynpro の状態ごとに (PBO 、PAI 、ユーザ入力) ダイアログモジュールを ABAP プログラムに書き込むことができます。Dynpro の PAI モジュールとその後続 Dynpro の PBO モジュールを統合したものがダイアログステップです。制御ロジックと Dynpro 間のインタラクションはダイアログプロセッサによって制御されます。
ダイアログモジュールは MODULE 命令によって導入され、ENDMODULE 命令によって終了します。
ダイアログ画面上の項目名は、ABAP プログラムで対応する項目名と同じです。データは、プログラム内の同一名の項目間で受け渡しされます。ABAP プログラムではダイアログ画面を定義しません。
選択画面は、プログラムの宣言部分で ABAP コマンドを使用して作成する特殊なダイアログ画面の 1 つです。選択画面でのさまざまなイベント (PAI 、PBO 、ユーザ入力) は選択画面プロセッサによって制御されます。これらのイベントに対する処理ロジックを、自分のプログラムでプログラミングすることができます。選択画面プロセッサは、選択画面の制御ロジックを制御します。
ユーザは自分で Dynpro 制御ロジックを作成する必要がありません。また、PBO イベントや PAI イベントに対して独自のダイアログモジュールを作成することはできません。ABAP プログラムの宣言部分の選択画面定義に作成した項目 ( パラメータと選択テーブル) を使用して、選択画面と ABAP プログラム間でデータが受け渡しされます。
一覧は、書式化されたデータを出力する特殊な Dynpro です。一覧は、特別のコマンドセット (WRITE 、NEW-PAGE など) を使用して、ABAP プログラムの任意の処理ブロックに作成することができます。一覧プロセッサは画面上に一覧を表示して、一覧内のユーザアクションを処理します。一覧プロセッサは、一覧の制御ロジックを制御します。ユーザは自分で Dynpro 制御ロジックを作成する必要がありません。また、PBO イベントや PAI イベントに対して独自のダイアログモジュールを作成することはできません。
一覧の作成中に、ページ書式化で使われるさまざまなイベントブロックを呼び出すことができます。上図には、ABAP プログラム自体から呼び出されるイベントブロック TOP-OF-PAGE が含まれています。一覧が表示されているときに、ユーザは、対話式一覧イベント ( 例: AT LINE-SELECTION) に対してイベントブロックを開始するアクションを実行することができます。対話式一覧イベントに対する処理ロジックを、自分のプログラムでプログラミングすることができます。データは、システム項目、または HIDE 領域という内部メモリ領域を使って、一覧から ABAP プログラムに転送されます。
実行可能プログラム ( タイプ 1) を実行するときに、そのプログラムは実行時環境で、事前定義されたプロセスによって制御されます。一連のプロセッサが順次に呼び出されます。これらのプロセッサによってイベントが開始します。イベントに対して、イベントブロックを定義することができます。タイプ 1 プログラムはイベント主導です。
このプロセスは以下のとおりです。
...
1. 実行時環境では、INITIALIZATION イベントが登録され、対応するイベントブロック (ABAP プログラムで定義済の場合) が呼び出されます。
2. プログラムに選択画面が定義されている場合は、コントロールが選択画面プロセッサに戻ります。これによって、対応するイベントが生成され、そのイベントブロックが呼び出されます。
3. その後で、コントロールはレポートプロセッサに渡されます。START-OF-SELECTION イベントが登録され、対応するイベントブロック (ABAP プログラムで定義済の場合) が呼び出されます。
4. 論理データベースを使用している場合は、このときに、論理データベースによって追加イベントブロックが呼び出されます。
5. レポートプロセッサによって END-OF-SELECTION イベントが登録され、対応するイベントブロック (ABAP プログラムで定義済の場合) が呼び出されます。
6. プログラムに一覧テキストが含まれている場合、コントロールは次に一覧プロセッサに渡されます。一覧プロセッサには、ABAP プログラムで定義された一覧が表示されます。一覧上のユーザアクションがイベントに変換され、対応するイベントブロックが呼び出されます。
ABAP プログラムからサブルーチンを呼び出すには、PERFORM 命令を使用します。
サブルーチンは FORM 命令によって導入され、ENDFORM 命令によって終了します。

サブルーチンは任意の ABAP プログラムで定義することができます。同じプログラムに組み込まれているサブルーチンを呼び出すか、別のプログラムに属する外部サブルーチンを呼び出すことができます。内部サブルーチンを呼び出す場合は、グローバルデータを使用してメインプログラムとサブルーチン間で値を受け渡すことができます。外部サブルーチンを呼び出す場合は、メインプログラムからサブルーチン内の仮パラメータに実パラメータを渡す必要があります。
汎用モジュールは、定義済インタフェースが組み込まれた外部機能です。ABAP プログラムから汎用モジュールを呼び出すには、CALL FUNCTION 命令を使用します。
汎用モジュールはFUNCTION 命令によって導入され、ENDFUNCTION 命令によって終了します。
汎用グループと呼ばれる特殊な ABAP プログラムの中では、汎用モジュールビルダを使用して汎用グループのみを作成することができます。つまり、汎用グループは、他の ABAP プログラムから外部で呼び出すことしかできません。サブルーチンとは異なり、明示的なパラメータインタフェースを使用してデータを常に汎用モジュールに渡してください。
メソッドは、ABAP オブジェクト内のクラスの機能について記述したものです。汎用モジュールと同様に、メソッドには定義済インタフェースが組み込まれています。ABAP プログラムからメソッドを呼び出すには、CALL METHOD 命令を使用します。
メソッドは METHOD 命令によって導入され、ENDMETHOD 命令によって終了します。
メソッドは、クラスの導入部分のみで定義することができます。メソッドの定義は、クラスビルダでグローバルに実行するか、ABAP プログラム内でローカルに実行することができます。メソッドは、そのクラスの属性と、明示的なパラメータインタフェースを使ってメソッドに渡されたデータと一緒に使用できます。
