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


10.2.1 ソースプログラムの記述

APをCOBOLで作成する場合,XMAP3 Web実行環境ライブラリの呼び出しにはCALL文を使用します。

〈この項の構成〉

(1) 環境部の定義

CALL文を使用する場合,環境部(ENVIRONMENT DIVISION)の定義を次に示します。

ENVIRONMENT  DIVISION.
CONFIGURATION  SECTION.
    SPECIAL-NAMES.
    STDCALL  IS  呼び名1.
EXTERNAL-PROGRAM  SECTION.
    CALL-CONVENTION.
    'jsvwwlib'  IS  呼び名1.

注 呼び名1は,ユーザが任意に設定するデータ項目名です。

(2) jsvwwlibライブラリの呼び出し

CALL文によるXMAP3 Web実行環境ライブラリの呼び出し形式を次に示します。

CALL  'jsvwwlib'  USING  XMAP-WCOM
                         XMAP-WREQ
                         データ名3
                         データ名4
                         データ名5.

(3) jsvwwlibライブラリで使用するインタフェース領域

(a) XMAP-WCOM

XMAP-WCOMには,共通インタフェース領域を指定します。指定形式の詳細を次の表に示します。

表10‒1 XMAP-WCOMに指定する共通インタフェース領域

データ項目名

長さ

データ形式

データ名

指定内容

アイキャッチャ

4

X(4)

XMAP-WCOM-ID

'*WEB'

リターン値1

2(4)

9(4) COMP-5

XMAP-WCOM-RTN

リターン値は2進形式で返されます。

リターン値2

2(6)

9(4) COMP-5

XMAP-WCOM-RSN

未使用

3(8)

X(3)

XMAP-WCOM-RSV1

(00)16

id区分

1(11)

X

XMAP-WCOM-ITYPE

'I'

仮想端末名

8(12)

X(8)

XMAP-WCOM-TNAME

  • 画面の場合:すべて空白

  • 帳票の場合:仮想端末名※1

未使用

4(20)

X(4)

XMAP-WCOM-RSV2

(00)16

通信種別

4(24)

X(4)

XMAP-WCOM-MSG

画面の場合:'BWS△'

帳票の場合:'OWS△'

未使用

44(28)

X(44)

XMAP-WCOM-RSV3

(00)16

マップ名

8(72)

X(8)

XMAP-WCOM-MAPNAME

デバイスID※3付きの物理マップ名を左詰めで指定し,残りは空白を指定する

未使用

8(80)

X(8)

XMAP-WCOM-RSV4

(00)16

論理マップ長

4(88)

S9(8) COMP-5

XMAP-WCOM-LSGLNG

入出力論理マップ長または0※2

未使用

260(92)

X(260)

XMAP-WCOM-RSV5

(00)16

注※1

帳票の場合は,出力先となる仮想端末名を左詰めで指定し,残りは空白を指定します。

注※2

画面の場合:

・出力データの設定を要求する場合は,出力論理マップ長を指定します。

・入力データの取得を要求する場合は,入力論理マップ長を指定します。

帳票の場合:

・出力データの設定を要求する場合は,出力論理マップ長を指定します。

・入力データの取得を要求する場合は,0を指定します。

注※3

画面のデバイスIDについては「11.1.1(1) 通信記述項」を,帳票のデバイスIDについては「11.2.1(1) 通信記述項」を参照してください。

(b) XMAP-WREQ

XMAP-WREQには,要求インタフェース領域を指定します。指定形式の詳細を次の表に示します。

表10‒2 XMAP-WREQに指定する要求インタフェース領域

データ項目名

長さ

データ形式

データ名

指定内容

要求種別

4

X(4)

XMAP-WREQ-TYPE

要求別に指定する※1

オプション1

1(4)

X

XMAP-WREQ-OPT1

'F'

オプション2

1(5)

X

XMAP-WREQ-OPT2

'1'

