画面・帳票サポートシステム XMAP3 メインフレーム連携ガイド

[目次][用語][索引][前へ][次へ]

11.2.5 画面管理プログラムにメインフレームAPの処理を分散する

画面表示やPC上のAPの呼び出しを,メインフレーム上のAPではなく画面管理プログラムで処理できます。これによって,すべてをメインフレーム上のAPから処理する場合に比べて,メインフレームとPCとでやり取りされるデータの量が減少するので,処理の効率を上げることができます。

画面管理プログラムは,メインフレームのAPとの間で送受信される入出力論理マップの内容をそのままXMAP3に渡しています。この入出力論理マップには,メインフレーム用のコードである,EBCDIKコードおよびKEIS'83コードでデータが格納されています。

画面管理プログラムにAP処理を分散し,入出力論理マップ中のデータを参照または更新するためには,EBCDIKコードおよびKEIS'83コードを使用する必要があります。画面管理プログラムをC言語で作成している場合は,入出力論理データを扱う構造体を,COBOL用の論理マップを参考にして作成してください。

画面管理プログラムから,メインフレームのAPからの命令とは別に画面を表示させる場合は,jsvwhtrn関数を使用します。画面管理プログラムをCOBOLで作成する場合は,「CALL "jsvwhtrn"」としてください。

画面管理プログラムにメインフレームのAPの処理を分散するケースについて説明します。

<この項の構成>
(1) ポップアップメニューを表示する
(2) メニュー画面を表示する
(3) 二次ウィンドウを表示する
(4) PC上のほかのAPを呼び出す
(5) Windowsのヘルプ機能を呼び出す

(1) ポップアップメニューを表示する

マスタファイルなどからデータを取り出し,可変ポップアップのメニュー内容の変更処理を分散します。

PC上に可変ポップアップメニュー用論理項目と同じ形式と大きさで,内容がEBCDIKコードおよびKEIS'83コードで格納されたメニューファイルを準備します。

画面管理プログラムでは,次の処理を行います。

  1. 画面を表示する前に,出力論理マップの,可変ポップアップメニュー用データが格納されている領域の内容を,メニューファイルの内容に書き換えます。
  2. 画面を表示します。

(2) メニュー画面を表示する

仮想端末のオープン要求のあとに表示するメニュー画面の表示処理を分散します。

メニュー画面をXMAP3で定義します。このとき,生成したマップはメインフレームに転送しません。

画面管理プログラムでは,次の処理を行います。

  1. メインフレームのAPから受け取った仮想端末のオープン要求を処理します。
  2. メニュー画面を表示します。
  3. メニュー画面から入力された入力論理マップ中の,イベント通知コードが格納されている位置から,長さ分の内容をEBCDIKコードで判定します。
  4. 3.で判定した内容から,メインフレームのAPに送信するトランザクションコードを決定します。
  5. トランザクションコードを受信メッセージテーブルに格納し,メインフレームに送信します。

(3) 二次ウィンドウを表示する

一次ウィンドウから入力されたイベント通知コードを判定して,操作の補助を目的として二次ウィンドウを表示させる処理を分散します。

二次ウィンドウをXMAP3で定義します。このとき,生成したマップはメインフレームに転送しません。

画面管理プログラムでは,次の処理を行います。

  1. 一次ウィンドウから入力された入力論理マップ中の,イベント通知コードが格納されている位置から,長さ分の内容をEBCDIKコードで判定します。
  2. 二次ウィンドウの表示を指示するイベント通知コードであれば,二次ウィンドウを表示します。

二次ウィンドウを表示するときに使用する出力論理マップは,EBCDIKコードおよびKEIS'83コードでデータを格納します。また,二次ウィンドウからの入力データもEBCDIKコードおよびKEIS'83コードで格納されています。そのため,画面管理プログラムから表示させる二次ウィンドウは,論理データを極力使用しないものにしてください。

(4) PC上のほかのAPを呼び出す

一次ウィンドウから入力されたイベント通知コードを判定して,PC上のAPを起動する処理を分散します。

画面管理プログラムで,次の処理を行います。

  1. 一次ウィンドウから入力された入力論理マップ中の,イベント通知コードが格納されている位置から,長さ分の内容をEBCDIKコードで判定します。
  2. APの起動を指示するイベント通知コードであれば,該当するAPを起動します。

(5) Windowsのヘルプ機能を呼び出す

一次ウィンドウから入力されたイベント通知コードを判定して,Windowsのヘルプを呼び出す処理を分散します。

画面管理プログラムで,次の処理を行います。

  1. 一次ウィンドウから入力された入力論理マップ中の,イベント通知コードが格納されている位置から,長さ分の内容をEBCDIKコードで判定します。
  2. ヘルプの呼び出しを指示するイベント通知コードであれば,WindowsAPIのWinHelpを呼び出してください。

画面管理プログラムをCOBOLで作成している場合には,WINHELP.EXEの引数としてヘルプファイル名を指定してください。COBOLでのコーディング例を次に示します。

(例)
[図データ]