図 7 は、提供されるサービス・プログラムにバインドされる ILE RPG プログラムを ILE CL プログラムが呼び出すアプリケーションの実行時のビューです。このアプリケーション・プログラムは XYZ という名前の活動化グループ内で実行されます。
以下に、ユーザーのプログラムが取り扱う ILE の影響について説明します。
アプリケーション・プログラムには、動的プログラム呼び出しまたは静的プロシージャー 呼び出しを含めることができます。 バインドされたプログラム内のプロシージャーは、静的呼び出しを使用してお互 いに呼び出します。 プロシージャーは、動的呼び出しを使用して ILE および OPM プログラムを呼び出 します。
ILE RPG は、プログラム終了およびデータ再初期化の意味が OPM RPG の場合と同じになるように、実行時にデータを管理します。ただし、実際の記憶域は、OPM RPG プログラムが終了した時に削除されたようには、削除されません。 プロシージャーへの前の呼び出しが LR オンで終了するか、あるいは異常終了し た場合には、データが再び初期設定されます。
エクスポートまたはインポート (それぞれ EXPORT または IMPORT キーワード を使用) として識別されるプログラム・データは、個々のモジュールにとって は外部データです。 このデータは、各モジュール間では 1 つのプログラムにバインドされるものと して認識されます。
ユーザーの呼び出し側プログラムにエラー標識または *PSSR があると、例外を起こしたプログラムまたは プロシージャーは照会メッセージを表示せずに異常終了することに なります。ユーザーの呼び出し側プログラムは同じ動きをします (エラー標識がオンに設定 されるか *PSSR が呼び出されます)。
OPM プログラムまたは別の活動化グループ内のプログラムまたは メイン・プロシージャーを呼び出す時には、 例外処理は、OPM RPG における場合と同様に、各プログラムが自身の例外を処 理することになります。 表示するメッセージは新しいメッセージ ID をもつことができるので、 特定のメッセージ ID を監視する場合には、ユーザーはその ID を変更する必 要がある場合があります。
各言語はそれ自身のエラーを処理し、別の ILE 言語で書かれたモジュール内で起こるエラーを処理することができます。 例えば、エラー標識がコーディングされている場合には、RPG で C 言語の エラーを処理します。 C で RPG エラーを処理することができます。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.