未使用

2(6)

X(2)

XMAP-WREQ-RSV1

空白

オプション3

1(8)

X

XMAP-WREQ-OPT3

  • 画面の場合:空白

  • 帳票の場合:'1'または'2'※2

オプション4

1(9)

X

XMAP-WREQ-OPT4

'△':画面入出力/帳票出力を応答する

'E':ブラウザ側のXMAP3業務の終了を応答する

未使用

6(10)

X(6)

XMAP-WREQ-RSV2

空白とする

注※1

要求動作に応じて次の値を指定します。

要求動作

指定する値

XMAP3 Web実行環境ライブラリのオープン要求

'OPEN'

XMAP3 Web実行環境ライブラリのクローズ要求

'CLOS'

出力データの設定要求

'SEND'

入力データの取得要求

'RECV'

オプションの設定要求

'MDO△'(△は半角空白を表す)

注※2

帳票の場合の指定値と内容を次に示します。

指定値

内容

'1'

プリンタスプールに帳票を出力後,その印刷ドキュメントを完了(クローズ)する。通常は'1'を指定する。

'2'

プリンタスプールに登録されている,印刷ドキュメント中の1ページとして帳票を出力する。

印刷ドキュメントは完了(クローズ)しないで継続する。

帳票印刷セットアップでスプール書き出し単位を「1ページ毎」にした場合は,この指定は無効となり常に'1'(ドキュメントを完了(クローズ)する)となります。

(c) データ名3

XMAP3 Web実行環境ライブラリのオープン要求時にオープンインタフェース領域を指定します。データ名3に指定する詳細を次の表に示します。

表10‒3 データ名3に指定するオープンインタフェース領域

データ項目名

長さ

データ形式

データ名

指定内容

サーバ環境定義ファイル名

8

X(8)

XMAP-WOPN-SRVNAME

サーバ環境定義ファイル名を左詰めで指定し,残りは空白を指定する

未使用

8(8)

X(8)

XMAP-WOPN-RSV

空白を指定

注※

実行時に,指定したサーバ環境定義ファイルを「XMAP3インストールフォルダ\Web for TP1\ETC」から検索します。

データ名3に0を指定した場合や,サーバ定義ファイル名に8けたの空白を指定した場合は,サーバ環境定義ファイルとして「X3WEBSRV」を参照します。

・出力データ設定要求時

 出力論理マップを指定します。Webブラウザ側のXMAP3処理を終了する場合には0を指定します。

・入力データ取得要求時

 入力論理マップを指定します。ブラウザからの1回目の呼び出しや帳票印刷時など,入力論理マップが存在しない場合には0を指定します。

・オプション設定要求時

 必ず1を指定します。

(d) データ名4

出力データ設定要求時,データ名4には送信データ出力領域を指定します。入力データ設定要求時,データ名4には受信データ領域を指定します。また,オプション設定要求時,データ名4にはマッピングインタフェース領域(XMAP-WMDO)を指定します。データ名4に指定する内容を要求別に示します。

表10‒4 データ名4に指定する送信データ出力領域

データ項目名

長さ

データ形式

指定内容

出力領域長

4

S9(9) COMP

出力領域の長さ(n)を指定

出力領域

n(4)

X(n)

(00)16

送信データを格納するために必要な出力領域の大きさは,次に示す概算式で求められます。

出力領域サイズ(バイト)=(500+URL長※1×3+出力論理マップ長※2)×1.5
注※1

次に示すURLの長さを指します。

  • サーバ環境定義ファイルに指定したURL(環境設定ファイルパス(EtcPath)やデータファイルパス(DataPath)など)の最大長

  • SEND要求やCLOSE要求で指定する,次に呼び出すURLの最大長

注※2

APで使用する出力論理マップの最大長を指します。

それぞれ,URLの最大長は2,048バイト,出力論理マップの最大長は32,000バイトとなっているため,上記の概算式に従えば出力領域に必要な領域サイズの最大値は次のようになります。

