5.2.1 XDM/DCCM3でのインタフェース(CommuniNet使用時)

<この項の構成>
(1) 論理マップの取り込み
(2) メッセージテーブルの形式
(3) 送受信メッセージとAPの連携

(1) 論理マップの取り込み

VOS3とPCに処理を分散する環境では,VOS3とPC間で論理マップのデータをやり取りします。このとき論理マップは,COPY文でVOS3のAPに取り込まれます。COPY文は,APのWORKING-STORAGE SECTIONまたはLINKAGE SECTIONに指定します。ただし,論理マップ中に定数を展開させている場合は,LINKAGE SECTIONには取り込めません。

(例)
[図データ]

(2) メッセージテーブルの形式

分散処理をするため,メッセージテーブル,入力論理マップおよび出力論理マップをメインフレーム上のAPに取り込みます。入力または出力論理マップのデータ長が2,920バイト以下のときのメッセージテーブルは「XMAP3インストールフォルダ¥INCLUDE¥X3TRNTBL」です。また,入力または出力論理マップのデータ長が2,920バイトを超えるときのメッセージテーブルは「XMAP3インストールフォルダ¥INCLUDE¥X3TRNTB2」です。

メッセージテーブルの形式を表5-2および表5-3に示します。

表5-2 受信メッセージテーブルの形式

領域エリア名称長さ
(位置)
データ形式データ内容
ヘッダXMAP-RECV-LL2(0)S9(4)COMP受信テーブル長
XMAP-RECV-RR2(2)S9(4)COMP予備
XMAP-RECV-TRNCD8(4)X(8)トランザクションコード
XMAP-RECV-SPACE1(12)X予備
XMAP-RECV-LL12(13)S9(4)COMP予備
XMAP-RECV-LL22(15)S9(4)COMP通信データ長
ユーザ
データ
種別XMAP-RECV-TRN8(17)X(8)トランザクションコード
XMAP-RECV-REQ4(25)X(4)要求種別
通信論理マップXMAP-RECV-
MHLNG
2(29)S9(4)COMP通信論理マップ長
XMAP-RECV-RSV12(31)S9(4)COMP予備
XMAP-RECV-RTN2(33)9(4)COMPリターンコード
XMAP-RECV-RSN2(35)9(4)COMPリターンコード詳細
XMAP-RECV-
TNAME
8(37)X(8)仮想端末名称
XMAP-RECV-
PMAPNAME
8(45)X(8)物理マップ名称をEBCDIKコードでセット
XMAP-RECV-
INLNG
2(53)S9(4)COMP入力論理マップ長の最大値
XMAP-RECV-OPT1(55)Xマッピングオプション
XMAP-RECV-
DCODE
1(56)Xデータ有無コード
XMAP-RECV-RSV236(57)X(36)予備
(00)16でヌルクリア
入力論理マップXMAP-RECV-MAPS2(93)S9(4)COMP入力論理マップ長
XMAP-RECV-MAP02(95)S9(4)COMP予備
XMAP-RECV-MAPK0~2,920
(97)
X入力論理データ

表5-3 送信メッセージテーブルの形式

部分エリア名称長さ
(位置)
データ形式データ内容
ヘッダXMAP-SEND-LL2(0)S9(4)COMP送信テーブル長
XMAP-SEND-RR2(2)S9(4)COMP予備
XMAP-SEND-LL12(4)S9(4)COMPAP長
XMAP-SEND-UAP8(6)X(8)AP名
XMAP-SEND-LL22(14)S9(4)COMP通信データ長
ユーザ
データ
種別XMAP-SEND-TRN8(16)X(8)トランザクションコード
XMAP-SEND-REQ4(24)X(4)要求種別
通信論理マップXMAP-SEND-
MHLNG
2(28)S9(4)COMP通信論理マップ長
XMAP-SEND-RSV12(30)S9(4)COMP予備
XMAP-SEND-RTN2(32)9(4)COMPリターンコード
XMAP-SEND-RSN2(34)9(4)COMPリターンコード詳細
XMAP-SEND-
TNAME
8(36)X(8)仮想端末名称
XMAP-SEND-
PMAPNAME
8(44)X(8)物理マップ名称をEBCDIKコードでセット
XMAP-SEND-
INLNG
2(52)S9(4)COMP入力論理マップ長の最大値
XMAP-SEND-OPT1(54)Xマッピングオプション
XMAP-SEND-
DCODE
1(55)Xデータ有無コード
XMAP-SEND-RSV236(56)X(36)予備
(00)16でヌルクリア
出力論理マップXMAP-SEND-MAPL2(92)S9(4)COMP出力論理マップ長
XMAP-SEND-MAPZ2(94)S9(4)COMP予備
XMAP-SEND-MAPG0~2,920
(96)
X出力論理データ

(3) 送受信メッセージとAPの連携

メインフレームとPCに処理を分散する環境では,メインフレーム側からPC側へ,どのようにして入出力命令が渡されているのかを,命令発行順序を示して説明します。

命令発行時に使用するSEND文およびRECEIVE文の形式については,マニュアル「データマネジメントシステム XDM E2系 プログラム作成の手引(XDM/BASE・DCCM3・TM2)」を参照してください。

