PC上のGUI画面を使用して,メインフレーム上のAPを実行する場合のユーザ業務例(XDM/DCCM3オンライン,またはDCCM3オンライン),およびメインフレーム上のAPと,PC上の画面管理プログラムとのインタフェースについて説明します。
ここで前提とするシステムは,メインフレームのOSをVOS3またはVOS1とし,メインフレーム上のAPとPCは1対1になる構成とします。メインフレームとPCとの通信は拡張ホストアクセスを利用し,PC側で使用する画面管理プログラムは「ONLNPROC.C」です。
GUI画面を使用したユーザ業務例として,受注データ処理,および受注伝票発行業務処理を想定します。ここでは,受注伝票発行業務画面を使用した受注データの修正について,作業の流れとインタフェースの仕組みおよび画面管理プログラムのコーディング例を示します。
画面および作業の遷移を次の図に示します。
図B-1 GUI画面を使用した受注伝票発行業務例
受注伝票発行業務画面の受注データ修正の処理の流れを次に示します。
*********************************************************
* 受注伝票発行業務プログラム
*
* (ディスプレイ仮想端末オープン)
*********************************************************
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.
*********************************************************
* 受注伝票発行業務プログラム
*
* (メニュー画面表示)
*********************************************************
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.
*********************************************************
* 受注伝票発行業務プログラム
*
* (ディスプレイ仮想端末クローズ)
*********************************************************
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.
*********************************************************
* 受注伝票発行業務プログラム
*
* (業務終了)
*********************************************************
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.
標準的なオンライン処理を行う画面管理プログラムのサンプル「ONLNPROC.C」について説明します。
2,920バイトを超えるデータをやり取りするための画面管理プログラムのサンプル「ONLNPRC2.C」について説明します。
対話処理を行うための画面管理プログラムのサンプル「TSSPROC.C」について説明します。
TP1/Client/Pと連携する画面管理プログラムのサンプル「TPCLPROC.C」について説明します。
TP1/Client/Pと連携する画面管理プログラムのサンプル「TPCLPRC2.C」について説明します。
COBOLで作成した画面管理プログラムのサンプル「ONLNPRC2.CBL」について説明します。