(500+2,048×3+32,000)×1.5=57,966バイト
表10‒5 データ名4に指定する受信データ領域

データ項目名

長さ

データ形式

指定内容

受信データ長

4

S9(9) COMP

受信データの長さ(n)を指定

受信データ

n(4)

X(n)

TP1/WebのAPIで取得した受信データを指定

受信データを格納するために必要な領域の大きさは,次に示す概算式で求められます。

受信データサイズ(バイト)=120+(500+入力論理マップ長)×1.5
注※

APで使用する入力論理マップの最大長を指します。ただし,帳票の場合は0となります。

入力論理マップの最大長は32,000バイトとなっているため,上記の概算式に従えば入力領域に必要な領域サイズの最大値は次のようになります。

120+(500+32,000)×1.5=48,870バイト
表10‒6 データ名4に指定するマッピングインタフェース領域(XMAP-WMDO)

データ項目名

長さ

データ形式

データ名

指定内容

マッピングオプション大分類

4

9(8) COMP-5

XMAP-WMDO-OPT1

XMAP-WMDO-SFLDの内容を代入

マッピングオプション小分類

4(4)

9(8) COMP-5

XMAP-WMDO-OPT2

  • XMAP-WMDO-MAPFLDマージ

  • XMAP-WMDO-PHFLD物理マップだけ

  • XMAP-WMDO-LOGFLD論理マップだけ

(e) データ名5

データ名5には,出力データ設定要求時,次に呼び出すサービスのURLを指定します。SSL通信を使用する場合は,「https://」で始まるURLを指定してください。

注※

Webブラウザ側のXMAP3処理を終了後にWebブラウザを閉じる場合,要求インタフェース領域のオプション4に'E'を指定し,データ名5に0を指定します。

データ名5に指定する内容を次の表に示します。

表10‒7 データ名5に指定する次処理サービス領域

データ項目名

長さ

データ形式

指定内容

URLデータ長

4

9(8) COMP-5

URLデータの長さ(n)を指定

URLデータ

n(4)

X(n)

次回の呼び出し先URLを指定

注※

起動HTMLの業務開始URLに指定した,Webサーバ上のURLを指定してください。要求インタフェース領域のオプション4に'E'を指定した場合だけ,任意のWebサーバ上のURLを指定できます。

(4) jsvwwlibライブラリ使ったデータの受け渡し

(a) XMAP3 Web実行環境ライブラリのオープン要求

APのプロセス開始時に,XMAP3 Web実行環境ライブラリのオープン要求を発行します。

例1

APで共通のサーバ環境定義ファイルを使用する場合

INITIALIZE XMAP-WCOM          共通エリアの初期化
    REPLACING NUMERIC DATA BY ZERO
    ALPHANUMERIC DATA BY LOW-VALUE.
MOVE ALL SPACE TO XMAP-WREQ.      要求エリアの初期化
MOVE 'OPEN' TO XMAP-WREQ-TYPE.     XMAP3/Web for Cosminexusライブラリの
                              オープン要求の代入
MOVE '*WEB' TO XMAP-WCOM-ID.      IDの代入
MOVE 'I'    TO XMAP-WCOM-ITYPE.     ID区分の代入
CALL 'jsvwwlib' USING XMAP-WCOM     共通インタフェース領域
                      XMAP-WREQ     要求インタフェース領域
                      BY VALUE 0
                      BY VALUE 0
                      BY VALUE 0.
例2

AP別に,異なるサーバ環境定義ファイルを使用する場合

INITIALIZE XMAP-WCOM          共通エリアの初期化
    REPLACING NUMERIC DATA BY ZERO
    ALPHANUMERIC DATA BY LOW-VALUE.
MOVE ALL SPACE TO XMAP-WREQ.      要求エリアの初期化
MOVE ALL SPACE TO XMAP-WOPN.      オープンインタフェース領域の初期化
 
