画面・帳票サポートシステム XMAP3 プログラミングガイド 画面編

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

7.2.4 CALL文による方法

ここでは,COBOLのCALLインタフェースによってマッピングライブラリを使用する方法を説明します。

<この項の構成>
(1) 環境部
(2) CALL文の発行順序
(3) CALL命令

(1) 環境部

CALLインタフェースを使用する場合の環境部(ENVIRONMENT DIVISION)の定義を次に示します。

[図データ]

一意名1は,任意に設定してください。
環境部に上記の指定をした場合には,コンパイル時に次の指定をする必要があります。
  1. コンパイラオプションに次の指定をする。
    COBOL2002の場合
      '-Comp5'
      '-JPN,Alnum'
    COBOL85の場合
      '-X5'
      '-Na'
  2. リンカオプションに次の指定をする。
    リンカオプション:指定しない
    インポートライブラリ/ユーザ指定ライブラリ:
      XMAP3インストール先\LIB\X3MWDR32.LIB
       (COBOL2002,COBOL85 Version 7およびVersion 6の場合)
      XMAP3インストール先\LIB\V3Compatible\X3MWDR32.LIB
       (COBOL85 Version 5.0の場合)

APに上記のコーディングを追加しない場合は,コンパイル時に次の指定をする必要があります。

  1. エディタを使用してファイルを作成する。
    ファイル内容   :jsvwadrv
    ファイル名    :XXXX.cbw(XXXXは任意)
    ファイルの格納場所:APと同じフォルダ
  2. コンパイラオプションに次の指定をする。
    COBOL2002の場合
      '-Comp5'
      '-StdCall'
      '-JPN,Alnum'
    COBOL85の場合
      '-X5'
      '-Cp'
      '-Na',
  3. リンカオプションに次の内容を指定する。
    リンカオプション:指定しない
    インポートライブラリ/ユーザ指定ライブラリ:
      XMAP3インストール先\LIB\X3MWDR32.LIB
       (COBOL2002,COBOL85 Version 7およびVersion 6の場合)
      XMAP3インストール先\LIB\V3Compatible\X3MWDR32.LIB
       (COBOL85 Version 5.0の場合)

(2) CALL文の発行順序

マッピングライブラリの機能と発行順序を次の図に示します。

図7-8 マッピングライブラリの機能と発行順序

[図データ]

(3) CALL命令

CALL命令の形式と発行順序を次に示します。

