!--a11y-->

ABAP プログラムは、R/3 システムでのみ実行することができます。R/3 ベーシスシステムには、ABAP プログラムのためのクロスプラットフォーム実行時環境を提供する、カーネルおよびベーシスサービスというコンポーネントが含まれています ( ベーシスシステムも参照してください) 。
各 ABAP プログラムは、ソースコード内で任意の順序で発生する、独立した処理ブロックで構成されています。処理ブロックは、プログラムのセクションで、構造ブロックで構成されています。処理ブロックは順次に処理されます。処理ブロックは ABAP プログラム外から呼び出すことも、または同じ ABAP プログラム内の処理ブロックから呼び出すこともできます (ABAP プログラムの構造 も参照してください) 。処理ブロックがプログラム外から呼び出される場合は、ABAP 実行時環境または別の ABAP プログラムによって呼び出されます。
ABAP プログラムを開始するには、その処理ブロックの少なくとも 1 つがプログラム自体の外から開始される必要があります。各 ABAP プログラムには、プログラムを実行するかどうかとその実行方法を決定するプログラムタイプがあります。
これらのプログラムは、ユーザがプログラム名またはトランザクションコードを入力することによって実行することができます。これらは R/3 システム内の実際のアプリケーションコンポーネントで、後で詳細に説明します。
タイプ 1 のプログラムは、プログラム名を入力することによって実行することができます。このため、これらは 実行可能プログラムとも呼ばれます。タイプ 1 のプログラムを開始する際、事前定義された順序で一連の処理ブロック ( イベントブロック) を呼び出すプロセッサが実行時環境で開始されます。この順序は、レポートタスクに沿って進行します。そのため、実行可能プログラムは レポートとしても知られています。追加情報については、プログラムの直接実行 - レポートを参照してください。
タイプ 1 プログラムの特殊タイプは、論理データベースです。論理データベースはレポートとともに開始することができます。論理データベースには、タイプ 1 プログラムに対して事前定義された順序で非可視のシステムプログラムによって呼び出されるサブルーチンが含まれています。サブルーチンにより、特定のレポート機能が再使用可能になります。追加情報については、論理データベースを参照してください。
タイプ M のプログラムは、トランザクションコードを使用してのみ開始することができます。トランザクションコードによって、画面が起動します。この画面は、画面自体とその制御ロジックで構成されています。画面制御ロジックは、対応する ABAP プログラムで特別な処理ブロック ( ダイアログモジュール) を呼び出すことができます。タイプ M のプログラムには主にダイアログモジュールが含まれるため、モジュールプールとも呼ばれます。モジュールプールの実行に関する追加情報については、ダイアログ制御のプログラム実行 - トランザクションを参照してください。
これらのプログラムは、ユーザが直接開始することはできません。代わりに、これらのプログラムには、すでに実行中のアプリケーションプログラムによってのみ使用可能な処理ブロックまたはその他のソースコードが含まれています。これらについては、後のセクションで詳しく説明します。
タイプ F のプログラムは実行可能ではありません。これらは汎用モジュールのコンテナとして機能します。ABAP プログラムから汎用モジュールを呼び出すと、メインプログラム全体が現在のプログラムの内部セッションにロードされます。タイプ F のプログラムには主に汎用モジュールが含まれるため、汎用グループとも呼ばれます。汎用モジュールは、プロシージャの一種です。これについての詳細は、プロシージャセクションで説明します。
タイプ K のプログラムは実行可能ではありません。これらはグローバルクラスのためのコンテナプログラムであり、 クラス定義とも呼ばれます。クラスは ABAP オブジェクト に属しています。これについては該当セクションで詳しく説明します。
タイプ J のプログラムは実行可能ではありません。これらはグローバルインタフェースのためのコンテナプログラムであり、 インタフェース定義とも呼ばれます。インタフェースは ABAP オブジェクト に属しています。これについては該当セクションで詳しく説明します。
タイプ S のプログラムは実行可能ではありません。これらは外部からのみ呼び出されるサブルーチンのコンテナプログラムです。ABAP プログラムからサブルーチンを呼び出すと、メインプログラム全体が現在のプログラムの内部セッションにロードされます。タイプ S のプログラムには主にサブルーチンが含まれるため、サブルーチンプールとも呼ばれます。サブルーチンは、プロシージャの一種です。これについての詳細は、プロシージャセクションで説明します。
タイプ I のプログラムは、直接実行できず、呼出可能な処理ブロックも含まれていません。これらは、ABAP ソースコードのモジュール化のみに使用され、その他のインクルードされます。インクルードプログラムについては、ソースコードモジュールセクションで詳細に説明します。
直接開始できるすべてのプログラムには、すでに実行中の別のアプリケーションプログラムからの呼出に使用できる ABAP 命令があります。追加情報については、プログラムの呼出を参照してください。