MOVE 'OPEN' TO XMAP-WREQ-TYPE.     XMAP3/Webライブラリのオープン要求の代入
MOVE '*WEB'     TO XMAP-WCOM-ID.      IDの代入
MOVE 'I'        TO XMAP-WCOM-ITYPE.     ID区分の代入
MOVE ファイル名 TO XMAP-WOPN-SRVNAME.    サーバ環境定義ファイル名
CALL 'jsvwwlib' USING XMAP-WCOM     共通インタフェース領域
                      XMAP-WREQ     要求インタフェース領域
                      XMAP-WOPN     オープンインタフェース領域
                      BY VALUE 0
                      BY VALUE 0.

注※ ユーザサービスプログラムごとに異なるサーバ環境定義を使用する場合は,「XMAP3インストールフォルダ¥ETC」下に,一意の名称でサーバ環境定義ファイルを用意してください。

(b) 入力データの取得要求

TP1/WebのAPIを使ってWebブラウザから取得した受信データを解析し,入力論理マップやリターンコードを取得します。XMAP3 Web実行環境ライブラリのオープン要求で使用したインタフェース領域の指定が必要です。

例1

画面出力後,Webブラウザからの応答

MOVE 'RECV'  TO XMAP-WREQ-TYPE.    入力データ取得要求の代入
MOVE MAP001S TO XMAP-WCOM-LSGLNG.   入力論理マップ長の代入
CALL 'jsvwwlib' USING XMAP-WCOM    共通インタフェース領域
                      XMAP-WREQ    要求インタフェース領域
                      MAP001I     入力論理マップ
                      WKAREA-I     ブラウザからの受信データ
                      BY VALUE 0.

注 入力データ取得要求が正常終了した場合,XMAP-WCOM-LSGLNGには取得した入力論理マップデータの長さが設定されます。

例2

帳票出力後,Webブラウザからの応答

MOVE 'RECV' TO XMAP-WREQ-TYPE.         入力データ取得要求の代入
MOVE 0      TO XMAP-WCOM-LSGLNG.        '0'の代入(必須)
CALL 'jsvwwlib' USING XMAP-WCOM        共通インタフェース領域
                      XMAP-WREQ        要求インタフェース領域
                      BY VALUE 0
                      BY REFERENCE WKAREA-I  ブラウザからの受信データ
                      BY VALUE 0.

(c) マッピングオプションの設定要求

Webブラウザへ画面を表示する場合,マッピングオプションを指定できます。XMAP3 Web実行環境ライブラリのオープン要求で使用したインタフェース領域の指定が必要です。

MOVE 'MDO '          TO XMAP-WREQ-TYPE.     オプション設定要求の代入
MOVE XMAP-WMDO-SFLD   TO XMAP-WMDO-OPT1.    マッピングオプション大分類の代入
MOVE XMAP-WMDO-LOGFLD TO XMAP-WMDO-OPT2.    マッピングオプション小分類の代入
CALL 'jsvwwlib' USING XMAP-WCOM         共通インタフェース領域
                      XMAP-WREQ         要求インタフェース領域
                      BY VALUE 1        '1'を指定(必須)
                      BY REFERENCE XMAP-WMDO  マッピングインタフェース領域
                      BY VALUE 0.

(d) 出力データの設定要求

Webブラウザ側での業務に対して,画面表示,または帳票印刷情報を設定した応答メッセージを生成します。XMAP3 Web実行環境ライブラリのオープン要求で使用したインタフェース領域の指定が必要です。

例1

画面出力データを設定した応答メッセージを生成する場合

