!--a11y-->

R/3 アプリケーションプログラムは、アプリケーションサーバのワークプロセスに対して R/3 ベーシスシステム内で実行します。したがって、アプリケーションプログラムは、使用しているハードウェアおよびオペレーティングシステムとは関係していません。ただし、R/3 システム外でアプリケーションプログラムを実行できないことにもなります。
R/3 ベーシスシステムの概要 に説明したように、ワークプロセスには、ユーザ入力を処理するための Dynpro プロセッサ、プログラミングロジックを処理するための ABAP プロセッサ、データベースと通信するためのデータベースインタフェースが組み込まれています。ワークプロセスのこれらのコンポーネントによって、アプリケーションプログラムの構造が以下のようになります。

アプリケーションプログラムは、それぞれが異なるタスクを実行する 2 つのコンポーネントで構成されます。
アプリケーションプログラムとユーザ間のインタラクションは Dynpro を使って実行されます。Dynpro は、ワークプロセスの Dynpro プロセッサにより処理されます。Dynpro は入力マスクと制御ロジックで構成されます。制御ロジックとは、Dynpro 言語と呼ばれる特別のキーワードセットを使って書かれたコーディングです。入力マスクは SAPgui によって表示され、さらに、画面上のユーザアクションが制御ロジックに戻されます。プログラムフローでは、Dynpro がユーザのアクションに応じて動作し、プログラムモジュールを呼び出します。これらのプログラムモジュールによって、処理ロジックが構成されます。
R/3 システム内でデータ処理を行うアプリケーションプログラムのコンポーネントは ABAP プログラムです。ABAP とは ' アドバンスドビジネスアプリケーションプログラミング' の略語です。ABAP プログラムは、ワークプロセスの ABAP プロセッサで実行します。ABAP プログラムは、Dynpro プロセッサから画面入力を受け取り、それを Dynpro プロセッサに送信します。データベースにアクセスするには、データベースインタフェースを使用します。ABAP には、オープン SQL と呼ばれる特別のコマンドセットが組み込まれています。これにより、使用するデータベースに関係なく、データベースからの読込とデータベースへの書込を行うことができます。データベースインタフェースは、オープン SQL のコマンドを該当するデータベースのコマンドに変換します。また、ネイティブ SQL のコマンドを使用することもできます。これは、最初に変換されずにデータベースに渡されます。メモリ、順次ファイル、外部インタフェースなど、ほかにもさまざまなインタフェースがあります。これらのインタフェースも、ABAP プログラムとのデータのやり取りを行う手段として機能します。Dynpro と同時に使用される場合、ABAP プログラムは受動的な役割を担います。つまり、制御ロジックから呼出可能なモジュールセット用のコンテナとして機能します。
