ABAPアプリケーションは、ABAPプラットフォームに動作する機能を表します。ABAPアプリケーションは作業の実行単位であり、フォアグラウンドのダイアログ実行でもバックグランドのバッチ実行でも可能です。
ABAPではアプリケーションは公式的にトランザクションと呼んでおり、リポジトリオブジェクトとして、トランザクションコードにより識別して起動されます。 一方、ABAPプログラムは実行可能なコードが含められるリポジトリオブジェクトであり、その中に、タイプ1(レポートプログラム)、タイプM(ダイアログプログラム)、タイプP(汎用グループ)はトランザクションに割り当てることができます。トランザクションに割り当てる時に、トランザクション起動時に実行されるプログラムのエントリが指定されます。
SapECCシステムは、基幹業務向けのERPパッケージソフトウェアであるため、殆どダイアログ実行型アプリケーションから構成されますが、運用によっては、一部の対話型アプリケーションもバッチ実行型に変更して、タイマなどのトリガーにより、バックグラウンドでで実行させることができます。
ABAPアプリケーションは、ダイアログ実行かバッチ実行かに問わず、すべてAS APAPのワークプロセスに対して、 AS APAP内で実行されます。 以下の図で、アプリケーションのダイアログ実行イメージを示します。
サーバへログインすると、ユーザに1 つの 「SAPguiセッション」が開かれます。また、ユーザが同時に最大6つのウィンドウを開くことができます。これらのウィンドウはそれぞれ、アプリケーションサーバ上で共有メモリの専用領域を使用する「メインセッション」に対応しています。 図:メインセッション
メインセッションは一つ以上の内部セッションから構成されます。メインセッションで起動した最初のアプリケーションプログラムによって、メインセッション内の最初の内部セッションが開きます.
メインセッションで起動された各プログラムは同じSAPメモリを共有しています、つまりSAPメモリを通せば、データの受け渡しが可能です。
アプリケーションプログラム(TYPE 1、TYPE M)が呼び出されるたびに、新しい内部セッションが作成されます。 その他プログラムは新しい内部セッションを作成することがなく、必ず呼び出し元のアプリケーションプログラムの内部セッションで動作します。 図:内部セッション