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には,共通インタフェース領域を指定します。指定形式の詳細を次の表に示します。
データ項目名 |
長さ |
データ形式 |
データ名 |
指定内容 |
---|---|---|---|---|
アイキャッチャ |
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 |
|
未使用 |
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 |
(b) XMAP-WREQ
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 |
|
オプション4 |
1(9) |
X |
XMAP-WREQ-OPT4 |
'△':画面入出力/帳票出力を応答する 'E':ブラウザ側のXMAP3業務の終了を応答する |
未使用 |
6(10) |
X(6) |
XMAP-WREQ-RSV2 |
空白とする |
要求動作 |
指定する値 |
---|---|
XMAP3 Web実行環境ライブラリのオープン要求 |
'OPEN' |
XMAP3 Web実行環境ライブラリのクローズ要求 |
'CLOS' |
出力データの設定要求 |
'SEND' |
入力データの取得要求 |
'RECV' |
オプションの設定要求 |
'MDO△'(△は半角空白を表す) |
指定値 |
内容 |
---|---|
'1' |
プリンタスプールに帳票を出力後,その印刷ドキュメントを完了(クローズ)する。通常は'1'を指定する。 |
'2' |
プリンタスプールに登録されている,印刷ドキュメント中の1ページとして帳票を出力する。 印刷ドキュメントは完了(クローズ)しないで継続する。 |
帳票印刷セットアップでスプール書き出し単位を「1ページ毎」にした場合は,この指定は無効となり常に'1'(ドキュメントを完了(クローズ)する)となります。
(c) データ名3
XMAP3 Web実行環境ライブラリのオープン要求時にオープンインタフェース領域を指定します。データ名3に指定する詳細を次の表に示します。
データ項目名 |
長さ |
データ形式 |
データ名 |
指定内容 |
---|---|---|---|---|
サーバ環境定義ファイル名 |
8 |
X(8) |
XMAP-WOPN-SRVNAME |
サーバ環境定義ファイル名を左詰めで指定し,残りは空白を指定する※ |
未使用 |
8(8) |
X(8) |
XMAP-WOPN-RSV |
空白を指定 |
(d) データ名4
出力データ設定要求時,データ名4には送信データ出力領域を指定します。入力データ設定要求時,データ名4には受信データ領域を指定します。また,オプション設定要求時,データ名4にはマッピングインタフェース領域(XMAP-WMDO)を指定します。データ名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バイト
データ項目名 |
長さ |
データ形式 |
指定内容 |
---|---|---|---|
受信データ長 |
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バイト
データ項目名 |
長さ |
データ形式 |
データ名 |
指定内容 |
---|---|---|---|---|
マッピングオプション大分類 |
4 |
9(8) COMP-5 |
XMAP-WMDO-OPT1 |
XMAP-WMDO-SFLDの内容を代入 |
マッピングオプション小分類 |
4(4) |
9(8) COMP-5 |
XMAP-WMDO-OPT2 |
|
(e) データ名5
データ名5には,出力データ設定要求時,次に呼び出すサービスのURLを指定※します。SSL通信を使用する場合は,「https://」で始まるURLを指定してください。
- 注※
-
Webブラウザ側のXMAP3処理を終了後にWebブラウザを閉じる場合,要求インタフェース領域のオプション4に'E'を指定し,データ名5に0を指定します。
データ名5に指定する内容を次の表に示します。
データ項目名 |
長さ |
データ形式 |
指定内容 |
---|---|---|---|
URLデータ長 |
4 |
9(8) COMP-5 |
URLデータの長さ(n)を指定 |
URLデータ |
n(4) |
X(n) |
次回の呼び出し先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.