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

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

付録B.4 プログラム例

<この項の構成>
(1) メインフレーム上のAPの例
(2) PC上の画面管理プログラムの例

(1) メインフレーム上のAPの例

PC上のGUI画面を使用して,メインフレーム上のAPを実行する場合のユーザ業務例(XDM/DCCM3オンライン,またはDCCM3オンライン),およびメインフレーム上のAPと,PC上の画面管理プログラムとのインタフェースについて説明します。

ここで前提とするシステムは,メインフレームのOSをVOS3またはVOS1とし,メインフレーム上のAPとPCは1対1になる構成とします。メインフレームとPCとの通信は拡張ホストアクセスを利用し,PC側で使用する画面管理プログラムは「ONLNPROC.C」です。

(a) 業務の流れ

GUI画面を使用したユーザ業務例として,受注データ処理,および受注伝票発行業務処理を想定します。ここでは,受注伝票発行業務画面を使用した受注データの修正について,作業の流れとインタフェースの仕組みおよび画面管理プログラムのコーディング例を示します。

画面および作業の遷移を次の図に示します。

図B-1 GUI画面を使用した受注伝票発行業務例

[図データ]

受注伝票発行業務画面の受注データ修正の処理の流れを次に示します。

  1. ユーザは,PC上のCommuniNet端末を起動しメインフレームへログインして,メインフレームのXDM/DCCM3と接続します。その後,起動したいトランザクション名を指定して,受注伝票発行業務のAPを起動させます。
  2. 「受注伝票発行業務画面」が表示されます。プッシュボタンを押して,業務を選択します。
  3. 「受注伝票発行業務画面」で「受注データ修正」をクリックすると,「受注データ修正:ヘッダ画面(一次ウィンドウ)」が表示されます。伝票番号の欄に「D0012345」を入力すると自動送信され,対応する顧客名,顧客コード,担当者名,担当者コード,および支店コードが表示されます。
  4. 「受注データ修正:ヘッダ画面」のメニューバー「アクション」のプルダウンメニュー「明細表示」を選択すると,「受注データ修正:明細画面」が表示されます。「受注データ修正:明細画面」では,全受注データを更新します。
  5. 「受注データ修正画面」のメニューバー「アクション」のプルダウンメニュー「印刷」を選択すると,受注伝票の帳票が印刷されます。
(b) 受注伝票発行業務プログラム(仮想端末のオープン)

フローチャート
仮想端末をオープンする受注伝票発行業務プログラムのフローチャートを次に示します。
[図データ]

コーディング
仮想端末をオープンする受注伝票発行業務プログラムのコーディングを次に示します。
*********************************************************
*    受注伝票発行業務プログラム                         
*                                                       
* (ディスプレイ仮想端末オープン)                      
*********************************************************
 IDENTIFICATION    DIVISION.
 PROGRAM-ID.       UP01.
 
 ENVIRONMENT       DIVISION.
 
 DATA              DIVISION.
 WORKING-STORAGE   SECTION.
 
*  送受信用メッセージテーブル
     COPY             X3TRNTBL.
 
*  トランザクションコード&要求種別
     COPY             UPTBL.
 
*  通信節
 COMMUNICATION  SECTION.
 CD  MSG  FOR  I-O
     MAP  NAME  IS  MAP-NAME
     STATUS  KEY  IS  ERR-CODE.
 
*********************************************************
 PROCEDURE          DIVISION.
*********************************************************
*  受信
*********************************************************
* メッセージ受信         SECTION.
*********************************************************
  RECEIVE  MSG  FIRST  SEGMENT  INTO  XMAP-RECV.
 
*  業務開始
   MOVE  '00000'    TO  ERR-CODE
   MOVE  '%MMC1R  ' TO  MAP-NAME
 
*  メッセージ設定
   MOVE  2920       TO  XMAP-SEND-MAPL
   MOVE  XMAP-SENDT TO  XMAP-SEND
   MOVE  UAPNAME    TO  XMAP-SEND-UAP
   MOVE  TRNCODE1   TO  XMAP-SEND-TRN
   MOVE  REQ-OPEN   TO  XMAP-SEND-REQ
   MOVE  DSPTERM    TO  XMAP-SEND-TNAME
   MOVE  ALL X'00'  TO  XMAP-SEND-PMAPNAME
   MOVE  +0         TO  XMAP-SEND-INLNG
 
*  送信
*********************************************************
 メッセージ送信         SECTION .
*********************************************************
   SEND  MSG  FROM  XMAP-SEND  WITH  EMI.
 
   GOBACK.
(c) 受注伝票発行業務プログラム(メニュー画面表示)

フローチャート
メニュー画面を表示する受注伝票発行業務プログラムのフローチャートを次に示します。
[図データ]

コーディング
メニュー画面を表示する受注伝票発行業務プログラムのコーディングを次に示します。
*********************************************************
*   受注伝票発行業務プログラム                          
*                                                       
*  (メニュー画面表示)                                 
*********************************************************
 IDENTIFICATION    DIVISION.
 PROGRAM-ID.       UP12. 
 