(a) メインフレームからPC上の画面・帳票に対する送受信命令
  1. オープン命令:SEND文でPCにオープン命令を出す。
  2. 出力命令:SEND文で送信メッセージテーブルを使用して,PCに表示命令を出す。
  3. 入力命令:RECEIVE文で受信メッセージテーブルを使用して,PCからデータを受信する。出力および入力するデータ数だけ,2.と3.の処理を繰り返す。
  4. クローズ命令:SEND文でPCにクローズ命令を出す。
  5. 終了命令:SEND文でPCに終了命令を出す。
(b) 各命令と送受信メッセージの関連

それぞれの命令発行時とメッセージテーブルの設定値の関連を表5-4,表5-5,表5-6および表5-7に示します。

表5-4 オープン命令発行時の送信メッセージの設定値

部分データ項目名指定内容
ヘッダ送信テーブル長92とする。
予備(0000)16とする。
AP長10とする。
AP名PC側の画面管理プログラムのEXE名称をセットする。
通信データ長78とする。
ユーザ
データ
種別トランザクションコード次に起動するトランザクション名。
要求種別(10000001)16とする(オープン要求)。
通信論理マップ通信論理マップ長64とする。
予備(0000)16とする。
リターンコード(0000)16とする。
詳細コード(0000)16とする。
仮想端末名称X3MWHOSTに指定した仮想端末名称を指定する。
物理マップ名(00)16でヌルクリアする。
入力論理マップ長の最大値(0000)16とする。
マッピングオプション(00)16とする。
データ有無コードデータ有無コードを指定する。
予備(00)16でヌルクリアする。
注※
仮想端末の画面をオープンするときに,出力先が一つだけならば,指定を省略できます。指定を省略する場合,(40)16で8バイトクリアしてください。

表5-5 クローズ命令発行時の送信メッセージの設定値

部分データ項目名指定内容
ヘッダ送信テーブル長92とする。
予備(0000)16とする。
AP長10とする。
AP名PC側の画面管理プログラムのEXE名称をセットする。
通信データ長78とする。
ユーザ
データ
種別トランザクションコード次に起動するトランザクション名。
要求種別(11000001)16とする(クローズ要求)。
通信論理マップ通信論理マップ長64とする。
予備(0000)16とする。
リターンコード(0000)16とする。
詳細コード(0000)16とする。
仮想端末名称X3MWHOSTに指定した仮想端末名称を指定する。
物理マップ名設定しない。
入力論理マップ長の最大値設定しない。
マッピングオプション設定しない。
データ有無コード設定しない。
予備(00)16でヌルクリアする。
注※
クローズする仮想端末名称を指定します。対応するオープン命令を発行したときと同じ仮想端末名称を指定してください。

表5-6 入力命令発行時の通信論理マップ部と入力論理マップ部の設定値(受信メッセージテーブルを使用)

論理マップ名データ項目名指定内容
通信論理マップ通信論理マップ長何も設定しない。
予備
リターンコード
詳細コード
仮想端末名称
物理マップ名
入力論理マップ長の最大値
マッピングオプション
データ有無コード
予備
入力論理マップXMAP3が設定するので,設定する必要はない。受信後参照する場合は入力論理マップにコピーすること。

入力命令では,受信テーブルのアドレスを渡します。指定内容は,入力された時点で,すでに指定されています。

表5-7 出力命令発行時の通信論理マップ部と出力論理マップ部の設定値(送信メッセージテーブルを使用)

論理マップ名データ項目名指定内容
通信論理マップ送信テーブル長92+出力論理データ長 をセットする。
予備(0000)16とする。
AP長10とする。
AP名PC側の画面管理プログラムのEXE名称をセットする。
通信データ長78+出力論理データ長をセットする。
トランザクションコード次に起動するトランザクション名。
要求種別(12000003)16とする。
通信論理マップ長64とする。
予備(0000)16とする。
リターンコード(0000)16とする。
詳細コード(0000)16とする。
仮想端末名称X3MWHOSTに指定した仮想端末名称を指定する。1
物理マップ名EBCDIKコードで入出力する物理マップ名を,デバイスIDを付けて,左詰めで指定する。残りは(40)16とする。
入力論理マップ長の最大値使用する入力論理マップの長さの最大値を指定する。
マッピングオプションスペースまたは'0':マージ※2
'2':論理マップだけ※3
'3':物理マップだけ※4
指定しない場合は(00)16でヌルクリアする。
データ有無コード設定しない。
予備(0000)16とする。
出力論理マップ論理マップ長出力論理マップ長を指定する。
予備(0000)16とする。
出力論理データ出力論理データを設定する。
注※1
出力先の仮想端末名称を指定します。対応するオープン命令を発行したときと同じ仮想端末名称を指定してください。
注※2
論理項目,または制御項目に指定したデータを使用して画面を表示します。ただし,表示属性の変更指示をしない項目の属性は,画面定義時に指定した表示属性となります。
注※3
論理項目,または制御項目に指定したデータを使用して画面を表示します。ただし,表示属性の変更指示をしない項目の属性は,前画面の表示属性となります。また,データの指定がない項目は,前画面のデータをそのまま表示します。
注※4
論理項目,または制御項目に指定したデータを無視して,画面定義時の情報だけで画面を表示します。