MOVE 'SEND'     TO XMAP-WREQ-TYPE.    出力データ設定要求の代入
MOVE 'F'        TO XMAP-WREQ-OPT1.    'F'の代入(必須)
MOVE '1'        TO XMAP-WREQ-OPT2.    '1'代入(必須)
MOVE ' '        TO XMAP-WREQ-OPT4.    1けたの空白を代入(必須)
MOVE MAP001L    TO XMAP-WCOM-LSGLNG.   出力論理マップ長の代入
MOVE 'BWS '     TO XMAP-WCOM-MSG.     通信種別の代入
MOVE '        ' TO XMAP-WCOM-TNAME.    仮想端末名(8けたの空白)の代入
MOVE 'MAP001ND' TO XMAP-WCOM-MAPNAME.   物理マップ名の代入
MOVE データ     TO MAP001O.        出力したいデータを出力論理マップへ代入
 
CALL 'jsvwwlib' USING XMAP-WCOM      共通インタフェース領域
                      XMAP-WREQ      要求インタフェース領域
                      MAP001O       出力論理マップ
                      WKAREA-O      送信データ作成領域
                      NEXTURL.      次回の呼び出し先URL領域
例2

帳票出力データを設定した応答メッセージを生成する場合

MOVE 'SEND'     TO XMAP-WREQ-TYPE.    出力データ設定要求の代入
MOVE 'F'        TO XMAP-WREQ-OPT1.    'F'の代入(必須)
MOVE '1'        TO XMAP-WREQ-OPT2.    '1'の代入(必須)
MOVE '1'        TO XMAP-WREQ-OPT3.    スプールへの出力方法の設定
MOVE ' '        TO XMAP-WREQ-OPT4.    1けたの空白の代入
MOVE MAP001L    TO XMAP-WCOM-LSGLNG.   出力論理マップ長の代入
MOVE 'OWS '     TO XMAP-WCOM-MSG.     通信種別の代入
MOVE 'PRT001  ' TO XMAP-WCOM-TNAME.    仮想端末名の代入
MOVE 'MAP0016G' TO XMAP-WCOM-MAPNAME.   物理マップ名の代入
MOVE データ     TO MAP001O.        出力したいデータの出力論理マップへの代入
 
CALL 'jsvwwlib' USING XMAP-WCOM      共通インタフェース領域
                      XMAP-WREQ      要求インタフェース領域
                      MAP001O       出力論理マップ
                      WKAREA-O      送信データ作成領域
                      NEXTURL.      次回の呼び出し先URL領域

注※ プリンタスプールに,nページ/ドキュメントとして出力したい場合には'2'を指定します。ブラウザ側のXMAP3環境設定で,プリンタスプールへの書き出し単位が「アプリケーション毎」を指定した場合に有効です。

例3

Webブラウザ側の業務終了用の応答メッセージを生成する場合

MOVE 'SEND' TO XMAP-WREQ-TYPE.      出力データ設定要求の代入
MOVE 'E'    TO XMAP-WREQ-OPT4.      'E'の代入(必須)
CALL 'jsvwwlib' USING XMAP-WCOM      共通インタフェース領域
                      XMAP-WREQ      要求インタフェース領域
                      BY VALUE 0
                      WKAREA-O      送信データ作成領域
                      NEXTURL.      次回の呼び出し先URL領域

注※ URL領域を指定した場合,ブラウザ業務終了後に指定したURLを呼び出します。0を指定した場合には,ブラウザ業務終了後にブラウザを閉じます。

(e) XMAP3 Web実行環境ライブラリのクローズ要求

APのプロセス終了時に,XMAP3 Web実行環境ライブラリのクローズ要求を発行します。XMAP3 Web実行環境ライブラリのオープン要求で使用したインタフェース領域の指定が必要です。

MOVE 'CLOS'     TO XMAP-WREQ-TYPE.    XMAP3/Web for Cosminexus
                        ライブラリのクローズ要求の代入
CALL 'jsvwwlib' USING XMAP-WCOM      共通インタフェース領域
                      XMAP-WREQ      要求インタフェース領域
                      BY VALUE 0
                      BY VALUE 0
                      BY VALUE 0.