EGL 生成の IMS™ MPP 間での移動 IMS/VS では、ある
メッセージ処理プログラム (MPP) が、別の MPP を以下の 2 つの方法のいずれかで
呼び出すことができます。
- 即時メッセージ交換
- 即時メッセージ交換では、プログラムは、親端末に最初に応答することなく、
別のトランザクションに直接、制御を渡します。
たとえ移動元のプログラムが会話型であっても、IMS スクラッチパッド域 (SPA) は移動時に
使用されません。
代わりに、プログラムは、宛先が受け取り先トランザクションに設定されている
代替 PSB にデータを送信します。
移動元のプログラムが EGL によって
生成された場合は、移動は、次の言語エレメントのいずれかによって行われます。
- transfer to transaction 型の transfer 文、
または
- 非会話型プログラムのみを開始できるシステム関数 SysLib.startTransaction
- 据え置きメッセージ交換
- 据え置きメッセージ交換では、ユーザーがフォームを送信する際に IMS が別のトランザクションを開始するように、
プログラムがテキスト書式を端末に表示します。
移動のメカニズムは、以下のように、
移動元のプログラムが会話型か、非会話型かによって異なります。
- 移動元の会話型プログラムは、
受け取り先プログラムのトランザクション名を組み込むように SPA を変更します。
- 移動元の非会話型プログラムは、ユーザーがフォームを送信する際に名前が、IMS によって受信されたメッセージの最初の 8 バイト内に
収まるように、新規のトランザクション名をテキスト書式に組み込みます。
いずれの場合も、テキスト書式内にある変更データ・タグは、
フォーム上にあるすべての入力フィールドに関して設定する必要があります。
それ以外の場合は、以下の結果が適用されます。
- ユーザーが、指定されたフィールド内の値を変更せずにフォームを送信すると、
そのフィールド内のデータは、受け取り先プログラムによって処理されません。
- フォームをレビューしているユーザーがヘルプ・フォームの表示を要求してから、
元のフォームを再表示すると、元のフォーム上に表示されるフォーム・フィールド値は、
送信側プログラムからの値ではなく、そのフォームのデフォルトからの値となります。
移動元のプログラムが EGL によって生成された場合は、
移動は、戻り文節のある show 文によって行われます。
受け取り先の EGL 生成 MPP で
inputForm プロパティーを使用すると、
以下のように、どちらのタイプのメッセージ交換が有効であるかを確認できます。
- inputForm を指定しない場合、即時メッセージ交換が必須です。
- inputForm を指定する場合、どちらのタイプのメッセージ交換も可能ですが、
据え置き交換を使用するほうが、より効率的です。
即時交換を使用すると、inputForm で識別されたフォームが移動先
プログラムによって自動的に表示されますが、受け取り先プログラムが 2 回
処理されます (1 回はフォームを表示するため、もう 1 回はユーザー・データを
読み取るため)。
EGL 生成 IMS/VS プログラムから EGL 生成 IMS/VS プログラムに制御を
移動する場合は、2 つのプログラムの会話型の状況は同じでなければなりません。
つまり、両方が会話型か、または両方が非会話型でなければなりません。
EGL 生成プログラムが SPA を予約するように指定するには、
ビルド記述子オプション spaSize 内に正の値を割り当てます。