プロセス全体 (3 つの全ステージ) の概要
ステージ 1 では、マクロ・ランタイムは、次に処理するマクロ画面を決定します。上記のセクションで説明したように、ステージ 1 には 3 つのステップがあります。
ステップ 1(a) では、マクロ・ランタイムは、現行のマクロ画面の次に表示される可能性があるマクロ画面の名前を収集し、これらの名前を有効な次画面のリストに追加します。このリストには、このような画面が 1 つしかない場合もあれば、複数ある場合もあります。このシナリオの例では、マクロ・ランタイムは、Screen1 の <nextscreens> エレメントを調べ、1 つの名前 (Screen2) を見つけ、その名前をリストに追加します (表 1 を参照)。
ステップ 1(b) では、マクロ・ランタイムは、リスト上の各マクロ画面を定期的に調べて、その画面がアプリケーション画面と一致するかどうかを判別します。
ここでは、時間的要因があります。マクロ・ランタイムが現行のマクロ画面でアクションを実行したばかりなので (Screen1 で、<actions> エレメントの最後のアクションとして '3[enter]' を入力)、ホスト・アプリケーションは、セッション・ウィンドウを変更中です。この結果、古いアプリケーション画面 (「ISPF 基本オプション・メニュー」) ではなく、新しいアプリケーション画面 (「ユーティリティー選択パネル」) を表示します。しかし、この変更は、即時に行われるわけではありません。この変更には数百ミリ秒かかり、ホストから数パケット分のデータが必要になる場合があります。
したがって、ステップ 1(b) では、OIA 行またはセッション・ウィンドウの表示スペースが更新されるたびに、マクロ・ランタイムは、有効な次画面のリストに指定されたマクロ画面 (単数または複数) を調べて、それらのいずれかが現行の状態のアプリケーション画面と一致するかどうかを判別します。
最終的に、マクロ・ランタイムがリスト上のマクロ画面のいずれかをアプリケーション画面と一致させることができるまで、セッション・ウィンドウは更新されます。
ステップ 1(c) では、マクロ・ランタイムは、有効な次画面のリストからすべてのマクロ画面名を除去します (一時画面がある場合は、それを除く)。
ステージ 2 では、マクロ・ランタイムは、選択されたマクロ画面 (ステップ 1(b) でアプリケーション画面と一致した画面) を、新しい現行マクロ画面にします。
最後にステージ 3 では、マクロ・ランタイムは、Screen2 の <actions> エレメントのアクションを実行します。