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

ユーザサービスプログラムの作成にCOBOL言語を適用する場合,XMAP3/Webライブラリの呼び出しにはCALLインタフェースを使用します。

<この項の構成>
(1) 環境部の定義
(2) jsvwwlibライブラリの呼び出し
(3) jsvwwlibライブラリで使用するインタフェース領域
(4) jsvwwlibライブラリを使ったデータの受け渡し

(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には,共通インタフェース領域を指定します。指定形式の詳細を次の表に示します。

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

データ項目名長さデータ形式データ名指定内容
アイキャッチャ4X(4)XMAP-WCOM-ID'*WEB'
リターン値12(4)9(4) COMP-5XMAP-WCOM-RTN下記参照※1
リターン値22(6)9(4) COMP-5XMAP-WCOM-RSN下記参照※1
未使用3(8)X(3)XMAP-WCOM-RSV1(00)16
id区分1(11)XXMAP-WCOM-ITYPE'I'
仮想端末名称8(12)X(8)XMAP-WCOM-TNAME下記参照※2
未使用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付きの物理マップ名称を左詰めで指定し,残りは空白を指定する
未使用8(80)X(8)XMAP-WCOM-RSV4(00)16
論理マップ長4(88)S9(8) COMP-5XMAP-WCOM-LSGLNG下記参照※3
未使用260(92)X(260)XMAP-WCOM-RSV5(00)16
注※1
リターン値は2進形式で返されます。
注※2
・画面の場合は,すべて空白を指定します。
・帳票の場合は,出力先となる仮想端末名称を左詰めで指定し,残りは空白を指定します。
注※3
画面の場合:
・出力データの設定を要求する場合は,出力論理マップ長を指定します。
・入力データの取得を要求する場合は,入力論理マップ長を指定します。
帳票の場合:
・出力データの設定を要求する場合は,出力論理マップ長を指定します。
・入力データの取得を要求する場合は,0を指定します。

(b) XMAP-WREQ

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

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

データ項目名長さデータ形式データ名指定内容
要求種別4X(4)XMAP-WREQ-TYPE下記参照※1
オプション11(4)XXMAP-WREQ-OPT1'F'
オプション21(5)XXMAP-WREQ-OPT2'1'
未使用2(6)X(2)XMAP-WREQ-RSV1空白
オプション31(8)XXMAP-WREQ-OPT3下記参照※2
オプション41(9)XXMAP-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に指定する詳細を次の表に示します。

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

データ項目名長さデータ形式データ名指定内容
サーバ環境定義ファイル名8X(8)XMAP-WOPN-SRVNAMEサーバ環境定義ファイル名を左詰めで指定し,残りは空白を指定する
未使用8(8)X(8)XMAP-WOPN-RSV空白を指定
注※
実行時に,指定したサーバ環境定義ファイルを「XMAP3/Webインストールフォルダ¥ETC」から検索します。
データ名3に0を指定した場合や,サーバ定義ファイル名に8けたの空白を指定した場合は,サーバ環境定義ファイルとして「X3WEBSRV」を参照します。
・出力データ設定要求時
 出力論理マップを指定します。Webブラウザ側のXMAP3処理を終了する場合には0を
 指定します。
・入力データ取得要求時
 入力論理マップを指定します。ブラウザからの1回目の呼び出しや帳票印刷時など,
 入力論理マップが存在しない場合には0を指定します。
・オプション設定要求時
 必ず1を指定します。

(d) データ名4

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

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

データ項目名長さデータ形式指定内容
出力領域長4S9(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
ユーザサービスプログラムで使用する出力論理マップの最大長を指します。

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

  (500+2,048×3+32,000)×1.5=57,966バイト

表4-5 データ名4に指定する受信データ領域

データ項目名長さデータ形式指定内容
受信データ長4S9(9) COMP受信データの長さ(n)を指定
受信データn(4)X(n)TP1/WebのAPIで取得した受信データを指定

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

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

注※
ユーザサービスプログラムで使用する入力論理マップの最大長を指します。ただし,帳票の場合は0となります。

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

  120+(500+32,000)×1.5 = 48,870バイト

表4-6 データ名4に指定するマッピングインタフェース領域(XMAP-WMDO)

データ項目名長さデータ形式データ名指定内容
マッピングオプション大分類49(8) COMP-5XMAP-WMDO-OPT1XMAP-WMDO-SFLDの内容を代入
マッピングオプション小分類4(4)9(8) COMP-5XMAP-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に指定する内容を次の表に示します。

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

データ項目名長さデータ形式指定内容
URLデータ長49(8) COMP-5URLデータの長さ(n)を指定
URLデータn(4)X(n)次回の呼び出し先URLを指定
注※
起動HTMLの業務開始URLに指定した,Webサーバ上のURLを指定してください。要求インタフェース領域のオプション4に'E'を指定した場合だけ,任意のWebサーバ上のURLを指定できます。

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

(a) XMAP3/Webライブラリのオープン要求

ユーザサービスプログラムのプロセス開始時に,XMAP3/Webライブラリのオープン要求を発行します。

(例1)
ユーザサービスプログラムで共通のサーバ環境定義ファイルを使用する場合
[図データ]
(例2)
ユーザサービスプログラム別に,異なるサーバ環境定義ファイルを使用する場合
[図データ]
(b) 入力データの取得要求

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

(例1)
画面出力後,Webブラウザからの応答
[図データ]
(例2)
帳票出力後,Webブラウザからの応答
[図データ]
(c) マッピングオプションの設定要求

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

(例)
[図データ]
(d) 出力データの設定要求

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

(例1)
画面出力データを設定した応答メッセージを生成する場合
[図データ]
(例2)
帳票出力データを設定した応答メッセージを生成する場合
[図データ]
(例3)
Webブラウザ側の業務終了用の応答メッセージを生成する場合
[図データ]
(e) XMAP3/Webライブラリのクローズ要求

ユーザサービスプログラムのプロセス終了時に,XMAP3/Webライブラリのクローズ要求を発行します。XMAP3/Webライブラリのオープン要求で使用したインタフェース領域の指定が必要です。

(例)
[図データ]