4.3.1 ソースの記述

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

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

関数呼び出しによる,XMAP3/Webライブラリの呼び出し形式を次に示します。

long APIENTRY jsvwwlib(XMAP_WCOMアドレス,
                      XMAP_WREQアドレス,
                      パラメタ3,
                      パラメタ4,
                      パラメタ5);

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

(a) XMAP-WCOM

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

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

データ項目名長さデータ形式データ名指定内容
アイキャッチャ4char[4]xmap_wcom_id'*WEB'
リターン値12(4)unsigned shortxmap_wcom_rtn下記参照※1
リターン値22(6)unsigned shortxmap_wcom_rsn下記参照※1
未使用3(8)char[3]xmap_wcom_rsv1(00)16
id区分1(11)charxmap_wcom_itype'I'
仮想端末名称8(12)char[8]xmap_wcom_tname下記参照※2
未使用4(20)char[4]xmap_wcom_rsv2(00)16
通信種別4(24)char[4]xmap_wcom_msg画面の場合,'BWS△'
帳票の場合,'OWS△'
未使用44(28)char[44]xmap_wcom_rsv3(00)16
マップ名称8(72)char[8]xmap_wcom_mapnameデバイスID付きの物理マップ名称を左詰めで指定し,残りは空白を指定する
未使用8(80)char[8]xmap_wcom_rsv4(00)16
論理マップ長4(88)longxmap_wcom_lsglng下記参照※3
未使用260(92)char[260]xmap_wcom_rsv5(00)16
注※1
リターン値は2進形式で返されます。
注※2
・画面の場合は,すべて空白を指定します。
・帳票の場合は,出力先となる仮想端末名称を左詰めで指定し,残りは空白を指定します。
注※3
画面の場合:
・出力データの設定を要求する場合は,出力論理マップ長を指定します。
・入力データの取得を要求する場合は,入力論理マップ長を指定します。
帳票の場合:
・出力データの設定を要求する場合は,出力論理マップ長を指定します。
・入力データの取得を要求する場合は,0を指定します。

(b) XMAP-WREQ

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

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

データ項目名長さデータ形式データ名指定内容
要求種別4char[4]xmap_wreq_type下記参照※1
オプション11(4)charxmap_wreq_opt1'F'
オプション21(5)charxmap_wreq_opt2'1'
未使用2(6)char[2]xmap_wreq_rsv1空白
オプション31(8)charxmap_wreq_opt3下記参照※2
オプション41(9)charxmap_wreq_opt4'△':画面入出力/帳票出力を応答する
'E':ブラウザ側のXMAP3業務の終了を応答する
未使用6(10)char[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-11 パラメタ3に指定するオープンインタフェース領域

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

(d) パラメタ4

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

表4-12 パラメタ4に指定する送信データ出力領域

データ項目名長さデータ形式指定内容
出力領域長4unsigned long出力領域の長さ(n)を指定
出力領域n(4)char[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-13 パラメタ4に指定する受信データ領域

データ項目名長さデータ形式指定内容
受信データ長4unsigned long受信データの長さ(n)を指定
受信データn(4)char[n]TP1/WebのAPIで取得した受信データを指定

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

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

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

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

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

表4-14 パラメタ4に指定するマッピングインタフェース領域(xmap_wmdo)

データ項目名長さデータ形式データ名指定内容
マッピングオプション大分類4unsigned longxmap_wmdo_opt1XMAP_WMDO_SFLDの内容を代入
マッピングオプション小分類4(4)unsigned longxmap_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-15 パラメタ5に指定する次処理サービス領域

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

(f) リターンコード

jsvwwlib関数のリターンコードを次の表に示します。

表4-16 jsvwwlib関数のリターンコード

リターンコード意味
0正常終了
8異常終了
12パラメタ不正

(3) 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ライブラリのオープン要求で使用したインタフェース領域の指定が必要です。

(例)
[図データ]