ENVIRONMENT       DIVISION.
 
 DATA              DIVISION.
 WORKING-STORAGE   SECTION.
 
*  論理マップ
     COPY             MAPG01O.
     COPY             MAPG01I.
 
*  送受信用メッセージテーブル
     COPY             X3TRNTBL.
 
*  動的変更テーブル
     COPY             X3MODTBL.
 
*  トランザクションコード&要求種別
     COPY             UPTBL.
 
*  通信節
 COMMUNICATION  SECTION.
 CD  MSG  FOR  I-O
     MAP  NAME  IS  MAP-NAME
     STATUS  KEY  IS  ERR-CODE.
 
*********************************************************
 PROCEDURE          DIVISION.
*********************************************************
*  受信
  RECEIVE  MSG  FIRST  SEGMENT  INTO  XMAP-RECV.
 
*********************************************************
   ユーザ業務処理部
*********************************************************
*  業務開始
   MOVE  '00000'    TO  ERR-CODE
   MOVE  '%MMC1R  ' TO  MAP-NAME
 
   MOVE  ALL X'3F'  TO  MAPG01G
   MOVE  XMAP-CNTRL1 TO MAPG01-CNTRLO
 
*  メッセージ設定
   MOVE  2920       TO  XMAP-SEND-MAPL
   MOVE  XMAP-SENDT TO  XMAP-SEND
   MOVE  UAPNAME    TO  XMAP-SEND-UAP
   MOVE  TRNCODE3   TO  XMAP-SEND-TRN
   MOVE  REQ-TRAN   TO  XMAP-SEND-REQ
   MOVE  DSPTERM    TO  XMAP-SEND-TNAME
   MOVE  'MAPG01ND' TO  XMAP-SEND-PMAPNAME
   MOVE  MAPG01S    TO  XMAP-SEND-INLNG
   COMPUTE  XMAP-SEND-MAPL = MAPG01L - 4
   MOVE  MAPG01O    TO  XMAP-SEND-MAPO
 
*  送信
   COMPUTE  XMAP-SEND-LL2 = XMAP-SEND-LL2 + XMAP-SEND-MAPL
   COMPUTE  XMAP-SEND-LL  = XMAP-SEND-LL  + XMAP-SEND-MAPL
   SEND  MSG  FROM  XMAP-SEND  WITH  EMI.
 
   GOBACK.
(d) 受注伝票発行業務プログラム(仮想端末クローズ)

フローチャート
仮想端末をクローズする受注伝票発行業務プログラムのフローチャートを次に示します。
[図データ]

コーディング
仮想端末をクローズする受注伝票発行業務プログラムのコーディングを次に示します。
*********************************************************
*    受注伝票発行業務プログラム                         
*                                                       
*  (ディスプレイ仮想端末クローズ)                     
*********************************************************
 IDENTIFICATION    DIVISION.
 PROGRAM-ID.       UP20. 
 
 ENVIRONMENT       DIVISION.
 
 DATA              DIVISION.
 WORKING-STORAGE   SECTION.
 
*  送受信用メッセージテーブル
     COPY             X3TRNTBL.
 
*  トランザクションコード&要求種別
     COPY             UPTBL.
*  通信節
 COMMUNICATION  SECTION.
 CD  MSG  FOR  I-O
 MAP  NAME  IS  MAP-NAME
 STATUS  KEY  IS  ERR-CODE.
*********************************************************
 PROCEDURE          DIVISION.
*********************************************************
 
*  受信
*********************************************************
 メッセージ受信         SECTION.
*********************************************************
  RECEIVE  MSG  FIRST  SEGMENT  INTO  XMAP-RECV.
 
*  業務開始
   MOVE  '00000'    TO  ERR-CODE
   MOVE  '%MMC1R  ' TO  MAP-NAME
 
*  メッセージ設定
   MOVE  2920       TO  XMAP-SEND-MAPL
   MOVE  XMAP-SENDT TO  XMAP-SEND
   MOVE  UAPNAME    TO  XMAP-SEND-UAP
   MOVE  TRNCODE8   TO  XMAP-SEND-TRN
   MOVE  REQ-CLOS   TO  XMAP-SEND-REQ
   MOVE  DSPTERM    TO  XMAP-SEND-TNAME
   MOVE  ALL X'00'  TO  XMAP-SEND-PMAPNAME
   MOVE  +0         TO  XMAP-SEND-INLNG
 
*  送信
*********************************************************
 メッセージ送信         SECTION.
*********************************************************
   SEND  MSG  FROM  XMAP-SEND  WITH  EMI .
 
   GOBACK.
(e) 受注伝票発行業務プログラム(業務終了)

フローチャート
受注伝票発行業務プログラムの業務終了部分のフローチャートを次に示します。
[図データ]