[図データ]

  1. XMAP-COM
    共通インタフェース領域を指定します。形式の詳細を次の表に示します。この領域は,画面を出力したい端末単位に作成し,オープンしたときの領域をクローズ要求まで引き継いで使用します。また,次に示す各要求時にマッピング,および入出力に必要な情報を代入します。
    • オープン要求時 :仮想端末名,通信種別を指定する。
    • 出力要求時   :物理マップ名を指定する。
    • 入力要求時   :入力論理マップ長を指定する。

      表7-3 共通インタフェース領域の形式(XMAP-COM,COBOL)

      データ項目名 長さ(位置) データ形式 指定内容(データ名)
      アイキャッチャ 4 X(4) '*XP△'とする(XMAP-COM-ID)。
      リターンコード 2(4) 9(4)COMP-5 2進形式で格納(XMAP-COM-RTN)。
      リターンコード詳細
      (画面入出力時のリターンコード)
      2(6) 9(4)COMP-5 2進形式で格納(XMAP-COM-RSN)。
      未使用 3(8) X(3) (00)16とする(XMAP-COM-RSV1)。
      id区分 1(11) X 必ず'I'とする(XMAP-COM-ITYPE)。
      仮想端末名称 8(12) X(8) スタンドアロンの場合,標準の「DSP001」を指定する。C/Sシステムの場合,出力先の仮想端末名を指定する(XMAP-COM-TNAME)。
      未使用 4(20) X(4) (00)16とする(XMAP-COM-RSV2)
      通信種別 4(24) X(4) ディスプレイ要求時は'BWS△'とする(XMAP-COM-MSG)。
      未使用 44(28) X(44) (00)16とする(XMAP-COM-RSV3)。
      マップ名称 8(72) X(8) 物理マップ名を左詰めでデバイスID付きで指定する。残りは空白(XMAP-COM-MAPNAME)。
      未使用 8(80) X(8) (00)16とする(XMAP-COM-RSV4)。
      入力論理マップ長 4(88) S9(8)
      COMP-5
      入力論理マップ長を指定する(XMAP-COM-INLNG)。
      未使用 68(92) X(68) (00)16とする(XMAP-COM-RSV5)。
  2. XMAP-REQ
    要求インタフェース領域を指定します。形式を次の表に示します。この領域は,必ず指定してください。この領域を指定した内容によって,要求種別が決まります。

    表7-4 要求インタフェース領域の形式(XMAP-REQ,COBOL)

    データ項目名 長さ
    (位置)
    データ形式 指定内容(データ名)
    要求種別 4 X(4) 'OPEN':オープン要求
    'CLOS':クローズ要求
    'SEND':出力要求
    'RECV':入力要求
    'MDO△':オプション設定要求
    (XMAP-REQ-TYPE)
    RECEIVE
    オプション
    1(4) X 'F':入力要求時
    '△':上記以外(XMAP-REQ-OPT1)
    SEND
    オプション
    1(5) X '1':出力要求時
    '△':上記以外(XMAP-REQ-OPT2)
    未使用 2(6) X(2) '△△'とする(XMAP-REQ-RSV)
  3. データ名3
    • 出力要求時   :出力論理マップを指定する。
    • 入力要求時   :入力論理マップを指定する。
    • オープン要求時 :オープンインタフェース領域を指定する。
    形式の詳細を次の表に示します。この領域は必ず指定してください。

    表7-5 オープンインタフェース領域の形式(XMAP-OPN,COBOL)

    データ項目名 長さ
    (位置)
    データ形式 指定内容(データ名)
    データ有無
    コード
    使用選択
    1 X '1' :データ有無コードを指定する
    その他 :データ有無コードを指定しない(標準値「1F」を仮定)
    (XMAP-OPN-DCODE-SET)
    データ有無
    コード
    1(1) X データ有無コードを指定する場合,2桁の16進数(00〜FF)で指定する
    (XMAP-OPN-DCODE)
    未使用 2(2) X(2) '△△'とする(XMAP-OPN-RSV)

    なお,データ有無コード使用選択項目でデータ有無コードを無効にする指定をした場合は,標準値「1F」が仮定されます。


  4. データ名4
    オプション設定要求時は,マッピングインタフェース領域を指定します。形式の詳細を次の表に示します。なお,マッピングオプションを指定しない場合は,「0」を仮定します。

    表7-6 マッピングインタフェース領域の形式(XMAP-MDO,COBOL)

    データ項目名 長さ
    (位置)
    データ形式 指定内容(データ名)
    マッピング
    オプション
    大分類
    4 9(8)COMP-5 XMAP-MDO-SFLDの内容を代入する
    (XMAP-MDO-OPT1)
    マッピング
    オプション
    小分類
    (MAPPING MODE句相当)
    4(4) 9(8)COMP-5 XMAP-MDO-MAPFLD
    XMAP-MDO-PHFLD
    XMAP-MDO-LOGFLD
    (XMAP-MDO-OPT2)

    注※
    データ名とマッピングオプションは次のように対応しています。なお,マッピングオプションの詳細については「1.5.3(1) マッピングオプション」を参照してください。
    ・MAPFLD:マージ
    ・PHFLD:物理マップだけ
    ・LOGFLD:論理マップだけ

インタフェース領域の取り込み方法
XMAP3が提供しているインタフェース領域(JSVWATBL.cbl)をAPに取り込む場合,COBOLのWORKING-STORAGE SECTION,またはLINKAGE SECTIONにCOPY文を指定します。また,コンパイルする前にJSVWATBL.cblのフォルダ名をCBLLIBに設定しておく必要があります。
インタフェース領域を次の図に示します。

図7-9 インタフェース領域

[図データ]

オープン要求
CALL命令を使用する場合,画面を表示したい端末に付けた仮想端末名単位にオープン要求をします。複数の仮想端末(ディスプレイ)をオープン要求する場合,インタフェース領域は,仮想端末ごとに準備してください。一つのAP(プロセス)内で同時にオープンできる端末数の上限は15個です。
(例)
[図データ]

オプション設定要求
仮想端末へ画面表示をする場合,マッピングオプションを指定できます。オープン要求で使用した共通インタフェースを引き継いで使用します。
(例)
[図データ]

出力要求
オープン要求した仮想端末へ画面を表示します。オープン要求で使用した共通インタフェース領域を引き継いで使用します。
(例)
[図データ]

入力要求
入力要求によって,画面から入力した情報をAPへ代入します。画面表示要求で使用したインタフェース領域を引き継いで使用します。
(例)
[図データ]

クローズ要求
仮想端末をクローズします。オープン要求,出力要求,および入力要求で使用したインタフェースを引き継いで使用します。
(例)
[図データ]