コンテンツフレーム起動

外部プロシージャコールの編成 文書を SAP ライブラリストラクチャに組み込む

1 または M のプログラムの起動または呼出を行うたびに、現在の R/3 端末セッションに新しい内部セッションが開かれます。プログラムが外部プロシージャを呼び出す際、メインプログラムと作業データも内部セッションのメモリ領域にロードされます。ここでは、呼出元外部サブルーチン、汎用モジュール、および ABAP オブジェクトのクラスを使用した作業の間に差異があります。

内部セッションのプログラムグループ

以下の図は、外部サブルーチンおよび汎用モジュールのメモリ構成を示しています。

このグラフィックは添付のテキストに説明されています

メインプログラム ( 1 または M) はメインメモリプログラムグループに属しています。ロードされていない汎用グループから汎用モジュールを呼び出すと、追加のプログラムグループが登録されます。このプログラムグループに、汎用モジュールが属する汎用グループがロードされます。追加のプログラムグループとそのデータは、内部セッションの残りのライフタイムの間存在します。

PERFORM を使用して外部サブルーチンを呼び出すと、サブルーチンのメインプログラムが、既存のメインプログラムまたは対応するメインまたは追加プログラムグループの汎用グループにロードされます ( ロードされていない場合)

サブルーチンがまだロードされていない汎用グループに属する場合は、追加プログラムグループは外部の PERFORM でのみ開かれます。これは、サブルーチンのメインプログラムが FUNCTION-POOL 命令で開始された場合に起こります。プログラムの型は必ずしも F に設定する必要はありません。

ABAP オブジェクトのクラスは、汎用グループのように動作します。最初にクラス ( たとえば CREATE OBJECT 命令を使用して) または静的クラスコンポーネントをアドレスすると、そのクラスの追加プログラムグループが開かれます。

画面の処理

システムでは、画面、選択画面、追加プログラムグループの汎用グループのメインプログラムおよびメインプログラムグループの一覧とこれらに関連する GUI ステータスしか表示および処理されません。CALL SCREEN 命令および CALL SELECTION-SCREEN 命令、または外部サブルーチンの一覧表示命令は、メインプログラムまたは汎用グループの画面に適用されます。画面はメインプログラムまたは汎用グループで処理されます。このため、たとえば外部サブルーチンのメインプログラムに画面 100 があっても、CALL SCREEN 100 命令は呼出元メインプログラムで画面番号 100 を呼び出します。 

インタフェース作業領域

TABLESNODES 、または DATA BEGIN OF COMMON PART 命令を使用して宣言するインタフェース作業領域は、プログラムグループごとに 1 度しか存在せず、すべてのプログラムで共有されます。PROGRAM 命令または REPORT 命令で開始される各メインプログラム、および FUNCTION-POOL 命令で開始される各汎用グループは、そのすべての外部サブルーチンのメインプログラムとインタフェース作業領域を共有します。

動的割当

画面およびインタフェース作業領域のサブルーチンへの割当は、サブルーチンコールの 順序によって定義されます。外部サブルーチンを呼び出す最初のプログラムはサブルーチンとインタフェース作業領域を共有し、サブルーチンはその画面を使用します。サブルーチンコールの順序は、必ずしも静的に定義されるとは限りません。ユーザのアクションや項目の内容に従って動的に変更することができます。たとえば、サブルーチンは実行時にはメインプログラムグループに属し、次回は追加プログラムグループに属することができます。このため、外部サブルーチンがインタフェース作業領域または呼出画面を使用している場合は、外部サブルーチンの使用を避ける必要があります。

 

 

 

 

コンテンツフレーム終了