!--a11y-->

各 ABAP プログラムタイプには、プログラムを宣言する命令が含まれています。
|
プログラムタイプ |
宣言命令 |
|
1 |
REPORT |
|
M |
PROGRAM |
|
F |
FUNCTION-POOL |
|
K |
CLASS-POOL |
|
J |
CLASS-POOL |
|
S |
PROGRAM |
|
T |
TYPE-POOL |
|
I |
- |
インクルードプログラム ( タイプ I) はコンパイルの単位ではありません。その代わり、このプログラムは単に、所属するプログラムのコンテキストだけで使用されるモジュール化単位です。このため、インクルードプログラムには特別な宣言命令がありません。
以下のセクションでは、宣言命令の機能を説明しています。
REPORT および PROGRAM 命令には現在は同じ機能が含まれます。これらの命令により、プログラムのメッセージクラスおよびこのデフォルト一覧の書式オプションを指定することがます。プログラムがトランザクションコードだけを使用して実行可能または開始可能かどうかは、もっぱらプログラムのタイプに依存し、これを宣言する命令には依存しません。ただし、実行可能プログラムは常に REPORT 命令で始まり、モジュールプールは常に PROGRAM 命令で始まる必要があります。サブルーチンプール ( タイプ S のプログラム) も、常に PROGRAM 命令で始まる必要があります。
宣言命令 FUNCTION-POOL は、汎用モジュールを定義できるプログラムを宣言します。実行時に、汎用グループプログラムは、呼出元プログラムの内部セッションで独自のユーザダイアログおよび独自の共用データ領域とともに、新規のプログラムグループ へロードされます。このため、汎用グループ ( タイプ F プログラム) は、常に FUNCTION-POOL 命令で始まる必要があります。これは通常、汎用モジュールビルダによって生成されます。タイプ 1 、M、または S プログラムは、呼出元と共通のデータ領域を共有しないので、FUNCTION-POOL 命令で始まってはいけません。ただし、例外的に、タイプ 1 または M のプログラムを FUNCTION-POOL 付きで宣言し、外部呼出のサブルーチンが独自の画面を確実に処理できるようにすることができます。REPORT および PROGRAM 命令と同様に、FUNCTION-POOL 命令でプログラムのメッセージクラスおよび標準一覧書式オプションを指定することができます。
宣言命令 CLASS-POOL は、クラスまたはインタフェース定義 ( タイプ K または J プログラム) のためにのみ使用することができます。CLASS-POOL 命令で宣言されるプログラムには、グローバル型定義、およびクラスとインタフェースの定義のみが含まれます。クラスビルダにより必要なCLASS-POOL 命令が自動生成されるので、マニュアルでプログラムに挿入してはいけません。
宣言命令 TYPE-POOL は、データ型グループ ( タイプ T のプログラム) に対してのみ使用することができます。TYPE-POOL 命令で宣言されるプログラムは、グローバル型定義、および定数のデータ型宣言のみを含むことができます。ABAP ディクショナリにより必要な TYPE-POOL 命令が自動生成されます。この命令はマニュアルでプログラムに挿入してはいけません。