EGL セグメント化プログラムは、CICS® 環境や IMS™ 環境では、特別な考慮事項を必要とします。
これらの環境でユーザーが EGL セグメント化プログラムを初めて呼び出したとき、プログラムは以下のように動作します。
- ユーザーによるプログラムの新規開始であることの検出を含む初期化タスクを実行します。
- プログラム・ロジックの先頭に制御権を渡します。
- 各 EGL converse ステートメントを実装します。
- 作業データベースを使用して、program state
(ユーザーとプログラムの間の会話の現行状況を示すユーザー固有の値のセット) を保存します。
この状態には、すべてのレコードおよびフォームのデータが含まれ、該当する行から
プログラムを実行する際に必要になる情報が含まれます。
- データベースおよびリカバリー可能リソースをコミットします。
- すべてのロックを解放します。
- データベースの open ステートメントに forUpdate オプションがある場合でも、データベース位置は保存しません。
- フォームと会話します。
- 終了します。
ユーザーがビジネス・データの更新などのアクションを
実行すると、ランタイム・システムはプログラムをメモリーに戻します。
プログラムは再度先頭から開始されます。
セグメント化されたプログラムは、自動的に次のように動作します。
- プログラムが開始済みであることの検出を含む初期化タスクを実行します。
- すべてのフォームおよびレコードのデータなどを含むプログラムの状態およびこのプログラムでいずれの converse ステートメントが実行されたのかに関する情報をリストアします。
- ユーザーの入力を読み取り、必要な編集を実行します。
- 次の converse ステートメントを実装する際に以下のサイクルを続けます。
- プログラムの状態を保存します。
- データベースおよびリカバリー可能リソースをコミットします。
- すべてのロックを解放します。
- データベースの open ステートメントに forUpdate オプションがある場合でも、データベース位置は保存しません。
- フォームまたは VGUI レコードと会話します。
- 終了します。