コーディング
受注伝票発行業務プログラムの業務終了部分のフローチャートを次に示します。
*********************************************************
*    受注伝票発行業務プログラム
*                              
*  (業務終了)                                       
*********************************************************
 IDENTIFICATION    DIVISION.
 PROGRAM-ID.       UP21.
 
 ENVIRONMENT       DIVISION.
 
 DATA              DIVISION.
 WORKING-STORAGE   SECTION.
 
*  送受信用メッセージテーブル
     COPY             X3TRNTBL.
 
*  トランザクションコード&要求種別
     COPY             UPTBL.
*  通信節
 COMMUNICATION  SECTION.
 CD  MSG  FOR  I-O
     MAP  NAME  IS  MAP-NAME
     STATUS  KEY  IS  ERR-CODE.
 
*********************************************************
 PROCEDURE          DIVISION.
*********************************************************
*  受信
*********************************************************
 メッセージ受信         SECTION.
*********************************************************
  RECEIVE  MSG  FIRST  SEGMENT  INTO  XMAP-RECV.
 
*  業務開始
   MOVE  '00000'    TO  ERR-CODE
   MOVE  '%MMC1S  ' TO  MAP-NAME
 
*  メッセージ設定
   MOVE  2920       TO  XMAP-SEND-MAPL
   MOVE  XMAP-SENDT TO  XMAP-SEND
   MOVE  UAPNAME    TO  XMAP-SEND-UAP
   MOVE  REQ-END    TO  XMAP-SEND-REQ
 
*  送信
*********************************************************
 メッセージ送信         SECTION.
*********************************************************
   MOVE  +14        TO  XMAP-SEND-LL2
   MOVE  XMAP-SEND-LL = XMAP-SEND-LL1 + XMAP-SEND-LL2 + 4
   SEND  MSG  FROM  XMAP-SEND  WITH  EMI.
 
   GOBACK.

(2) PC上の画面管理プログラムの例

(a) 拡張ホストアクセスで2,920バイト以内のデータをやり取りする

標準的なオンライン処理を行う画面管理プログラムのサンプル「ONLNPROC.C」について説明します。

概要
XDM/DCCM3またはDCCM3を使用するメインフレーム上のAPと,PC上のXMAP3との間の論理マップデータのやり取りを中継します。なお,「ONLNPROC.C」で一度に転送できるデータは,2,920バイトまでです。

フローチャート
「ONLNPROC.C」のフローチャートを次に示します。
[図データ]
(b) 拡張ホストアクセスで2,920バイトを超えるデータをやり取りする

2,920バイトを超えるデータをやり取りするための画面管理プログラムのサンプル「ONLNPRC2.C」について説明します。

概要
XDM/DCCM3またはDCCM3を使用するメインフレーム上のAPと,PC上のXMAP3との間の論理マップデータのやり取りを中継します。なお,2,920バイトを超えるデータを転送するときは,継続入力命令または継続出力命令を使用して,2,920バイトずつに区切って転送し,最後に残った部分を入出力命令または出力命令で転送します。

フローチャート
「ONLNPRC2.C」のフローチャートを次に示します。
[図データ]
(c) 対話処理

対話処理を行うための画面管理プログラムのサンプル「TSSPROC.C」について説明します。

概要
TIOP3を使用するメインフレーム上のAPと,PC上のXMAP3との間の論理マップデータのやり取りを中継します。なお,「TSSPROC.C」で一度に転送できる論理マップのデータは2,920バイトまでです。

フローチャート
「TSSPROC.C」のフローチャートを次に示します。
[図データ]
(d) TP1/ClientによるMPPの処理

TP1/Client/Pと連携する画面管理プログラムのサンプル「TPCLPROC.C」について説明します。

概要
XDM/DCCM3を使用するメインフレーム上のAPと,PC上のXMAP3との間の論理マップデータのやり取りを中継します。なお,TP1/Client/Pを使用する場合,一度に2GBまでのデータを転送できるので,継続入出力などの処理は必要ありません。

フローチャート
「TPCLPROC.C」のフローチャートを次に示します。
[図データ]
(e) TP1/ClientによるBMPの処理

TP1/Client/Pと連携する画面管理プログラムのサンプル「TPCLPRC2.C」について説明します。

概要
DCCM3/TCPを使用するメインフレーム上のAPから,PC上のXMAP3への論理マップデータの送信を中継します。なお,TP1/Client/Pを使用する場合,PCからメインフレームには送達確認メッセージだけを送信します。

フローチャート
「TPCLPRC2.C」のフローチャートを次に示します。
[図データ]
(f) COBOLによる画面管理プログラム

COBOLで作成した画面管理プログラムのサンプル「ONLNPRC2.CBL」について説明します。

概要
XDM/DCCM3またはDCCM3を使用するメインフレーム上のAPと,PC上のXMAP3との間の論理マップデータのやり取りを中継します。なお,2,920バイトを超えるデータを転送するときは,継続入力命令または継続出力命令を使用して,2,920バイトずつに区切って転送し,最後に残った部分を入出力命令または出力命令で転送します。

フローチャート
「ONLNPRC2.CBL」のフローチャートを次に示します。
[図データ]