© 2 w ûz ßt h#âÒ ý© /' fåö lݵà+ -...

194
J2X1-7485-01Z0(00) 20101Windows/Solaris/Linux Symfoware Server V10.0.0 WebDBtoolsユーザーズガイド

Upload: others

Post on 07-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

J2X1-7485-01Z0(00)2010年1月

Windows/Solaris/Linux

Symfoware Server V10.0.0

WebDBtoolsユーザーズガイド

Page 2: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

まえがき

本書の目的

本書は、Symfoware ServerのデータベースをWeb上で構築できるWebDBtoolsのユーザーズガイドです。本書は、

WebDBtoolsの概要、使用方法およびリファレンスについて説明しています。

本書の読者

本書は、Symfowareのデータベースを構築する方またはデータベースの情報をWebに公開する業務を構築する方に読

んでいただくように書かれています。

本書を読むには、以下に示す知識が必要です。また、あらかじめ「解説書」を読んでいただくことをお勧めします。

・ Symfoware/RDBの機能およびデータベースの概要

・ SQL文に関する知識

・ HTMLに関する基礎的な知識

本書の構成

本書の構成と内容は以下のとおりです。

第1章 WebDBtoolsの概要

WebDBtoolsの目的、構成および機能概要について説明しています。

第2章 WebDBtools操作概要

WebDBtoolsの基本的な操作方法について説明しています。

第3章 データベース連携

WebScriptを利用してデータベース連携機能を利用する方法について説明しています。

第4章 WebScriptコマンド

WebScriptコマンドについて説明しています。

第5章 フォーマットファイル

フォーマットファイルについて説明しています。

第6章 WebScript拡張タグ

WebScript拡張タグの構文について説明しています。

第7章 WebScript言語

WebScript言語で使用できるデータ、定数および変数などについて説明しています。

第8章 関数

フォーマットファイルに記述できる関数について説明しています。

第9章 環境パラメタ

環境パラメタについて説明しています。

第10章 ログ情報

WebScriptが生成するログの情報について説明しています。

第11章 WebDBtools画面のカスタマイズ

WebDBtools画面のカスタマイズの方法について説明しています。

付録A WebScriptヒント集

WebScriptを利用する際に、ヒントとなる項目について説明しています。

- i -

Page 3: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

付録B WebScriptフォーマットファイル解釈の詳細

WebScriptフォーマットファイルの解釈の詳細について、説明しています。

付録C WebScriptエラーコード一覧

WebScriptのエラーコードの内容と、その処理の一覧を記述しています。

付録D 格納構造情報

格納構造情報について説明しています。

付録E メッセージの対処

Symfoware/RDBが出力するメッセージの対処方法について説明しています。

平成 22年 1月 初版

- ii -

Page 4: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

目 次

第1章 WebDBtoolsの概要.........................................................................................................................................................11.1 WebDBtoolsとは..................................................................................................................................................................................1

1.1.1 WebDBtoolsの目的......................................................................................................................................................................11.1.2 WebDBtoolsの構成......................................................................................................................................................................1

1.2 WebDBtoolsの機能.............................................................................................................................................................................21.2.1 データベースの定義とデータの操作..........................................................................................................................................21.2.2 データベース連携業務の構築....................................................................................................................................................2

1.3 WebDBtoolsの利用効果.....................................................................................................................................................................3

第2章 WebDBtools操作概要.....................................................................................................................................................52.1 WebDBtoolsのログイン........................................................................................................................................................................52.2 操作画面について..............................................................................................................................................................................7

2.2.1 機能選択画面..............................................................................................................................................................................72.2.2 各機能の操作画面.......................................................................................................................................................................8

第3章 データベース連携..........................................................................................................................................................103.1 データベース連携の機能.................................................................................................................................................................103.2 データベースのアクセス機構............................................................................................................................................................11

3.2.1 アクセス環境の指定...................................................................................................................................................................113.2.2 データベースアクセスの流れ.....................................................................................................................................................123.2.3 セション管理...............................................................................................................................................................................13

3.3 拡張タグの基本要素.........................................................................................................................................................................213.4 拡張タグによるデータベース処理....................................................................................................................................................283.5 データベース連携の利用形態.........................................................................................................................................................313.6 拡張タグの使用例.............................................................................................................................................................................33

3.6.1 個別セション...............................................................................................................................................................................343.6.2 データ検索:全件検索...............................................................................................................................................................363.6.3 データ検索:複数検索...............................................................................................................................................................393.6.4 データ検索:範囲指定検索.......................................................................................................................................................403.6.5 データ検索:絞込み検索...........................................................................................................................................................423.6.6 データ更新:データ追加............................................................................................................................................................443.6.7 データ更新:データ更新............................................................................................................................................................463.6.8 データ更新:データ削除............................................................................................................................................................483.6.9 イメージ表示...............................................................................................................................................................................513.6.10 エラー処理................................................................................................................................................................................533.6.11 共有セション.............................................................................................................................................................................55

第4章 WebScriptコマンド.........................................................................................................................................................584.1 WebScriptコマンドの種類.................................................................................................................................................................584.2 wit_gwd.............................................................................................................................................................................................594.3 wit_fmtr.............................................................................................................................................................................................614.4 wit_media...........................................................................................................................................................................................634.5 wit_logout..........................................................................................................................................................................................65

第5章 フォーマットファイル........................................................................................................................................................675.1 フォーマットファイル..........................................................................................................................................................................675.2 拡張タグ.............................................................................................................................................................................................675.3 変数の置換........................................................................................................................................................................................685.4 フォーマットファイルの注意事項.......................................................................................................................................................68

5.4.1 特殊文字のエスケープ..............................................................................................................................................................685.4.2 URLの指定.................................................................................................................................................................................69

第6章 WebScript拡張タグ.......................................................................................................................................................706.1 拡張タグの規約.................................................................................................................................................................................70

6.1.1 構文説明規約............................................................................................................................................................................706.1.2 命名規約....................................................................................................................................................................................70

- iii -

Page 5: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

6.1.3 パラメタの評価............................................................................................................................................................................706.2 実行制御タグ.....................................................................................................................................................................................71

6.2.1 <!THROW>................................................................................................................................................................................716.2.2 <!CATCH>.................................................................................................................................................................................726.2.3 <!FOREACH>............................................................................................................................................................................726.2.4 <!FOR>.......................................................................................................................................................................................736.2.5 <!WHILE>..................................................................................................................................................................................746.2.6 <!BREAK>.................................................................................................................................................................................756.2.7 <!CONTINUE>..........................................................................................................................................................................766.2.8 <!IF> <!ELSEIF> <!ELSE>.......................................................................................................................................................776.2.9 <!ABORT>.................................................................................................................................................................................78

6.3 データベースアクセスタグ.................................................................................................................................................................796.3.1 <!DO>.........................................................................................................................................................................................796.3.2 <!TRANSACTION>..................................................................................................................................................................87

6.4 表示タグ.............................................................................................................................................................................................886.4.1 <!REPLACE>.............................................................................................................................................................................886.4.2 <!HREPLACE>..........................................................................................................................................................................88

6.5 変数タグ.............................................................................................................................................................................................896.5.1 <!VAR>......................................................................................................................................................................................896.5.2 <!SETVAR>...............................................................................................................................................................................906.5.3 <!UNDEFVAR>.........................................................................................................................................................................92

6.6 そのほかのタグ..................................................................................................................................................................................936.6.1 <!ERRORHANDLE>.................................................................................................................................................................936.6.2 <!SETCOOKIE>........................................................................................................................................................................936.6.3 <!PACKAGE>............................................................................................................................................................................94

第7章 WebScript言語..............................................................................................................................................................967.1 データ................................................................................................................................................................................................96

7.1.1 データの分類..............................................................................................................................................................................967.1.2 リスト要素を参照する演算子......................................................................................................................................................967.1.3 変更可能性................................................................................................................................................................................96

7.2 定数...................................................................................................................................................................................................977.3 変数...................................................................................................................................................................................................98

7.3.1 変数の分類.................................................................................................................................................................................987.3.2 パッケージ..................................................................................................................................................................................98

7.4 QUERYパッケージ変数..................................................................................................................................................................1007.5 COOKIEパッケージ変数................................................................................................................................................................1007.6 SYSTEMパッケージ変数................................................................................................................................................................1017.7 コンテキスト......................................................................................................................................................................................1057.8 演算子.............................................................................................................................................................................................1057.9 関数.................................................................................................................................................................................................108

第8章 関数............................................................................................................................................................................1098.1 凡例.................................................................................................................................................................................................1098.2 文字列操作関数.............................................................................................................................................................................109

8.2.1 chr.............................................................................................................................................................................................1098.2.2 format........................................................................................................................................................................................1098.2.3 index..........................................................................................................................................................................................1118.2.4 length........................................................................................................................................................................................1128.2.5 ord.............................................................................................................................................................................................1128.2.6 substr.........................................................................................................................................................................................1128.2.7 tolower......................................................................................................................................................................................1138.2.8 toupper......................................................................................................................................................................................113

8.3 数学関数.........................................................................................................................................................................................1148.3.1 abs.............................................................................................................................................................................................1148.3.2 atan2..........................................................................................................................................................................................1148.3.3 cos.............................................................................................................................................................................................1158.3.4 exp.............................................................................................................................................................................................115

- iv -

Page 6: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

8.3.5 int..............................................................................................................................................................................................1158.3.6 log.............................................................................................................................................................................................1168.3.7 pow............................................................................................................................................................................................1168.3.8 rand...........................................................................................................................................................................................1168.3.9 sin..............................................................................................................................................................................................1178.3.10 sqrt..........................................................................................................................................................................................1178.3.11 srand........................................................................................................................................................................................117

8.4 リスト関数.........................................................................................................................................................................................1188.4.1 join............................................................................................................................................................................................1188.4.2 key.............................................................................................................................................................................................1188.4.3 listlen.........................................................................................................................................................................................1188.4.4 pop............................................................................................................................................................................................1198.4.5 push...........................................................................................................................................................................................1198.4.6 reverse.......................................................................................................................................................................................1208.4.7 shift...........................................................................................................................................................................................1208.4.8 sort............................................................................................................................................................................................1218.4.9 split............................................................................................................................................................................................1218.4.10 subscr......................................................................................................................................................................................1228.4.11 unshift.....................................................................................................................................................................................122

8.5 時刻関数.........................................................................................................................................................................................1238.5.1 gmtime......................................................................................................................................................................................1238.5.2 localtime....................................................................................................................................................................................1248.5.3 time...........................................................................................................................................................................................125

8.6 定義関数.........................................................................................................................................................................................1258.6.1 defined......................................................................................................................................................................................1258.6.2 undef.........................................................................................................................................................................................125

8.7 置換関数.........................................................................................................................................................................................1268.7.1 html...........................................................................................................................................................................................1268.7.2 literal.........................................................................................................................................................................................1278.7.3 URLencode...............................................................................................................................................................................128

第9章 環境パラメタ................................................................................................................................................................1299.1 環境パラメタ.....................................................................................................................................................................................1299.2 環境パラメタの設定.........................................................................................................................................................................132

9.2.1 Solaris(TM)またはLinuxの場合の設定方法...........................................................................................................................1329.2.2 Windows(R)の場合の設定方法..............................................................................................................................................132

9.3 環境パラメタの詳細.........................................................................................................................................................................137

第10章 ログ情報....................................................................................................................................................................14210.1 WebScriptが生成するログ情報.....................................................................................................................................................14210.2 サーバログ.....................................................................................................................................................................................14210.3 アクセスログ...................................................................................................................................................................................14310.4 エラーログ......................................................................................................................................................................................145

第11章 WebDBtools画面のカスタマイズ................................................................................................................................14711.1 WebDBtools画面のカスタマイズについて...................................................................................................................................14711.2 WebDBtools画面の構成...............................................................................................................................................................14711.3 WebDBtoolsの画面処理...............................................................................................................................................................14811.4 カスタマイズ例...............................................................................................................................................................................155

付録A WebScriptヒント集.......................................................................................................................................................161A.1 WebScriptヒント集...........................................................................................................................................................................161

付録B WebScriptフォーマットファイル解釈の詳細...................................................................................................................164B.1 WebScriptフォーマットファイル解釈の詳細...................................................................................................................................164

付録C WebScriptエラーコード一覧........................................................................................................................................169C.1 WebScriptエラーコード一覧...........................................................................................................................................................169

- v -

Page 7: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

付録D 格納構造情報.............................................................................................................................................................171D.1 格納構造情報取得.........................................................................................................................................................................171D.2 検索情報取得.................................................................................................................................................................................180D.3 RDBコマンド用ファイル作成..........................................................................................................................................................181

付録E メッセージの対処.........................................................................................................................................................182E.1 Symfoware/RDBが出力するメッセージ.........................................................................................................................................182

索引......................................................................................................................................................................................184

- vi -

Page 8: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

第1章 WebDBtoolsの概要

本章では、WebDBtoolsの概要について説明します。

1.1 WebDBtoolsとは

WebDBtoolsは、Webブラウザ(以降、ブラウザと呼びます)からSymfoware Serverのデータベースの構築を支援するデー

タベース開発ツールです。開発するデータベースの定義および試験データの操作を、すべてブラウザから行うことがで

きます。また、Webサーバとデータベースの連携機能により、簡易なデータベース連携業務を構築することもできます。

1.1.1 WebDBtoolsの目的

インターネット、イントラネットの急速な普及に伴い、業務にWebサービスを利用することが一般的になりました。Webサー

ビスを利用すると、クライアントにアプリケーションやツールをインストールしなくても、ネットワークを通してダウンロードし

たプログラム(HTML、Javaアプレットなど)から、業務を行うことができます。

これまでは、クライアントのGUIツールが一般的であったデータベース開発も、以下に示すWebサービスの利点を活かし

て、ブラウザを利用することが望まれています。

・ サービスの利用場所を問わない

・ ブラウザさえあればサービスを利用できる

・ クライアントへのアプリケーションのインストールやメンテナンスが不要

WebDBtoolsは、Webサービスを利用することにより、インターネット時代にふさわしいデータベース開発の手段を提供し

ます。

1.1.2 WebDBtoolsの構成

WebDBtoolsは、WebScript(HTMLを拡張したスクリプトに従い、データベースを操作してHTMLを出力する機能)と、

WebScriptのスクリプトで作成された標準GUI(画面アプリケーション)で構成されています。

WebDBtoolsの利用は、データベースサーバ(Symfoware/RDB)を配置するサーバマシンに、WebDBtoolsとWebサーバ

を導入することにより行います。

- 1 -

Page 9: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

1.2 WebDBtoolsの機能

WebDBtoolsの機能は、以下の2つに大きく分けられます。

・ データベースの定義とデータの操作

・ データベース連携業務の構築

1.2.1 データベースの定義とデータの操作

WebDBtoolsの標準GUIにより、データベース管理者はWebブラウザを利用して、データベースに対する以下の操作を行

うことができます。

・ 定義表示(データベースオブジェクトの定義情報の参照)

・ 定義操作(データベースオブジェクトの定義または削除)

・ データ操作(データの検索、検索データの更新および削除、データの挿入)

1.2.2 データベース連携業務の構築

WebDBtoolsのデータベース連携機能により、Webとデータベースの連携業務を構築することができます。データベース

連携業務は、WebScriptのスクリプト機能を利用して構築します。

WebScriptは、データベースを操作し、HTMLを出力するスクリプト機能をサポートしています。スクリプトはHTMLの記述

を拡張した拡張タグで処理を記述します。

HTMLの拡張タグにSQL文を指定するだけでSQL文を実行することができます。HTMLを理解している開発者であれ

ば、データベースを操作してHTMLを出力する処理を簡単に作成することができます。これにより、Webとデータベース

の連携業務の容易な構築が可能です。

- 2 -

Page 10: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

WebScriptの拡張タグには、以下の機能があります。詳細は、“第3章 データベース連携”を参照してください。

・ スクリプトの基本的な変数、制御構造などの言語機能

・ データベースセションの管理機能

・ データベースアクセス(SQL文)のための拡張タグ

・ データベース定義や初期化コマンドの拡張タグ

・ データベースの表や格納構造情報の検索機能

・ データベースへのアクセス結果データをHTMLに埋め込む機能

・ データベースのバイナリデータ(BLOB)列を取り出し、HTML上でイメージを表示する機能

1.3 WebDBtoolsの利用効果

WebDBtoolsを導入した場合の利用効果について説明します。

Webを利用した簡易なデータベースツール

ブラウザを利用してデータベースの環境構築を行うことができ、操作する場所もプラットフォームに依存しません。このた

め、インターネットアプリケーションの開発環境でのWebサイトのデータベース構築に適しています。データベースのデー

タの確認やデータの追加も容易にできます。また、データベースサーバにWebサーバとWebDBtoolsをインストールすれ

ば、クライアントサーバ環境でも、容易にデータベースを構築することができます。

クライアントのメンテナンス負荷を軽減

WebDBtoolsのクライアントはブラウザだけで利用することができます。このため、管理者によるクライアントアプリの導入指

導などのメンテナンス作業は必要ありません。

データベース構築ツールの拡張性

WebDBtoolsのGUIは、HTMLの拡張タグによるスクリプトを用いているので、HTMLについての基礎知識があれば、

WebDBtoolsのGUIの処理内容の理解が容易になります。このため、WebDBtoolsのGUIを利用局面に合わせてカスタマ

- 3 -

Page 11: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

イズすることが可能となります。WebDBtoolsは、一般のWindows製品で提供されているようなものと違って、あらゆる利用

を想定した汎用機能を実現するものではありませんが、データベースの基本操作を提供し、必要に応じて機能を拡張で

きるように設計されています。

参照

WebDBtoolsのカスタマイズについては、“第11章 WebDBtools画面のカスタマイズ”を参照してください。

簡易にデータベース連携業務を作成

WebScriptは、HTMLの拡張タグによるスクリプトを用いているため、HTMLの基礎知識があれば、データベース連携業

務を容易に構築することができ、Web上で運用することが可能となります。このため、データベースを処理するための専

用のプログラマを必要としません。また、WebScriptは、データベース構築のための拡張タグを備えているため、データ

ベース管理者が、データベース開発ツールを作成することもできます。

- 4 -

Page 12: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

第2章 WebDBtools操作概要

本章では、WebDBtoolsの操作概要について説明します。

2.1 WebDBtoolsのログイン

WebDBtoolsのログイン方法について説明します。

WebDBtoolsを起動する前に、サーバサービス(Symfoware/RDB、WebサーバおよびWebScriptサーバ)が起動されてい

ることを確認してください。サーバサービスが、起動されていない場合は、起動してください。

参照

サーバサービスの起動方法については、“セットアップガイド”の“起動”および“WebAdmin/WebDBtoolsのセットアップ”

を参照してください。

WebDBtoolsの起動URL

ブラウザのURLにWebDBtools画面の起動URLを指定し、起動URL画面を表示します。

URLの例

WebDBtoolsを起動したマシンが“newdb.dbdevelop.co.jp”の場合、ブラウザに以下のURLを指定します。

http://newdb.dbdevelop.co.jp:Webサーバのポート番号/WebDBtools/start.html

または、

http://newdb.dbdevelop.co.jp:Webサーバのポート番号/WebDBtools/WebDBtools_Start.html

- 5 -

Page 13: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

起動URLが表示されている画面は、利用者が独自の画面やツールを作成した場合に、そのURLを登録するために

も利用します。

データベースサーバへのログイン

起動URLをクリックすると、WebDBtoolsが起動し、[ログイン]画面が表示されます。[ログイン]画面から、Symfoware/RDBにログインすることができます。

ログイン画面では、以下のパラメタを設定します。パラメタの設定時の留意事項を、以下に示します。

RDBシステム名:

- データベースサーバのRDBシステム名を指定します。名前のないRDBシステムを利用する場合、このパラメタは、

入力せず空白のままとします。

データベース名:

- 定義操作やデータ操作の対象となるデータベースは、ログイン時に指定したデータベースです。定義表示は、ロ

グインしたデータベースにかかわりなく利用することができます。

- 新規にデータベースを作成する場合は、作成するデータベースの名前を指定します。ログイン後、[機能選択]画面で

[定義操作]または[データ操作]を選択したとき、「データベース database name が存在しません」というメッセージ

が表示されますが、データベースを作成後、画面を更新すると、メッセージは消えます。

- 既存のデータベースを利用する場合は、定義操作やデータ操作を行うデータベース名を指定します。ログイン

後、[機能選択]画面で[定義操作]または[データ操作]を選択したとき、「データベース database name が存在しま

せん」というメッセージが表示された場合は、データベース名が誤っています。この場合は、定義表示により、デー

タベース名を確認してください。ログアウト後、正しいデータベース名を指定して再ログインしてください。

- 省略すると、RDBII_DICTIONARYになります。RDBII_DICTIONARYに対して可能な操作は、定義表示と、デー

タ操作のデータ検索だけです。

ユーザID:

Solaris/Linuxの場合

- 以下のユーザIDを指定します。

RDBディクショナリを作成したユーザIDを指定します。

- 省略できません。

Windowsの場合

- 以下のユーザIDを指定します。

Symfoware/RDBをセットアップしたユーザIDを指定します。

- 6 -

Page 14: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

- 省略できません。

パスワード:

- 指定したユーザIDのパスワードを指定します。

- 省略できません。

2.2 操作画面について

WebDBtoolsの操作画面の構成と操作概要を説明します。

参照

WebDBtoolsの操作方法の詳細は、“WebDBtoolsヘルプ”を参照してください。“WebDBtoolsヘルプ”は、WebDBtools画面上の[ヘルプ]ボタンをクリックすることで参照できます。

2.2.1 機能選択画面

WebDBtoolsからSymfoware/RDBにログインすると、操作メニューの画面が表示されます。この画面を機能選択画面と呼

びます。

機能選択画面では、データベースの構築やデータ操作を行うための操作メニューを選択することができます。利用する

機能を選択すると、それぞれの機能の画面が表示されます。

機能選択画面のメニューについて、以下に示します。

・ 定義表示

データベースオブジェクトの定義情報を参照するときに使用します。

・ 定義操作

データベースオブジェクトの定義または削除をするときに使用します。

・ データ操作

データの検索、検索データの更新および削除、データの挿入をするときに使用します。

・ 直接実行

WebDBtoolsのGUIメニューにない定義文を実行するときに使用します。フォーム形式ではなく、テキストエリアに定

義操作およびデータ操作の実行テキスト(定義文またはSELECT文など)を直接指定することができます。

- 7 -

Page 15: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

2.2.2 各機能の操作画面

機能選択画面で、利用する機能を選択すると、それぞれの機能の操作画面が表示されます。定義表示機能、定義操作

機能、およびデータ操作機能は、操作画面の構成が同じです。

定義表示/定義操作/データ操作の操作画面

定義表示機能、定義操作機能、およびデータ操作機能の操作画面は、2つのフレームから構成されます。

画面の左フレームに、定義表示、定義操作、またはデータ操作を行うリソースが、ツリーで表示されます。ツリーには、リ

ソースを表すアイコンとリソース名が表示されます。リソースのアイコンをクリックすると、ツリーが展開し、クリックしたリソー

スの配下にあるリソース一覧を確認することができます。また、ツリーのリソース名をクリックすると右フレームが切り替わり、

選択したリソースの定義内容、またはデータベースの定義やデータ操作などを実行するためのメニューが表示されます。

画面の右フレームに、各機能の詳細内容が表示されます。定義表示機能の場合、左フレームで選択したリソースの定義

情報が表示されます。定義操作、およびデータ操作機能の場合、左フレームで選択したリソースに対し、ウィザード形式

で操作することができます。

右フレームの上部には、画面の操作ボタンが表示されます。操作ボタンを使用して、画面を初期化したり、閉じたりする

ことができます。

- 8 -

Page 16: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

直接実行の操作画面

直接実行機能の操作画面には、定義文やSELECT文などを直接指定するテキストエリアが表示されます。

直接実行画面は、定義操作機能やデータ操作機能からも表示することができます。

- 9 -

Page 17: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

第3章 データベース連携

本章では、WebScriptを利用してデータベース連携機能を利用する方法について説明します。

3.1 データベース連携の機能

データベース連携の機能について説明します。

データベース連携機能

データベース連携は、WebScriptのHTML拡張タグを利用して、ブラウザとデータベースの連携業務を作成する機能で

す。拡張タグは、データベースにアクセスするためのSQL文を、通常のHTMLファイルに埋め込んだものであるため、HTMLを理解しているWebサイトの開発者であれば、データベース情報を容易に取り出すことができます。このため、ブラウザと

データベースを連携する業務を簡易に構築することができます。

HTML拡張タグファイルのことをフォーマットファイルと呼びます。

WebScriptには、以下の機能があります。

・ HTMLからデータベースをアクセスする機構

・ サーバサイドスクリプトの基本的な変数、制御構造などの言語機能

・ ブラウザで表示するための数値や文字データを取り出す拡張タグ

・ イメージなどのバイナリデータ(BLOB)を取り出す拡張タグ

・ データベース定義、格納構造情報の検索やDSIの初期化など、データベース構築のための拡張タグ

拡張タグを利用してデータベース情報をブラウザに返却するまでの流れを以下に示します。

(1)利用者は、ブラウザからデータベース連携を使用し、Webサーバに実行を依頼します。

(2)Webサーバは、WebScriptに引数を指定して処理を依頼します。

(3)WebScriptは、引数によってデータベースのアクセス環境とフォーマットファイルを特定します。

(4)WebScriptは拡張タグを解析し、データベースへの要求を抽出して、データベースのアクセス機構によりデータベー

スサーバに処理を依頼します。

(5)データベースサーバは、データベースにアクセスし、WebScriptに結果を返却します。

(6)WebScriptは、検索結果をフォーマットファイルに埋め込み、HTMLを作成します。

(7)WebScriptは、実行結果のHTMLをWebサーバに返却します。

- 10 -

Page 18: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

(8)Webサーバは、実行結果のHTMLをブラウザに返却します。

(9)ブラウザに実行結果が表示されます。

データベースの検索と拡張タグ

WebScriptは、データベースの検索結果をフォーマットファイルに埋め込むことで作成したHTMLを、ブラウザに返却しま

す。データベース検索と検索結果のブラウザへの表示の関係を、以下に示します。

(1)拡張タグが解釈され、変数に値が入ります。

(2)SQL文が実行され、データが検索されます。

(3)検索結果が、拡張タグの指定部分に埋め込まれます。

(4)埋め込まれた結果が、ブラウザに表示されます。

3.2 データベースのアクセス機構

ブラウザの要求によりデータベースにアクセスし、結果をブラウザに返却するまでのWebScriptの動作機構について説明

します。

3.2.1 アクセス環境の指定

拡張タグを用いてデータベースにアクセスする場合、利用者がサーバ内に、フォーマットファイルを作成しておきます。

作成したフォーマットファイルの拡張タグ中に、データベースのアクセス命令(SQL文)を記述し、ファイルを実行します。

データベースにアクセスして、ブラウザに情報を返却するためには、どのデータベースをアクセスするか、どのユーザIDでアクセスするかなどの情報(アクセス環境)を指定する必要があります。アクセス環境には、データベースシステム情

報、対象データベース、データベースアクセスのための利用情報およびフォーマットファイル情報(パス、初期画面ファイ

ル名など)があります。

アクセス環境を指定するファイルを、アプリケーション環境パラメタファイルと呼びます。データベース情報およびユーザ

情報などの、アプリケーション環境パラメタの一部の情報は、ブラウザから動的に指定できます。

- 11 -

Page 19: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

3.2.2 データベースアクセスの流れ

データベース連携によりデータベースをアクセスするには、処理を依頼するHTMLファイル中で<A>タグまたは<FORM>タグからWebサーバ経由でWebScriptのCGIプログラムに処理を依頼します。

このCGIプログラムをWebScriptコマンドと呼びます。WebScriptコマンドは、CGIプログラムの引数に指定されたフォーマッ

トファイルを解析して、HTMLの拡張タグを実行し、データベースアクセスの結果データを埋め込んだHTMLをブラウザ

に返却します。

- 12 -

Page 20: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

3.2.3 セション管理

一般に、ブラウザがサーバに依頼した要求の結果が、サーバからブラウザに返却されると、ブラウザとサーバの接続は切

断されます。データベースへのアクセスには、アクセス環境を開設する必要がありますが、ブラウザの要求に従って、アク

セス環境を開設すると、データベースのコネクションの開設などのために、アクセスごとにオーバヘッドが発生します。こ

れは、アクセス効率を低下させます。

WebScriptには、一度開設したアクセス環境を保持するためのセション管理機能があります。開設されたアクセス環境を、

WebScriptセションと呼びます。

データベース連携では、データベースにアクセスするために、WebScriptコマンドを使用します。プログラムからの要求に

は、以下の4種類があります。

・ ログイン要求(wit_gwd)

・ フォーマットファイルの実行要求(wit_fmtr)

・ バイナリデータのアクセス要求(wit_media)

・ ログアウト要求(wit_logout)

セションには、個別セションと共有セションがあります。

個別セション

個別セションは、WebScriptセションをログインからログアウトまで保持しておき、再利用する形態です。WebScriptは、アク

セス環境を開設したブラウザに、セションの識別子を与えます。2回目以降の依頼は、ログイン時に開設したアクセス環境

(WebScriptセション)を、セション識別子から認識して、同一アクセス環境をログアウトまで利用します。セション内で有効

であるグローバル変数と呼ばれる変数を利用して、データを記憶することができます。

利用者専用のセションを個々に持つため、利用者の数が少ない運用に適しています。以下に個別セションの概要を示

します。

個別セションの利用方法

個別セションでは、以下の手順で利用します。

1. ログイン

WebScriptコマンド(wit_gwd)に、アプリケーション環境パラメタを引数として渡し、ログインします。以降の

WebScriptへの依頼は、ログインの結果開設されたWebScriptセションにより実行されます。

- 13 -

Page 21: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

アプリケーション環境パラメタは、ログイン後にブラウザに表示するHTMLファイルを指定します。このHTMLファ

イルをhomePageと呼びます。

2. 処理要求

homePageから、WebScriptコマンド(wit_fmtr)のパラメタに、フォーマットファイル名を渡し、実行を依頼しま

す。

バイナリデータを検索する場合は、WebScriptコマンド(wit_media)のパラメタに、バイナリデータを検索するSQL文およびバイナリデータの変換タイプを渡し、画像データなどに変換を依頼します。

フォーマットファイル中には、通常、次に実行するフォーマットファイルへの依頼を記述して、処理要求を次々

に行います。

3. ログアウト要求

WebScriptコマンド(wit_logout)で、ログアウトを依頼します。通常は、フォーマットファイルの画面に、このコマ

ンドを依頼するボタンまたはリンクを表示しておき、必要なときにログアウトできるようにします。

個別セションの利用方法の例を以下に示します。

HTMLファイルおよびフォーマットファイルの準備

個別セションを利用する場合は、ログインページやホームページ(ログイン直後の初期画面)のためのHTMLファ

イルおよび拡張タグを記述したフォーマットファイルを準備します。

- ログイン用HTMLファイル:

個別セションの開設に必要なファイルです。wit_gwdコマンドにアプリケーション環境パラメタを引数として渡

し、ログインを実行するためのHTMLファイルです。これらのファイルをHTML用のディレクトリに配置します。

ログイン用HTMLファイルの記述方法については、“第4章 WebScriptコマンド”を参照してください。

- homePage用HTMLファイル:

個別セションの実行時に必要なファイルです。個別セションへログイン直後に表示するページのファイルで

す。homePageのHTMLファイルから、wit_fmtrコマンドに依頼して、フォーマットファイルを呼び出します。

homePage用HTMLファイルの記述方法については、“第4章 WebScriptコマンド”を参照してください。

- フォーマットファイル:

データベースをアクセスする拡張タグを記述して、データベースの処理を行います。作成する業務に応じて

任意の個数のファイルを作成します。フォーマットファイルの作成については、本章および“第5章 フォーマッ

トファイル”から“第8章 関数”を参照してください。

“3.6.1 個別セション”のサンプルプログラムで用いているファイルの構成を一例として説明します。サンプルプログ

ラムは、以下のようなファイル構成となっています。

WebDBtoolsのインストールディレクトリ

sampleディレクトリ:サンプルに関するファイル全体を配置するディレクトリ

format_privateディレクトリ:個別セションのフォーマットファイル配置ディレクトリ

demo_fmt.html:データベースの検索用のフォーマットファイル

shibori_fmt.html:demo_fmt.htmlの画面から更に条件を絞り込んだ検索用のフォーマットファイル

htmlディレクトリ:htmlファイル用のディレクトリ

login.html:ログイン用HTMLファイル

demo.html:homePage用HTMLファイル

アプリケーション環境パラメタの準備

個別セションを利用する場合、アプリケーション環境パラメタを準備します。アプリケーション環境パラメタには、利

用するRDBシステム名、データベース名、フォーマットファイル情報、ホームページ情報およびデータベースの利

用者情報を指定します。フォーマットファイル情報、ホームページ情報以外は、ログイン画面から入力して設定す

ることもできます。

“3.6.1 個別セション”のサンプルプログラムのアプリケーション環境パラメタの指定のイメージを以下に示します。

なお、アプリケーション環境パラメタの指定例については、“3.6.1 個別セション”を参照してください。

主要な要素 指定値

RDBシステム名 rdbsys1

データベース名 SAMPLE

フォーマットファイル情報 format_privateディレクトリのパス名

- 14 -

Page 22: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

主要な要素 指定値

ホームページ情報 demo.htmlファイルの絶対パス名

アプリケーション環境パラメタの詳細は、“第9章 環境パラメタ”を参照してください。

個別セションの環境パラメタの指定のイメージを以下に示します。

個別セションの実行の流れ

“3.6.1 個別セション”のサンプルプログラムを例に個別セションの実行の流れを説明します。

1. ログイン画面表示

ログイン用のHTMLファイル(login.html)をURLに指定すると、ログイン画面が表示されます。

2. ログイン依頼

利用者がユーザ情報を、ログイン画面に入力し実行します。

ログイン用のHTMLファイル(login.html)に記述しているwit_gwdコマンドのWIT_envパラメタに、アプリケー

ション環境パラメタ名(sample.env)が指定され、ログインが依頼されます。本例では、利用者がユーザIDとパ

スワードを入力し、ログインします。

wit_gwdコマンドの実行により、WebScriptセションが生成されます。

- 15 -

Page 23: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

3. homePage表示

ログインが終了すると、アプリケーション環境パラメタ情報に記述されたhomePage(初画面、本例では、

demo.html)がログインの結果として表示されます。

4. 検索依頼

初画面に表示された検索実行要求を依頼します。検索を実行するフォーマットファイル(demo_fmt.html)を引数として、wit_fmtrコマンドに依頼します。本例では、製品名を入力し、検索を実行します。

wit_fmtrコマンドにより、フォーマットファイルの拡張タグ(!DO "SELECT")が実行され、データベースから

データが検索されます。

5. 検索結果表示

データベースから検索されたデータを埋め込んだ結果が表示されます。

6. 絞込みの検索依頼

検索結果画面に対して、更に絞込み要求を依頼します。絞込みを行うフォーマットファイル(shibori.html)を引数として、wit_fmtrコマンドに依頼します。

- 16 -

Page 24: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

wit_fmtrコマンドにより、フォーマットファイルの拡張タグ(!DO "SELECT")が実行され絞込み条件を追加し

て、データベースのデータが再検索されます。

7. ログアウト依頼

wit_logoutコマンドにログアウトを依頼します。その結果ログアウト後に表示する画面が表示されます。本例

では、ログアウト後表示する画面は、ログイン画面としています。

ログアウトしないで、別の検索条件でwit_fmtrコマンドを実行することにより、引き続きセションを継続するこ

ともできます。

共有セション

WebScript起動時に、セションプール内にセションを任意数用意しておき、アクセス要求が生じた場合に、プール内のセ

ションを利用する形態です。アクセス中は、対象アクセス環境を使用中とし、アクセスが終了したときは、セションを未使

用とします。これによって、開設したセションの数だけ、データベースの同時アクセスが可能となります。WebScript全体で

アクセス環境を共用するため、使用資源を一定量に押さえることができます。利用されるセションは、アクセスのたびに異

なる可能性があります。

共有セションは、WebScriptサーバの起動時に開設されるため、ログインやログアウトの処理は必要ありません。共有セ

ションでは、データベースのアクセス利用者情報を、WebScriptサーバ全体で共用します。以下に共有セションの概要を

示します。

- 17 -

Page 25: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

共有セションの利用方法

共有セションでは、フォーマットファイルに実行要求を繰り返し行います。依頼のたびに、どのセションで実行されるか

は不定です。

フォーマットファイル実行要求は、以下のとおりになります。

- WebScriptコマンド(wit_fmtr)のパラメタにフォーマットファイル名を渡し、実行を依頼します。

- フォーマットファイル中には、通常、次に実行するフォーマットへの依頼を記述しておくか、またはログアウトの実

行を依頼します。

- バイナリデータを検索する場合は、WebScriptコマンド(wit_media)のパラメタに、バイナリデータを検索するSQL文と変換タイプを渡し、画像データなどに変換を依頼します。

HTMLファイルおよびフォーマットファイルの準備

共有セションを利用する場合は、フォーマットファイルに処理を依頼するHTMLファイルおよび拡張タグを記述し

たフォーマットファイルを準備します。

- 処理依頼用HTMLファイル:

共有セション利用時に、フォーマットファイルに処理を依頼するページのファイルです。HTMLファイルの記述

方法については、“第4章 WebScriptコマンド”を参照してください。本HTMLファイルから、wit_fmtrコマンドに

依頼して、フォーマットファイルを呼び出します。

- フォーマットファイル:

データベースをアクセスする拡張タグを記述して、データベースの処理を行います。作成する業務に応じて

任意の個数のファイルを作成します。フォーマットファイルの作成については、本章および“第5章 フォーマッ

トファイル”から“第8章 関数”を参照してください。

“3.6.11 共有セション”のサンプルプログラムで用いているファイルの構成を一例として説明します。“3.6.11 共有

セション”のサンプルプログラムでは、以下のようなファイル構成となっています。

WebDBtoolsのインストールディレクトリ

sampleディレクトリ:サンプルに関するファイル全体を配置するディレクトリ

format_publicディレクトリ:共有セションのフォーマットファイル配置ディレクトリ

demo_fmt.html:データベースの検索用のフォーマットファイル

shibori_fmt.html:demo_fmt.htmlの画面から更に条件を絞り込んだ検索用のフォーマットファイル

htmlデイレクトリ:htmlファイル用のディレクトリ

demo_cookie.html:フォーマットファイルに処理依頼するHTMLファイル

- 18 -

Page 26: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

公開用のユーザIDの準備

共有セションでは、WebScriptサーバの起動時にWebScriptセションが生成されます。したがって、アクセス環境の

データベース利用者情報には、共有セションで利用するデータベースにアクセスが可能な(適切な権限を保持し

た)ユーザIDを準備します。

環境パラメタの準備

共有セションを利用する場合、共有セションのアプリケーション環境パラメタの準備とサーバ環境パラメタの設定

値を変更します。共有セションのアプリケーション環境パラメタには、利用するRDBシステム名、データベース名、

フォーマットファイル情報および利用者情報を指定します。

“3.6.11 共有セション”のサンプルプログラムのアプリケーション環境パラメタの指定のイメージを以下に示します。

なお、アプリケーション環境パラメタの指定例については、“3.6.11 共有セション”を参照してください。

主要な要素 指定値

RDBシステム名 rdbsys1

データベース名 SAMPLE

フォーマットファイル情報 format_publicディレクトリのパス名

利用者情報 ユーザIDとパスワード

アプリケーション環境パラメタの詳細は、“第9章 環境パラメタ”を参照してください。

共有セションの環境パラメタの指定のイメージを以下に示します。

共有セションの実行の流れ

“3.6.11 共有セション”のサンプルプログラムを例に共有セションの実行の流れを説明します。

- 19 -

Page 27: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

1. 依頼HTML画面表示

URLに、フォーマットファイルに処理を依頼するためのHTMLファイルを(本例では、demo_cookie.html)指定し、処理依頼画面を表示します。

2. 検索依頼

依頼画面に表示された検索実行要求を依頼します。検索を実行するフォーマットファイル(demo_fmt.html)を引数として、wit_fmtrコマンドに依頼します。本例では、製品名を入力し、検索を実行します。

wit_fmtrコマンドにより、フォーマットファイルの拡張タグ(!DO "SELECT")が実行されデータベースからデー

タが検索されます。

3. 検索結果表示

データベースから検索されたデータを埋め込んだ結果が表示されます。

共有セションには、セション利用した環境を保持するための変数(グローバル変数)は利用できないため、

セションが利用した環境(ここでは、検索に利用した条件)を、Cookieに記憶しておきます。Cookieの設定に

ついては、「6.6.2 <!SETCOOKIE>」を参照してください。

- 20 -

Page 28: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

4. 絞込みの検索依頼

検索結果画面に対して、更に絞込み要求を依頼します。絞込みを行うフォーマットファイル(shibori.html)を引数として、wit_fmtrコマンドに依頼します。

wit_fmtrコマンドにより、フォーマットファイルの拡張タグ(!DO "SELECT")が実行されデータベースのデー

タが絞込み条件で再検索されます。

5. 終了

終了時は、トップ画面への推移により操作を終了します。

3.3 拡張タグの基本要素

WebScriptは、フォーマットファイルに記述されるHTMLタグとHTML拡張タグのうち、拡張タグ部分を、サーバサイドの処

理で動的なHTMLに変換します。拡張タグの基本要素および主なタグの利用方法の概要について説明します。構文の

詳細は、“第6章 WebScript拡張タグ”を参照してください。

フォーマットファイルのタグ形式と拡張タグの操作規則

WebScriptは、フォーマットファイル中のHTMLおよびHTML拡張タグを処理します。タグは以下の形式をしています。

<タグ名 [パラメタ1[パラメタ2] ・・・] ] >

パラメタは、“パラメタ値”、“パラメタ名=パラメタ値”、“パラメタ名”のどれかの形式をとります。パラメタ名は、決められた文字列

(キーワード)から構成されます。パラメタ値は任意の値です。

拡張タグは、タグ名の先頭に、「!」が付きます。

HTMLタグ例:<INPUT TYPE="txt" NAME="var" VALUE="value1">

拡張タグ例:<!DO "SELECT COL1,COL2 FROM SCM.TBL1 WHERE COL1=\’KEY01\’" RESULT=rslt>

拡張タグには、定数や変数の基本項目と変数を処理する機能があります。拡張タグの変数には、型がなく、動的に文字

列か数値が設定されます。

例1:変数への値の設定

<!SETVAR>は、拡張タグの変数に値を代入する拡張タグです。例では2つのパラメタを指定しています。

<!SETVAR a 10> ―――― 拡張タグ変数aに数値定数10を代入

<!SETVAR b 20> ―――― 拡張タグ変数bに数値定数20を代入

<!SETVAR str "My Dog"> ― 拡張タグ変数strに文字列定数"My Dog"を代入

- 21 -

Page 29: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<!SETVAR v1 a> ―――― 拡張タグ変数v1に変数aの内容を代入

<!SETVAR v2 str> ――― 拡張タグ変数v2に変数strの内容を代入

拡張タグには、変数、演算、関数、制御構造などの要素があります。すべての要素で、以下の規則が適用されます。

- 拡張タグのパラメタが単純な英数字の連続でない場合は、引用符で囲むことにより1つのパラメタと解釈させるこ

とができます。

- 二重引用符で囲むと内部が評価(演算や型の変換)されず、1つの文字列(パラメタ)と解釈されます。

例2:文字列の代入での二重引用符の利用

変数v3にMy Dogを代入

<!SETVAR v3 My Dog> ――(構文誤り)

<!SETVAR v3 "My Dog"> ― (正)

<!SETVAR v3 ‘My Dog’> ――(構文誤り:My Dogを変数と解釈する)

<!SETVAR v3 ‘"My Dog"’> ―(正:引用符は1つのパラメタという意味で利用される)

例3:引用符の利用

変数v3に、変数aと変数bの値を加えた値を代入

<!SETVAR v3 a + b> ―――(構文誤り)

<!SETVAR v3 "a + b"> ――(変数v3には文字列"a + b"が代入される)

<!SETVAR v3 ‘a + b’> ―――(正)

例4:引用符と二重引用符の利用

変数strに入っている文字列の4文字目から4文字がDogsなら、outstrに値を設定

<!SETVAR str "My Dogs">

<!IF ‘substr(str,3,4) eq "Dogs"’>

<!SETVAR outstr str>

<!/IF>

基本要素の種類

WebScriptの拡張タグは、以下に示す言語要素をもっています。

大分類 小分類 機能

変数 ユー

変数

グローバル変数 フォーマットファイル間でも有効な変数

ローカル変数 フォーマットファイル内の変数

システム変数 WebScriptであらかじめ与えられている変数

定数 文字列 文字の処理(結合、比較など)が可能

数値 数値の処理(比較、四則演算)が可能

変数の変換 置換 タグ内にWebScript変数の値を埋め込む

REPLACE,HREPLACE タグとタグの間にWebScript変数の値を埋め込む

値の種類 単値 アトミックな値(これ以上分解できない値)

リスト 複数の値(配列と同様に要素に値を複数もつ)

代入 変数への値の設定

演算、参照 変数参照、四則演算、論理式、

リスト生成、文字列処理

関数 文字列 文字列の変換、部分取出しなど

数学 三角関数、べき乗、指数、対数、ルート、絶対値

リスト 結合、分解、ソート、リスト要素処理

- 22 -

Page 30: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

大分類 小分類 機能

時間 GMT、LOCAL時間取得

変数 変数定義判定

HTML 文字のHTML表現のサポート

制御構造 IF,ELSE,ELSEIF 判定

FOR 条件ループ

FOREACH リスト処理条件ループ

WHILE 条件ループ

BREAK FOR、FOREACH、WHILE 抜出し

CONTINUE FOR、FOREACH、WHILE 現処理スキップ

THROW 例外通知

CATCH 例外取出し

ABORT 処理中止

データベース DO データベースのデータ操作や定義などの操作

TRANSACTION トランザクションのコミットとロールバック

エラー処理 ERRORHANDLE エラー処理モード変更

Cookie SETCOOKIE COOKIEパッケージ変数設定

WebScriptの定数、変数

定数

WebScriptの定数には、数値定数および文字列定数があります。文字列定数は、二重引用符(")または引用符(’)で

囲んで表現します。数値定数には、10進、8進、16進があります。WebScript内部では、数値を、実数の倍精度の浮動

小数点で表現しています。

例:数値定数

100

例:文字列定数

"WebScript"

変数

変数には、ユーザ変数(グローバル変数、ローカル変数)とシステム変数があります。

グローバル変数は、フォーマットファイル間のWebScriptセションで、利用できます。ローカル変数は、対象フォーマッ

トファイル内だけで有効です。システム変数は、WebScriptにより既定の形式の変数で、QUERY、COOKIEおよび

SYSTEMの各パッケージ変数があります。

QUERYパッケージ変数は、WebクライアントからGETのURL、POSTのFORMで送信された値です。COOKIEパッケー

ジ変数は、Webクライアントから送られてきたCOOKIEの値です。SYSTEMパッケージ変数は、WebScriptで定められ

ている変数です。

QUERYパッケージ変数の例:QUERY::var(<INPUT TYPE="text" NAME="var"

VALUE="value1">という要素の例)

COOKIEパッケージ変数の例: COOKIE::name (nameという名前のCOOKIEの例)

SYSTEMパッケージ変数の例: SYSTEM::DB_ERRORCODE(エラーメッセージの変数の例)

グローバル変数とローカル変数は、重複しない任意の名前を利用できます。

変数は以下の利用ができます。

- WebDBtoolsの拡張タグで、その引数として利用できます。(拡張タグのパラメータ、拡張タグパラメータ中の演算

のオペレータ、組込み関数の引数)

- 23 -

Page 31: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

- ほかの拡張タグやHTMLタグの中に、変数を埋め込み、その値を埋め込む(変数の置換と値の解釈の項を参

照)

代入

変数への値の代入は、<!SETVAR>拡張タグにより行います。

<!SETVAR outVar inName>outVar変数にinNameの定数や変数の内容を設定します。

例:

<!SETVAR city ’"tokyo"’> cityに"tokyo"が設定されます。

<!SETVAR city ’1’> cityに1が設定されます。

変数の置換と値の解釈

WebScriptは、“パラメタ値”に、拡張タグの変数を記述し、タグ内に記述した変数を置換する機能があります。パラメタ値

に拡張タグの変数を記述する場合には、先頭に“$”を付け、変数名を括弧で囲みます。以下の2つの条件を満たしてい

る場合に、括弧は省略できます。

・ 変数名が単純な英字数字またはアンダースコアだけで、記述している場合

・ ") "の直後の文字が英数字でないか、またはアンダースコアでない場合

例:animalを"Dog"、numberを100に指定した場合

括弧の省略不可:$(animal)#100 = $animal#100 →(展開結果:Dog#100)

括弧の省略:$(animal)$(number) = $animal$number →(展開結果:Dog100)

括弧の省略不可:$(animal)100 →(展開結果:Dog100)

括弧の省略不可:$(animal)_100 →(展開結果:Dog_100)

フォーマットファイルの変数の置換は、以下のような3段階の過程で処理されます。

1. パラメタの分解

タグのパラメタを空白を区切りとして分解します。

<!SETVAR v1 ‘$a + $b’>↓

タグ:!SETVAR、第1パラメタ:v1, 第2パラメタ: ‘$a + $b’

2. 変数の置換

先頭に$のついた変数を実際の値に置き換えます。二重引用符内であっても置換が行われます。

aの値が20、bの値が30とします。

‘$a + $b’↓

’20 + 30’

3. WebScriptの言語による値の解釈

変数の置き換えが済んだ結果を解釈し,拡張タグを処理します。

’20 + 30’↓

50拡張タグの実行で、v1には50が代入されます。

ただし、共通の規則により、二重引用符で囲まれた、パラメタは、解釈はされず1つの文字列となります。以下に例を示し

ます。

<!SETVAR v1 "$a + $b">

↓(拡張タグ変数の展開)

<!SETVAR v1 "20 + 30"> ―― 変数aの値と変数bの値が展開される

- 24 -

Page 32: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<!SETVAR v1 "20 + 30"> ――"20 + 30"は、二重引用符で囲んでいるため

v1には、"20 + 30"という文字列が入ります。

変数の置換は、フォーマットファイル中に記述したHTML構文中も同様に行われます。

例:

<INPUT TYPE=text NAME="$varname" value="$val"> (varnameがitem, valueが10の場合)

<INPUT TYPE=text NAME="item" value="10">

変数のHTML置換

フォーマットファイル中に記述したHTML構文中に、WebScriptの変数を埋め込むことができます。変数を、HTMLタグ内

に記述する場合は、変数の先頭にドル記号“$”を付加します。

例:

<INPUT TYPE="text" NAME="$varname" VALUE="$val"> (varnameがitem, valが10の場合)

<INPUT TYPE="text" NAME="item" VALUE="10">

変数のHTML変換

WebScriptの変数を、HTMLのタグとタグの間に展開するための拡張タグとして、<!REPLACE>拡張タグと<!HREPLACE>拡張タグがあります。

例:

<!SETVAR var001 ’"Hello"’>

<B><!REPLACE var001></B>

値の種類(コンテキスト)

WebScriptの変数に型は存在しません。変数の書かれている場所の文脈により、型が動的に決まります。これをコンテキ

ストと呼びます。コンテキストは、数値、文字などの単値またはリストのどれかになります。

単値

アトミックな値(これ以上分解できない値)で、数値の単値と文字列の単値があります。

単値生成の例:数値

<!SETVER ATM01 100>

単値生成の例:文字列

<!SETVER ATM02 "WebScript">

リストとリストの処理

配列同様に複数の値を保持するデータで、リストの要素は、単値またはリストです。リストは、要素の番号または要素

に付けたキーで参照できます。

リスト生成の例:

<!SETVAR LIST01 ’("red", "blue", "green")’>

リスト生成の例:

<!SETVAR ’EXAMJOHN{mathematics}’ 100>

<!SETVAR ’EXAMJOHN{geometory}’ 50>

<!SETVAR ’EXAMMARRY{mathematics}’ 80>

<!SETVAR ’EXAMMARRY{geometory}’ 90>

<!SETVAR ’EXAMALL[0]’ EXAMJOHN>

<!SETVAR ’EXAMALL[1]’ EXAMMARRY>

- 25 -

Page 33: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

リスト参照の例:

LIST01[1] (blueが参照される)

リスト参照の例:

EXAMJOHN[1] (50が参照される)

EXAMALL[1][1] (90が参照される)

EXAMALL[1]{geometory} (90が参照される)

演算

以下の演算があります。演算の意味については、“7.8 演算子”を参照してください。

!:否定、-:符号変更、*:積、/:商、%:剰余、+:和、-:差

<,>,<=,>=,==,!=:数値比較記号、

lt,gt,le,ge,eq,ne:文字列比較記号

.:文字列結合

&&:and条件, ||:or条件, ( ):演算順序変更

例:

<!SETVAR animal ’"dog"’>

<!SETVAR count ’010’>

<!SETVAR count ’count+100’>

<INPUT TYPE="text" NAME="$animal$count" VALUE="snoppy">

<INPUT TYPE="text" NAME="dog110" VALUE="snoppy">

組込み関数

文字列、数学、リスト、時間、変数の定義判定、HTML表現などの関数があります。詳細は、“第8章 関数”を参照してくだ

さい。

例:

<!SETVAR start '3'>

<!SETVAR len '2'>

<!SETVAR str '"abcdefghi"'>

<!SETVAR sstr 'substr( str, start, len )'>

<!REPLACE sstr>

制御構造

制御構造として以下のものがあります。詳細は、“第6章 WebScript拡張タグ”を参照してください。

<!IF>、<!ELSE>、<!ELSEIF>:条件判定文

<!FOR>、<!WHILE>、<!FOREACH>:条件ループ

<!BREAK>、<!CONTINUE>、<!THROW>、<!CATCH>、<!ABORT>:制御移動

データベース

<!DO>拡張タグは、データベースをSQL文およびRDBコマンドで処理し、結果を得る拡張タグです。検索時は実行結果

と結果データが、そのほかは実行結果が出力されます。

検索結果は、表イメージを2次元のリストに格納します。リストのキーには、列名が付けられています。

例:伝票表から「伝票番号」と「商品」を検索します。

<!DO "SELECT 伝票番号,商品 FROM STOCKS.伝票表" RESULT=r>

<TABLE>

<!FOREACH r t>

<TR>

- 26 -

Page 34: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<TD><!REPLACE t{伝票番号}</TD>

<TD><!REPLACE t{商品}</TD>

</TR>

<!/FOREACH>

</TABLE>

データベースのSQL文は、トランザクションにより実行されます。トランザクションには以下の機能があります。

- SQL実行時に、自動的にアクセスした範囲に排他制御(ロック)を行います。WebScript実行時は、Symfoware/RDBのデフォルトのモードで排他制御が行われます。

- データベースの処理範囲に行われた排他制御は、トランザクションのCOMMIT、ROLLBACKのどちらかの命令

により解放されます。

- データベースの更新を伴う処理を行った結果は、COMMITかROLLBACKを実行した時点で決まります。COMMITを実行した場合は、すべての更新結果が反映されます。ROLLBACKを行った場合は、すべての更新結果が反

映されません。

参照

排他制御については、“アプリケーション開発ガイド(埋込みSQL編)”の“排他制御”を参照してください。

WebScriptを利用してデータベースの処理を実行する場合は、以下のように処理を行う必要があります。

- <!DO>タグで、データベースの処理を行う命令を実行した場合は、フォーマットファイルの処理の終了までに、必ず

<!DO "COMMIT">, <!DO "ROLLBACK">によりトランザクションを終了させる必要があります。

- トランザクションを終了させる命令には、以下のタグもあります。

<!TRANSACTION "COMMIT"> ――― <!DO "COMMIT">と同じ

<!TRANSACTION "ROLLBACK"> ――― <!DO "ROLLBACK">と同じ

<!ABORT> ――― 本タグで、内部的に<!DO "ROLLBACK">が実行されます。

- 個別セションの場合は、複数のフォーマットファイルで一連の処理(トランザクション)を実行する場合があります。

この場合は、少なくとも、一連のフォーマットファイルの 後のフォーマットファイルで、必ず<!DO "COMMIT">,<!DO "ROLLBACK">によりトランザクションを終了させる必要があります。

<!TRANSACTION>拡張タグは、トランザクションのCOMMITやROLLBACKを実行する拡張タグです。<!TRANSACTION>拡張タグは、トランザクション処理の拡張用機能であり、現在はそれぞれ、<!DO "COMMIT">、<!DO "ROLLBACK">タグと同様に機能します。

<!TRANSACTION>拡張タグは、トランザクションをデータベースの操作用のSQLと分けて、トランザクションの範囲を

明示するような場合(トランザクションの範囲のコメント性の強調)に利用できます。それ以外は、<!DO "COMMIT">、<!DO "ROLLBACK">タグを利用してください。

- 27 -

Page 35: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

エラー処理

エラーが発生しても異常終了せず、エラー解析処理することができます。環境パラメタファイルに、エラー処理が指定さ

れていない場合に実行します。

例:

<!ERROHANDLE ON TYPE=DB>

<!DO "SELECT 伝票番号,商品 FROM STOCKS.伝票表" RESULT=r>

<!IF ’SYSTEM::DB_ERRORCODE ne "00000"’>

<!SETVAR ans "failure">

<!SETVAR errormsg SYSTEM::DB_ERRORMSG>

<!DO "ROLLBACK">

<!ELSE>

<!SETVAR ans "success">

<!/IF>

<!ERRORHANDLE DEFAULT>

Cookie

HTTPヘッダのSet-Cookie:に値を設定します。

3.4 拡張タグによるデータベース処理

WebScriptでは、データベースのアクセス結果を、ブラウザで表示可能なHTMLに変換します。結果は、データベースの

内容をテキスト形式に変換したものを、WebScriptのリスト変数に作成してHTMLに埋め込みます。

バイナリデータをBLOBから取り出す場合は、結果を画像に変換する機能により、HTMLに画像として埋め込みます。

数値・文字データ検索

数値、文字データの検索(バイナリ以外のデータ)については、データベースの結果をテキストに変換して、HTMLに埋

め込みます。

以下に、伝票番号と商品からなる伝票表から、数値データを取り出す場合の、フォーマットファイルの記述と処理の推移

を示します。

(1)利用者が開発したフォーマットファイルを読込み、データベースの検索処理(SQL文)を取り出します。

(2)取り出した拡張タグ命令のSQL文をデータベースサーバで実行し、結果を得ます。結果の集合を変数(r)に取り出

- 28 -

Page 36: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

し、データベースのデータをテキスト形式に変換します。

(3)取り出した拡張タグ命令で、データ取出し処理(<!FOREACH>)を実行します。利用者が埋込み命令(<!REPLACE>)で指示した位置に、各列の検索結果を埋め込んだHTMLを作成し、ブラウザに返却します。

イメージデータの検索

バイナリデータ(BLOB型の列)については、データベースの結果を画像とみなし、検索結果を画像として処理できる形

式に変換し、HTMLに画像データとして埋め込みます。

以下に、BLOB型の列に会社外観というイメージデータを含む表を、会社表から会社外観のデータを取り出し、その結果を

GIF形式で得る場合の、フォーマットファイルの記述と処理の推移を示します。

(1)利用者が開発したフォーマットファイルを読み込みます。

(2)結果は、拡張タグのないHTML形式に変換します。

(3)HTMLに変換された結果、WebScriptのwit_mediaコマンドに処理を依頼します。

(4)依頼の引数にあるSQL文から、対象のBLOB型の列のデータ検索を実行して、結果を受け取ります。

(5)wit_mediaコマンドの引数に渡されたイメージのタイプ(本例ではGIF)に応じて、結果をHTMLの画像データに変換

してブラウザに返します。

データベース処理のための拡張タグの処理

WebScriptは、データベース処理のために、データベースアクセスタグがあります。データベースアクセスタグでは、以下

の処理を行うことができます。

・ データベース構築のためのRDBコマンド

・ データベースの更新処理のためのSQL文

・ データベース定義処理のためのSQL文

・ トランザクションのためのSQL文

・ データベースの格納構造情報検索

データベースアクセスタグの利用方法の例を以下に示します。例では、伝票番号と商品からなる伝票表の定義、伝票表の

DSOおよびDSIの定義、rdbfmtコマンドによりDSIの初期化、INSERT文によるデータの挿入をしています。

- 29 -

Page 37: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

(1)拡張タグから処理するSQL文を取り出します。

(2)データベースサーバに、順次、SQL文の実行を依頼します。

(3)フォーマットファイルの実行結果をブラウザに通知します。

データベースの格納情報検索拡張タグは、データベースの定義結果を確認するためのものです。

格納構造情報の取得方法の例を以下に示します。例では、定義した伝票表のDSO名とタイプを取得しています。

(1)利用者が開発したフォーマットファイルを読み込み、格納構造情報を取り出します。

(2)取り出した拡張タグ命令のSQL文を、データベースサーバで実行し、結果を得ます。

結果の集合を、WebScript変数(r)に取り出します。データベースのデータはテキスト形式に変換されます。

(3)取り出した拡張タグ命令のデータ取出し処理(<!FOREACH>)を、実行します。検索結果の各行を処理して、利用者

- 30 -

Page 38: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

が埋込み命令(<!REPLACE>)で指示した位置に、各列の値を埋め込んだものを作成します。この結果をHTMLに変換

して、ブラウザに返却します。

3.5 データベース連携の利用形態

データベース連携機能を利用して、ブラウザからデータベース連携業務を行う場合の利用形態および留意事項につい

て説明します。

利用の種類とセキュリティ

WebScriptは、簡易にデータベースの情報公開を可能にしますが、これらのセキュリティ対策を検討することなく、業務を

運用すべきではありません。ブラウザによるデータベースアクセス業務には、以下があります。利用形態に応じて、適切

なセキュリティ対策が必要となります。

・ インターネットにより不特定の利用者がアクセスする場合、一般に利用者が多くなる可能性があり、利用者が何をす

るか、どのような利用者かなどは不明であるため、ブラウザとWebサーバおよびサーバ内の高度なセキュリティが必要

とされます。

・ 情報共有のためにイントラネットのファイアウォール内で利用する場合、利用者の数は業務により変わります。インター

ネットによる利用に比べ、利用者にある程度のモラルが期待できるため、インターネットほど高度なセキュリティは必

要ありません。

・ 情報の共有範囲が狭く、ローカルな(外部からのアクセス不能な)ネットワーク内での限られた利用者により利用する

形態があります。一般に、少人数による利用と考えられるため、インターネットおよびイントラネットによる利用に比べ、

セキュリティを強化する必要はありません。

インターネットによる不特定利用者からのアクセス

インターネットによる利用者の特長は、以下のとおりです。

- 不特定で多数となる可能性が多い

- ネットワークおよび業務に対してアカウントをもつ

このような利用形態では、Webセキュリティを、高度にしておく必要があります。利用者の管理には、以下の対策を検

討し、Webサイトやサーバの重要度に応じて、管理のレベルを決めて運用する必要があります。

- ディレクトリサービスソフトウェアによるネットワーク利用認証管理

- Webサーバサポートの暗号化セキュリティによるパスワードの保護

- WebサーバのアクセスコントロールによるWebドキュメントの保護

この利用形態では、利用者とWebサーバへの結合管理、Webサーバ内のドキュメントアクセス管理、Webクライアント

への情報漏洩防止などの対策が必要です。

インターネットによる利用形態の場合、WebScriptのページは公開せず、業務ごとに利用者保護を行ってください。Webセキュリティの認証が正しい場合だけ、WebScriptセションが利用可能となるように運用してください。以下にイメージ

を示します。

- 31 -

Page 39: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

イントラネット内での利用

イントラネット内の利用者の特長は、以下のとおりです。

- 利用者は特定されるが、利用者数は業務により異なる

- ネットワークおよび業務に対してアカウントをもつ

- 利用者は、ある程度のモラルをもって、アクセスを守ることが期待できる(パスワードの保護は必要であるが、ネッ

トワークの送信内容盗聴レベルの保護は必要ない場合が多い)

Webセキュリティは、Webサイトのドキュメント機密性の内容に応じた設定が必要です。利用者の管理には、一般的な

Webレベルの、WebサーバのアクセスコントロールによるWebドキュメント保護が必要です。

この利用形態では、Webサーバ内のドキュメントアクセス管理の対策が必要です。ただし、情報の内容によって、この

ような管理は必要ない場合もあります。

このような利用形態の場合、WebScriptのページは公開せず、業務ごとに利用者保護を行ってください。Webセキュリ

ティの認証が正しい場合だけ、WebScriptセションを利用可能となるように運用してください。以下にこのイメージを示

します。

ローカルなネットワーク内での利用

ローカルな環境での利用者の特長は、以下のとおりです。

- 32 -

Page 40: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

- 情報利用の関連者に特定される

- 対象ネットワークおよびWebサーバ環境にアカウントをもつ場合がある

- 利用者は特定され、ネットワークの送信内容盗聴レベルの保護は不要になる

このような利用形態の場合、利用者がユーザIDとパスワードをブラウザから動的に指定するWebScriptの運用も考え

られます。以下にこのイメージを示します。

3.6 拡張タグの使用例

WebScriptのアプリケーションを作成する場合に役立つ、いくつかの使用例とその簡単な説明を紹介します。サンプルア

プリケーションは、製品に添付されており、WebDBtoolsをインストールしたあとのディレクトリ中のsampleディレクトリにあり

ます。

ここで説明しているサンプルアプリケーションは、次のデータベースの構造を対象としています。

・ スキーマ名:WL_SCHEMA

・ 表名:製品表

・ 表の構造:

製品名 VARCHAR(50) UNIQUE NOT NULLカテゴリ VARCHAR(50)機能 VARCHAR(100)型番 VARCHAR(20)数量 INTEGER価格 INTEGER説明 VARCHAR(500)写真 BLOB(30K)

- 33 -

Page 41: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

3.6.1 個別セション

処理の内容

個別セションのアプリケーションの例を説明します。

サンプルプログラム

サンプルプログラムは、SolarisおよびLinuxの場合の例です。Windows(R)の場合は、“9.2.2 Windows(R)の場合の設定

方法”を参照してください。

start.html

・・・

<A HREF="login.html">個別セション</A><BR>

<A HREF="demo_cookie.html">共有セション</A><BR>

・・・

login.html

・・・

<FORM ACTION="/cgi-bin/wit_gwd" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_env" VALUE="sample.env">

<TABLE BORDER=0>

<TR>

<TD>ユーザID</TD><TD>:</TD><TD><INPUT TYPE="TEXT" NAME="WIT_userid"></TD>

</TR>

<TR>

<TD>パスワード</TD><TD>:</TD><TD><INPUT TYPE="password" NAME="WIT_passwd"></TD>

</TR>

</TABLE>

<INPUT TYPE="SUBMIT" VALUE="ログイン">

</FORM> (1)

(1) データベースへのログイン

<FORM>タグを使用してブラウザ上でユーザID、パスワードを設定します。[ログイン]ボタンをクリックすると、設定された値で

wit_gwdコマンドが実行され、セションが開設されます。このとき、アプリケーション環境パラメタとしてsample.env が参照

されます。

- 34 -

Page 42: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

sample.env(アプリケーション環境パラメタ)

・・・

DBName = SAMPLE

userid = XXXXXXXX

passwd = XXXXXXXX

homePage = /html/demo.html (2)

formatDir = /opt/FJSVsymwd/sample/format_private

・・・

(2) ホームページの表示

アプリケーション環境パラメタのhomePageパラメタに指定されたdemo.htmlが表示されます。

demo.html

・・・

<FORM ACTION="/cgi-bin/wit_fmtr" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="demo_fmt.html">

製品名:<INPUT TYPE="TEXT" NAME="Name1"><BR>

<INPUT TYPE="SUBMIT" NAME="Search" VALUE="検索">

</FORM> (3)

・・・

(3) 検索文字列の指定

<FORM>タグを使用して検索文字列を“Name1”に設定し、demo_fmt.html に処理を引き継ぎます。

demo_fmt.html

・・・

<!DO "SELECT 製品名,カテゴリ,機能,型番

FROM WL_SCHEMA.製品表

WHERE 製品名 LIKE ’%$QUERY::Name1%’" RESULT=rslt ONERROR="ERROR1"> (4)

・・・

<TABLE BORDER=1>

<TR>

<TD>製品名</TD>

<TD>カテゴリ</TD>

<TD>型番</TD>

</TR>

<!FOREACH rslt t>

<TR>

<TD>

<!SETVAR vName ’URLencode(t{製品名})’>

<A HREF="$SYSTEM::FMTR?WIT_html=media.html&Name=$vName">

<!HREPLACE ’t{製品名}’></A>

</TD>

<TD><!HREPLACE ’t{カテゴリ}’></TD>

<TD><!HREPLACE ’t{型番}’></TD>

</TR>

<!/FOREACH>

</TABLE> (5)

・・・

<FORM ACTION="$SYSTEM::LOGOUT" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="login.html">

<INPUT TYPE="SUBMIT" VALUE="ログアウト">

</FORM> (6)

(4) データベースの検索

データベースから、“Name1”で指定された文字列を含む情報を検索し、結果を“rslt”に格納します。

検索時にエラーが発生した場合、“ONERROR”で指定されたエラー処理が行われます。

(5) 検索結果の表示

検索した情報の製品名、カテゴリ、型番をすべて表示します。

- 35 -

Page 43: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

(6) データベースからのログアウト

wit_logoutコマンドを実行します。[ログアウト]ボタンをクリックすると、login.html が表示され、セションを終了します。

ポイント

wit_gwdコマンドは個別セションでデータベースにアクセスする場合に必要なコマンドです。共有セションでデータベー

スにアクセスする場合は必要ありません。

フォーマットファイルでwit_gwdコマンドを使用する場合、コマンドをそのまま記述しないで、変数SYSTEM::GWDを使用

することができます。

例:<FORM ACTION="$SYSTEM::GWD" METHOD="POST">

wit_gwdコマンドのWIT_useridは省略可能です。省略した場合は、アプリケーション環境パラメタのuseridに定義され

ている値が指定されます。

wit_gwdコマンドのWIT_passwdは省略可能です。省略した場合は、アプリケーション環境パラメタのpasswdに定義さ

れている値が指定されます。

フォーマットファイルでwit_logoutコマンドを使用する場合、コマンドをそのまま記述しないで、変数SYSTEM::LOGOUTを使用することができます。

例:<FORM ACTION="$SYSTEM::LOGOUT" METHOD="POST">

wit_logoutコマンドのパラメタとしてWIT_htmlとWIT_urlpathの両方が同時に指定された場合は、WIT_htmlが指定さ

れたものとみなします。

wit_logoutコマンドのパラメタを省略した場合、アプリケーション環境パラメタのlogoutFormatに指定されたフォーマッ

トファイルが処理され、セションを終了します。パラメタもアプリケーション環境パラメタのlogoutFormatも指定されてい

ない場合は、終了したことを示すメッセージが表示され、セションを終了します。

3.6.2 データ検索:全件検索

処理の内容

データベースを全件検索し、検索した結果を5件ずつ表示します。

データベースを検索するには拡張タグの<!DO>を使用します。この<!DO>タグでSQL文を宣言し、データベースを検索

します。

検索した情報は、拡張タグ<!VAR>で宣言されたグローバル変数を利用して5件ずつ表示されます。

- 36 -

Page 44: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

サンプルプログラム

page.html

・・・

<!IF ’defined(rslt)’>

<!UNDEFVAR rslt>

<!/IF>

<!VAR rslt SCOPE=GLOBAL> (1)

<!DO "SELECT 製品名,カテゴリ,機能,型番,数量,価格,説明

FROM WL_SCHEMA.製品表" RESULT=rslt> (2)

<!IF ’defined(tbl)’>

<!UNDEFVAR tbl>

<!/IF>

<!VAR tbl SCOPE=GLOBAL VALUE=’listlen(rslt)’>

全部で <!HREPLACE tbl> 件あります.<BR>

<!IF ’!defined(start)’>

<!UNDEFVAR start>

<!/IF>

<!VAR start SCOPE=GLOBAL> (3)

<!SETVAR start 0>

(そのうち,1 件 ~

<!IF ’5 < tbl’> 5

<!ELSE> <!HREPLACE tbl> <!/IF> 件を表示しています)<BR>

<TABLE BORDER=1>

<TR>

<TD>製品名</TD>

<TD>カテゴリ</TD>

<TD>機能</TD>

<TD>型番</TD>

<TD>数量</TD>

<TD>価格</TD>

<TD>説明</TD>

</TR>

<!FOR i 0 4>

<TR>

<TD><!HREPLACE ’rslt[start+i]{製品名}’></TD>

<TD><!HREPLACE ’rslt[start+i]{カテゴリ}’></TD>

<TD><!HREPLACE ’rslt[start+i]{機能}’></TD>

<TD><!HREPLACE ’rslt[start+i]{型番}’></TD>

<TD><!HREPLACE ’rslt[start+i]{数量}’></TD>

<TD><!HREPLACE ’rslt[start+i]{価格}’></TD>

<TD><!HREPLACE ’rslt[start+i]{説明}’></TD>

</TR>

<!/FOR> (4)

</TABLE>

<!IF ’start+5 < tbl’>

<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="page_fmt.html">

<INPUT TYPE="HIDDEN" NAME="DIRECTION" VALUE="NEXT">

<INPUT TYPE="SUBMIT" VALUE="次のページ">

</FORM> (5)

<!/IF>

・・・

(1) 変数“rslt”の宣言

検索情報を格納する変数“rslt”を、グローバル変数として宣言し、初期値として0を設定します。

(2) データベースの検索

データベースを全件検索し、結果を“rslt”に格納します。

(3) 変数“start”の宣言

表示件数をカウントする変数“start”を、グローバル変数として宣言し、初期値として0を設定します。

(4) 検索情報の表示

“rslt”に格納されている情報を5件表示します。

- 37 -

Page 45: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

(5) 次のページの表示

次のページ(5件以降)を表示する場合、page_fmt.html に処理を引き継ぎます。

page_fmt.html

・・・

全部で <!HREPLACE tbl> 件あります.<BR>

<!IF ’QUERY::DIRECTION eq "PREV"’>

<!SETVAR start ’start-5’>

<!ELSE>

<!SETVAR start ’start+5’>

<!/IF> (6)

(そのうち,<!HREPLACE ’start+1’> 件 ~

<!IF ’start+5 < tbl’><!HREPLACE ’start+5’>

<!ELSE><!HREPLACE tbl><!/IF> 件を表示しています)<BR>

<TABLE BORDER=1>

<TR>

<TD>製品名</TD>

<TD>カテゴリ</TD>

<TD>機能</TD>

<TD>型番</TD>

<TD>数量</TD>

<TD>価格</TD>

<TD>説明</TD>

</TR>

<!FOR i 0 4>

<TR>

<TD><!HREPLACE ’rslt[start+i]{製品名}’></TD>

<TD><!HREPLACE ’rslt[start+i]{カテゴリ}’></TD>

<TD><!HREPLACE ’rslt[start+i]{機能}’></TD>

<TD><!HREPLACE ’rslt[start+i]{型番}’></TD>

<TD><!HREPLACE ’rslt[start+i]{数量}’></TD>

<TD><!HREPLACE ’rslt[start+i]{価格}’></TD>

<TD><!HREPLACE ’rslt[start+i]{説明}’></TD>

</TR>

<!/FOR> (7)

</TABLE>

<BR>

<!IF ’start-5 >= 0’>

<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="page_fmt.html">

<INPUT TYPE="HIDDEN" NAME="DIRECTION" VALUE="PREV">

<INPUT TYPE="SUBMIT" VALUE="前のページ"> (8)

</FORM>

<!/IF>

<!IF ’start+5 < tbl’>

<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="page_fmt.html">

<INPUT TYPE="HIDDEN" NAME="DIRECTION" VALUE="NEXT">

<INPUT TYPE="SUBMIT" VALUE="次のページ"> (9)

</FORM>

<!/IF>

・・・

(6) 結果表示画面の設定

[次のページ]ボタンがクリックされて画面が表示された場合と、[前のページ]ボタンがクリックされて画面が表示された場

合に分けて、この画面では何番目のデータから表示するかを設定します。

引き継いだ“rslt”と“start”を使用して次の5件を表示します。

(7) 検索情報の表示

引き継いだ“rslt”と“start”を使用して次の5件を表示します。

(8) 前のページの表示

前のページを表示する場合、page_fmt.htmlに処理を引き継ぎます。

- 38 -

Page 46: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

(9) 次のページの表示

次のページを表示する場合、page_fmt.htmlに処理を引き継ぎます。

解説

page.html でデータベースの全件検索をし、検索した情報を“rslt”に格納します。

次に、“rslt”から件数のカウントを行う“start”を使用して、 初の5件を表示します。

続けて次の5件を表示する場合、page_fmt.html に処理を引き継ぎます。

page_fmt.html では、page.html から引き継いだ“rslt”から、同じく引き継いだ“start”を利用して次の5件を表示します。

さらに次の5件を表示する場合、または前の5件を表示する場合は、page_fmt.html に処理を引き継ぎます。

ポイント

個別セションでは、グローバル変数を使用することができますが、共有セションでは使用することができません。

共有セションでは、グローバル変数ではなく、cookieを使用します。cookieの使用については、“3.6.11 共有セション”を

参照してください。

3.6.3 データ検索:複数検索

処理の内容

チェックボックスで選択された複数の項目を、データベースから検索し、その結果を表示します。

サンプルプログラム

checkbox.html

・・・

<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="checkbox_fmt.html">

<INPUT TYPE="CHECKBOX" NAME="Category" VALUE="カテゴリ LIKE ’オーディオ’">オーディオ<BR>

<INPUT TYPE="CHECKBOX" NAME="Category" VALUE="カテゴリ LIKE ’照明’">照明<BR>

<INPUT TYPE="CHECKBOX" NAME="Category" VALUE="カテゴリ LIKE ’調理’">調理<BR>

<INPUT TYPE="CHECKBOX" NAME="Category" VALUE="カテゴリ LIKE ’日用生活’">日用生活<BR>

<INPUT TYPE="CHECKBOX" NAME="Category" VALUE="カテゴリ LIKE ’コンピュータ’">コンピュータ<BR>

<INPUT TYPE="CHECKBOX" NAME="Category" VALUE="カテゴリ LIKE ’空調’">空調<BR>

<INPUT TYPE="SUBMIT" VALUE="検索">

</FORM> (1)

・・・

(1) 検索項目の指定

チェックボックスでチェックされた項目を“Category”に設定し、checkbox_fmt.html に引き継ぎます。複数項目がチェック

された場合は、“Category”にリストの形式で格納されます。

checkbox_fmt.html

- 39 -

Page 47: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・・・

<!SETVAR cond ’join(" OR ", QUERY::Category)’> (2)

<!DO "SELECT 製品名, カテゴリ, 機能, 型番 FROM WL_SCHEMA.製品表

WHERE $cond" RESULT=rslt> (3)

<TABLE BORDER=1>

<TR>

<TD>製品名</TD>

<TD>カテゴリ</TD>

<TD>機能</TD>

<TD>型番</TD>

</TR>

<!FOREACH rslt t>

<TR>

<TD><!HREPLACE ’t{製品名}’></TD>

<TD><!HREPLACE ’t{カテゴリ}’></TD>

<TD><!HREPLACE ’t{機能}’></TD>

<TD><!HREPLACE ’t{型番}’></TD>

</TR>

<!/FOREACH> (4)

</TABLE>

・・・

(2) 検索対象データの検索可能形式への変換

checkbox.html から引き継いだ“Category”がリスト形式の場合、そのままではデータベースの検索に用いることができま

せん。この場合、リスト関数の“join”を使用して1つの文字列に変換し、データベースが検索できる形式に整形します。

サンプルプログラムでは、“Category”の各要素の間に“OR”を挿入し、変換した結果を“cond”に設定します。

(3) データベースの検索

データベースから“cond”に設定された文字列に合致するもの検索し、結果を“rslt”に格納します。

(4) 検索結果の表示

検索した情報の製品名、カテゴリ、機能、型番をすべて表示します。

解説

checkbox.html で検索する項目をチェックして“Category”に格納し、データベースを検索するためにcheckbox_fmt.htmlへ処理を引き継ぎます。

checkbox_fmt.html では、checkbox.html から引き継いだ“Category”をデータベースで検索できる形に変更します。これ

を検索対象としてデータベースを検索し、結果を表示します。

ポイント

チェックボックスなどを利用して検索条件を設定するときに、複数の項目が選択された場合、各項目は変数にリストの要

素として格納されます。この場合、リスト関数の“join”を利用して1つの文字列に変換するなど、データベースが検索でき

る形式に変換することが必要です。

3.6.4 データ検索:範囲指定検索

- 40 -

Page 48: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

処理の内容

指定された範囲内のデータをデータベースから検索し、その結果を表示します。

サンプルプログラム

ifexam.html

・・・

<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="ifexam_fmt.html">

下限:<INPUT TYPE="TEXT" NAME="Low"> 円 ~ 上限:<INPUT TYPE="TEXT" NAME="High"> 円<BR>

<INPUT TYPE="SUBMIT" VALUE="検索">

</FORM> (1)

・・・

(1) 上限および下限の設定

指定された上限を“high”、下限を“low”に設定し、ifexam_fmt.html に引き継ぎます。

ifexam_fmt.html

・・・

<!IF ’QUERY::Low ne "" && QUERY::High ne ""’> <!-- 下限も上限も0でない場合 -->

<!SETVAR cond "WHERE 価格 >= $QUERY::Low AND 価格 <= $QUERY::High"> (2)

<!ELSEIF ’QUERY::Low ne ""’>

<!SETVAR cond "WHERE 価格 >= $QUERY::Low"> (2)

<!ELSEIF ’QUERY::High ne ""’>

<!SETVAR cond "WHERE 価格 <= $QUERY::High"> (2)

<!ELSE>

<!SETVAR cond ’""’> (2)

<!/IF>

<!DO "SELECT 製品名,価格 FROM WL_SCHEMA.製品表 $cond" RESULT=rslt> (3)

<!IF ’listlen(rslt)==0’>

該当するデータはありません。<BR>

<!/IF>

<TABLE BORDER=1>

<!FOREACH rslt t>

<TR>

<TD><!HREPLACE ’t{製品名}’></TD>

<TD><!HREPLACE ’format(t{価格},"fix:delimit=3")’> 円</TD>

</TR>

<!/FOREACH>

</TABLE> (4)

・・・

(2) “high”、“low”の関係の確認および検索のための文字列の設定

ifexam.html から引き継いだ“high”と“low”の関係を確認します。“high”または“low”に0またはスペースが指定されてい

るかどうかでデータベースを検索するための変数“cond”に設定する文字列が変わります。

(3) データベースの検索

データベースから“cond”に設定された文字列に合致するもの検索し、結果を“rslt”に格納します。

(4) 検索結果の表示

検索した情報の製品名、価格をすべて表示します。

解説

ifexam.html で検索する上限と下限を指定して、それぞれを“high”と“low”に格納し、データベースを検索するために

ifexam_fmt.html へ処理を引き継ぎます。 ifexam_fmt.html では、ifexam.html から引き継いだ“high”と“low”の2つの変

数を、データベースが検索できるように1つの文字列に変換します。これを検索対象としてデータベースを検索し、結果

を表示します。

- 41 -

Page 49: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

ポイント

データベースの範囲検索を行う場合、設定された上限、下限の2つの値によってデータベースを検索するための文字列

が変わってきます。この場合、サンプルプログラムの(2)で示したように、値によって検索式が選択されるようにすることを

お勧めします。

3.6.5 データ検索:絞込み検索

処理の内容

指定された文字列をデータベースから検索し、検索結果を表示します。検索結果が不十分の場合、絞込み条件を設定

して再度検索し、検索結果を表示します。

サンプルプログラム

demo.html

・・・

<FORM ACTION="/cgi-bin/wit_fmtr" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="demo_fmt.html">

製品名:<INPUT TYPE="TEXT" NAME="Name1"><BR>

<INPUT TYPE="SUBMIT" NAME="Search" VALUE="検索">

</FORM>

・・・

demo_fmt.html

・・・

<!IF ’!defined(cond) ’>

<!UNDEFVAR cond>

<!/IF>

<!VAR cond SCOPE="GLOBAL" VALUE="製品名 LIKE ’%$QUERY::Name1%’">

- 42 -

Page 50: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<!DO "SELECT 製品名,カテゴリ,機能,型番 FROM WL_SCHEMA.製品表

WHERE 製品名 LIKE ’%$QUERY::Name1%’" RESULT=rslt ONERROR="ERROR1">

・・・

<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="shibori_fmt.html">

製品名:<INPUT TYPE="TEXT" NAME="Name1"><BR>

<INPUT TYPE="SUBMIT" VALUE="さらに検索">

</FORM> (1)

・・・

(1) 絞込み条件の設定

絞込み条件として、新しく追加された文字列を“Name1”に設定し、shibori_fmt.html に引き継ぎます。

shibori_fmt.html

<!SETVAR cond "製品名 LIKE ’%$QUERY::Name1%’ AND $cond"> (2)

<!DO "SELECT 製品名,カテゴリ,型番 FROM WL_SCHEMA.製品表 WHERE $cond"

RESULT=rslt> (3)

<TABLE BORDER=1>

<TR>

<TD>製品名</TD>

<TD>カテゴリ</TD>

<TD>型番</TD>

</TR>

<!FOREACH rslt t>

<TR>

<TD>

<!SETVAR vName ’URLencode(t{製品名}) ’>

<A HREF="$SYSTEM::FMTR?WIT_html=media.html&Name=$vName">

<!HREPLACE ’t{製品名}’></A>

</TD>

<TD><!HREPLACE ’t{カテゴリ}’></TD>

<TD><!HREPLACE ’t{型番}’></TD>

</TR>

<!/FOREACH>

</TABLE> (4)

(2) 検索条件の設定

現在の検索文字列“cond”と新しい検索文字列“Name1”をANDで関連付けして、再度“cond”として設定します。

(3) データベースの検索

“cond”に設定された文字列条件としてデータベースを検索し、結果を“rslt”に格納します。

(4) 検索結果の表示

検索した情報の製品名、カテゴリ、型番をすべて表示します。

解説

demo_fmt.html から検索に利用した“cond”と、絞込み検索のために、新しく設定された文字列を“Name”に格納し、デー

タベースを検索するためにshibori_fmt.html へ処理を引き継ぎます。shibori_fmt.html では、demo_fmt.html から引き継

いだ“cond”と“Name1”の2つの文字列でデータベースを検索し、結果を表示します。

ポイント

現在の検索文字列と新しく設定した文字列を“AND”で結ぶことで、絞込み検索を行うことができます。

- 43 -

Page 51: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

3.6.6 データ更新:データ追加

処理の内容

新しく作成したデータをデータベースに追加します。

サンプルプログラム

insert.html

・・・

<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="insert_fmt.html">

<TABLE BORDER=0>

<TR>

<TD>製品名</TD><TD>:</TD>

<TD><INPUT TYPE="TEXT" NAME="Name"></TD>

</TR>

<TR>

<TD>カテゴリ</TD><TD>:</TD>

<TD><INPUT TYPE="radio" NAME="Category" VALUE="オーディオ">オーディオ

<INPUT TYPE="RADIO" NAME="Category" VALUE="照明">照明

<INPUT TYPE="RADIO" NAME="Category" VALUE="調理">調理

<INPUT TYPE="RADIO" NAME="Category" VALUE="日用生活">日用生活

<INPUT TYPE="RADIO" NAME="Category" VALUE="コンピュータ">コンピュータ

<INPUT TYPE="RADIO" NAME="Category" VALUE="空調">空調

</TD>

</TR>

<TR>

<TD>機能</TD><TD>:</TD>

<TD><INPUT TYPE="TEXT" NAME="Function"></TD>

</TR>

<TR>

<TD>型番</TD><TD>:</TD>

<TD><INPUT TYPE="TEXT" NAME="Type"></TD>

</TR>

<TR>

<TD>数量</TD><TD>:</TD>

<TD><INPUT TYPE="TEXT" NAME="Quantity"></TD>

</TR>

<TR>

<TD>価格</TD><TD>:</TD>

<TD><INPUT TYPE="TEXT" NAME="Price"> 円</TD>

</TR>

<TR>

<TD>説明</TD><TD>:</TD>

<TD><BR><TEXTAREA NAME="Description" COLS=50 ROWS=5></TEXTAREA></TD>

</TR>

- 44 -

Page 52: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

</TABLE>

<INPUT TYPE="SUBMIT" VALUE="追加">

<INPUT TYPE="RESET" VALUE="やり直し">

</FORM> (1)

・・・

(1) データベースに追加するデータの入力

データベースに追加するデータの各項目を入力します。1件のデータの入力が終了したら、[追加]ボタンをクリックしま

す。入力をやり直す場合は、[やり直し]ボタンをクリックします。[追加]ボタンをクリックすることで、処理と入力したデータを

insert_fmt.html に引き継ぎます。

insert_fmt.html

・・・

<!DO "INSERT INTO WL_SCHEMA.製品表

(製品名, カテゴリ, 機能, 型番, 数量, 価格, 説明)

VALUES (’$QUERY::Name’, ’$QUERY::Category’, ’$QUERY::Function’, ’$QUERY::Type’,

$QUERY::Quantity, $QUERY::Price, ’

$QUERY::Description’)"> (2)

<!DO "SELECT 製品名,カテゴリ,機能,型番,数量,価格,説明

FROM WL_SCHEMA.製品表" RESULT=rslt> (3)

<TABLE BORDER=1>

<TR>

<TD>製品名</TD>

<TD>カテゴリ</TD>

<TD>機能</TD>

<TD>型番</TD>

<TD>数量</TD>

<TD>価格</TD>

<TD>説明</TD>

</TR>

<!FOREACH rslt t>

<TR>

<TD><!HREPLACE ’t{製品名}’></TD>

<TD><!HREPLACE ’t{カテゴリ}’></TD>

<TD><!HREPLACE ’t{機能}’></TD>

<TD><!HREPLACE ’t{型番}’></TD>

<TD><!HREPLACE ’t{数量}’></TD>

<TD><!HREPLACE ’t{価格}’></TD>

<TD><!HREPLACE ’t{説明}’></TD>

</TR>

<!/FOREACH>

</TABLE> (4)

・・・

(2) データの追加

insert.html から引き継いだデータをデータベースに追加します。

(3) データベースの全件検索

追加したデータが正確に追加されているかを確認するために、データベースの内容を全件検索します。

(4) 検索結果の表示

データベースの全件検索の結果をすべて表示します。

解説

insert.html で追加するデータの各項目を入力し、データベースに追加するためにinsert_fmt.html へ処理を引き継ぎま

す。

insert_fmt.html では、insert.html から引き継いだ各項目をデータベースに追加し、挿入確認のために、データベースの

データをすべて表示します。

- 45 -

Page 53: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

3.6.7 データ更新:データ更新

処理の内容

データベースに登録されているデータを変更します。

サンプルプログラム

update.html

・・・

<!DO "SELECT 製品名 FROM WL_SCHEMA.製品表" RESULT=rslt> (1)

<!FOREACH rslt t>

<!SETVAR uname ’URLencode(t{製品名})’>

<A HREF="$SYSTEM::FMTR?WIT_html=update_fmt1.html&Name=$uname">

<!HREPLACE ’t{製品名}’></A><BR>

<!/FOREACH> (2)

・・・

(1) 更新データを選択するためのデータベースの全件検索

更新するデータを選択するために、データベースを全件検索します。

(2) 検索結果の表示および更新データの選択

検索した結果の製品名を表示します。製品名はすべてURLに変換され、“uname”に格納されます。更新対象の製品名

を選択すると“uname”を“Name”に代入しupdate_fmt1.html に引き継ぎます。

update_fmt1.html

・・・

<!DO "SELECT 製品名,カテゴリ,機能,型番,数量,価格,説明

FROM WL_SCHEMA.製品表 WHERE 製品名 LIKE ’$QUERY::Name’" RESULT=rslt> (3)

<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="Name_orig" VALUE="$(rslt[0]{製品名})">

<TABLE BORDER=0>

<TR>

<TD>製品名</TD><TD>:</TD>

<TD><INPUT TYPE="TEXT" NAME="Name" VALUE="$(rslt[0]{製品名})"></TD>

</TR>

<TR>

<TD>カテゴリ</TD><TD>:</TD>

<TD>

<!FOREACH ’("オーディオ", "照明", "調理",

"日用生活", "コンピュータ", "空調")’ s_category>

- 46 -

Page 54: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<!SETVAR if_check "">

<!IF ’rslt[0]{カテゴリ} eq s_category’>

<!SETVAR if_check "CHECKED">

<!/IF>

<!SETVAR inp "<INPUT TYPE=’radio’ NAME=’Category’ VALUE=’$s_category’ $if_check>">

<!REPLACE inp><!HREPLACE s_category>

<!/FOREACH>

</TD>

</TR>

<TR>

<TD>機能</TD><TD>:</TD>

<TD><INPUT TYPE="TEXT" NAME="Function" VALUE="$(rslt[0]{機能})" SIZE=40></TD>

</TR>

<TR>

<TD>型番</TD><TD>:</TD>

<TD><INPUT TYPE="TEXT" NAME="Type" VALUE="$(rslt[0]{型番})"></TD>

</TR>

<TR>

<TD>数量</TD><TD>:</TD>

<TD><INPUT TYPE="TEXT" NAME="Quantity" VALUE="$(rslt[0]{数量})"></TD>

</TR>

<TR>

<TD>価格</TD><TD>:</TD>

<TD><INPUT TYPE="TEXT" NAME="Price" VALUE="$(rslt[0]{価格})"> 円</TD>

</TR>

<TR>

<TD>説明</TD><TD>:</TD>

<TD><TEXTAREA NAME="Description" COLS=50 ROWS=5>

<!HREPLACE ’(rslt[0]{説明})’></TEXTAREA></TD>

</TR>

</TABLE>

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="update_fmt2.html">

<INPUT TYPE="SUBMIT" VALUE="更新">

<INPUT TYPE="RESET" VALUE="やり直し">

</FORM> (4)

・・・

(3) 更新対象の情報の検索

update.html から引き継いだ“Name”を基に更新対象の情報をデータベースから検索します。

(4) 更新情報の入力

表示された情報を更新します。1件の情報の更新が終了したら、[更新]ボタンをクリックします。入力をやり直す場合[やり

直し]ボタンをクリックします。[更新]ボタンをクリックすることで処理とデータをupdate_fmt2.html に引き継ぎます。

update_fmt2.html

・・・

<!DO "UPDATE WL_SCHEMA.製品表

SET 製品名=’$QUERY::Name’,カテゴリ=’$QUERY::Category’,機能=’$QUERY::Function’,

型番=’$QUERY::Type’,数量=$QUERY::Quantity,価格=$QUERY::Price,

説明=’$QUERY::Description’ WHERE 製品名 LIKE ’$QUERY::Name_orig’"> (5)

<!DO "SELECT 製品名,カテゴリ,機能,型番,数量,価格,説明

FROM WL_SCHEMA.製品表" RESULT=rslt> (6)

<TABLE BORDER=1>

<TR>

<TD>製品名</TD>

<TD>カテゴリ</TD>

<TD>機能</TD>

<TD>型番</TD>

<TD>数量</TD>

<TD>価格</TD>

<TD>説明</TD>

</TR>

<!FOREACH rslt t>

- 47 -

Page 55: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<TR>

<TD><!HREPLACE ’t{製品名}’></TD>

<TD><!HREPLACE ’t{カテゴリ}’></TD>

<TD><!HREPLACE ’t{機能}’></TD>

<TD><!HREPLACE ’t{型番}’></TD>

<TD><!HREPLACE ’t{数量}’></TD>

<TD><!HREPLACE ’t{価格}’></TD>

<TD><!HREPLACE ’t{説明}’></TD>

</TR>

<!/FOREACH>

</TABLE> (7)

・・・

(5) 情報の更新

update_fmt1.html から引き継いだ情報でデータベースを更新します。

(6) 更新後のデータベースの全件検索

更新した情報が正確に更新されているかを確認するために、データベースの内容を全件検索します。

(7) 検索結果の表示

データベースを全件検索した結果を、すべて表示します。

解説

update.html でデータベースの内容をすべて表示し、更新するデータを選択します。選択したデータの一部をキーとし

て、update_fmt1.html に引き継ぎます。

update_fmt1.html では、update.html から引き継いだキーを基にデータベースを検索し、内容を表示して更新データを入

力します。入力されたデータを更新するために、update_fmt2.html へ入力データと処理を引き継ぎます。

update_fmt2.html では、update_fmt1.html から引き継いだデータを基にデータベースを更新し、確認のためにデータベー

スの情報をすべて表示します。

3.6.8 データ更新:データ削除

処理の内容

データベースに登録されているデータを削除します。

サンプルプログラム

delete.html

・・・

<!DO "SELECT 製品名 FROM WL_SCHEMA.製品表" RESULT=rslt> (1)

- 48 -

Page 56: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<!FOREACH rslt t>

<!SETVAR uname ’URLencode(t{製品名})’>

<A HREF="$SYSTEM::FMTR?WIT_html=delete_fmt1.html&Name=$uname">

<!HREPLACE ’t{製品名}’></A><BR>

<!/FOREACH> (2)

・・・

(1) 削除データを選択するためのデータベースの全件検索

削除したいデータを選択するために、データベースを全件検索します。

(2) 検索結果の表示および削除データの選択

検索した結果の製品名を表示します。製品名はすべてURLに変換され、“uname”に格納されます。削除対象の製品名

を選択すると“uname”を“Name”に代入しdelete_fmt1.html に引き継ぎます。

delete_fmt1.html

・・・

<!DO "SELECT 製品名,カテゴリ,機能,型番,数量,価格,説明

FROM WL_SCHEMA.製品表 WHERE 製品名 LIKE ’$QUERY::Name’" RESULT=rslt> (3)

<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">

<TABLE BORDER=0>

<TR>

<TD>製品名</TD><TD>:</TD>

<TD><!HREPLACE ’rslt[0]{製品名}’></TD>

</TR>

<TR>

<TD>カテゴリ</TD><TD>:</TD>

<TD><!HREPLACE ’rslt[0]{カテゴリ}’></TD>

</TR>

<TR>

<TD>機能</TD><TD>:</TD>

<TD><!HREPLACE ’rslt[0]{機能}’></TD>

</TR>

<TR>

<TD>型番</TD><TD>:</TD>

<TD><!HREPLACE ’rslt[0]{型番}’></TD>

</TR>

<TR>

<TD>数量</TD><TD>:</TD>

<TD><!HREPLACE ’rslt[0]{数量}’></TD>

</TR>

<TR>

<TD>価格</TD><TD>:</TD>

<TD><!HREPLACE ’rslt[0]{価格}’> 円</TD>

</TR>

<TR>

<TD>説明</TD><TD>:</TD>

<TD><!HREPLACE ’rslt[0]{説明}’></TD>

</TR>

</TABLE>

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="delete_fmt2.html">

<INPUT TYPE="HIDDEN" NAME="Name" VALUE="$QUERY::Name">

<INPUT TYPE="SUBMIT" VALUE="削除">

</FORM> (4)

・・・

(3) 削除対象のデータの検索

delete.html から引き継いだ“Name”を基に、削除対象のデータをデータベースから検索します。

(4) 削除データの確認

表示されたデータを確認し、[削除]ボタンをクリックします。[削除]ボタンをクリックすることで、処理と“Name”をdelete_fmt2.html に引き継ぎます。

delete_fmt2.html

- 49 -

Page 57: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・・・

<!DO "DELETE FROM WL_SCHEMA.製品表 WHERE 製品名 LIKE ’$QUERY::Name’"> (5)

<!DO "SELECT 製品名,カテゴリ,機能,型番,数量,価格,説明

FROM WL_SCHEMA.製品表" RESULT=rslt> (6)

<TABLE BORDER=1>

<TR>

<TD>製品名</TD>

<TD>カテゴリ</TD>

<TD>機能</TD>

<TD>型番</TD>

<TD>数量</TD>

<TD>価格</TD>

<TD>説明</TD>

</TR>

<!FOREACH rslt t>

<TR>

<TD><!HREPLACE ’t{製品名}’></TD>

<TD><!HREPLACE ’t{カテゴリ}’></TD>

<TD><!HREPLACE ’t{機能}’></TD>

<TD><!HREPLACE ’t{型番}’></TD>

<TD><!HREPLACE ’t{数量}’></TD>

<TD><!HREPLACE ’t{価格}’></TD>

<TD><!HREPLACE ’t{説明}’></TD>

</TR>

<!/FOREACH>

</TABLE> (7)

・・・

(5) データの削除

delete_fmt1.htmlから引き継いだ“Name”を基にデータベース検索し、対象データを削除します。

(6) 削除後のデータベースの全件検索

削除したデータが削除されているかを確認するために、データベースの内容を全件検索します。

(7) 検索結果の表示

データベースを全件検索した結果を、すべて表示します。

解説

delete.html でデータベースの内容をすべて表示し、削除するデータを選択します。選択したデータの一部をキーとして、

delete_fmt1.html に引き継ぎます。

delete_fmt1.html では、dalete.html から引き継いだキーを基にデータベースを検索し、内容を表示して削除データを確

認します。確認されたデータを削除するために、delete_fmt2.html へキーと処理を引き継ぎます。

delete_fmt2.html では、delete_fmt1.html から引き継いだキーを基に対象となるデータを削除し、確認のためにデータ

ベースの情報をすべて表示します。

- 50 -

Page 58: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

3.6.9 イメージ表示

処理の内容

指定されたイメージデータをデータベースから検索して表示します。

サンプルプログラム

demo.html

・・・

<FORM ACTION="/cgi-bin/wit_fmtr" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="demo_fmt.html">

製品名:<INPUT TYPE="TEXT" NAME="Name1"><BR>

<INPUT TYPE="SUBMIT" NAME="Search" VALUE="検索">

</FORM>

・・・

注意

サンプルプログラムは、SolarisおよびLinuxの場合の例です。Windows(R)の場合は、サンプルプログラムの一部を以下

のように変更してください。

・ wit_fmtr → wit_fmtr.exe

demo_fmt.html

・・・

<!DO "SELECT 製品名,カテゴリ,機能,型番 FROM WL_SCHEMA.製品表

WHERE 製品名 LIKE ’%$QUERY::Name1%’" RESULT=rslt ONERROR="ERROR1">

・・・

<TABLE BORDER=1>

<TR>

<TD>製品名</TD>

<TD>カテゴリ</TD>

<TD>型番</TD>

</TR>

<!FOREACH rslt t>

<TR>

- 51 -

Page 59: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<TD>

<!SETVAR vName ’URLencode(t{製品名})’> (1)

<A HREF="$SYSTEM::FMTR?WIT_html=media.html&Name=$vName"> (2)

<!HREPLACE ’t{製品名}’></A>

</TD>

<TD><!HREPLACE ’t{カテゴリ}’></TD>

<TD><!HREPLACE ’t{型番}’></TD>

</TR>

<!/FOREACH>

</TABLE>

・・・

(1) 検索結果のURLencodedemo_fmt.html で検索された製品名をURLencodeして、“vName”に格納します。

(2) media.htmlへの処理の引継ぎ

“vName”に格納された情報を、media.html に引き継ぎます。

media.html

・・・

<!HREPLACE ’QUERY::Name’> (3)

<!SETVAR stmt ’URLencode("SELECT 写真 FROM WL_SCHEMA.製品表

WHERE 製品名 LIKE \’$QUERY::Name\’") ’> (4)

<IMG SRC="$SYSTEM::MEDIA?WIT_statement=$stmt&WIT_ctype=image/gif" ALT="image"> (5)

・・・

(3) 製品名の表示

“vName”に格納された情報をHTMLで表示できるように変換し、表示します。

(4) イメージの格納先の設定

データベース中に格納されているデータを表示させるためのSQL文を、URLencodeして“stmt”に格納します。

(5) イメージの表示

SYSTEM::MEDIAコマンドを利用して、イメージを表示します。WIT_statementのSQL文でデータベースを検索し、

WIT_ctypeに指定されたコンテンツタイプで表示します。

解説

demo.html で指定された文字列を使用して、demo_fmt.html でデータベースを検索し、表示します。このとき、製品名を

URLencodeしてmedia.html に引き継ぎます。media.html では、引き継いだ情報を基にイメージを表示します。

ポイント

フォーマットファイルでwit_mediaコマンドを使用する場合は、wit_mediaコマンドをそのまま記述しないで、変数

SYSTEM::MEDIAを使用することができます。

例:

<IMG SRC="$SYSTEM::MEDIA?WIT_statement=$stmt&WIT_ctype=image/gif">

- 52 -

Page 60: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

3.6.10 エラー処理

処理の内容

データベースを検索しているときに、データベースでエラーが発生した場合、またはデータベースに該当データが1件も

なかった場合、エラーを表示して再度検索を行います。

サンプルプログラム

demo.html

・・・

<FORM ACTION="/cgi-bin/wit_fmtr" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="demo_fmt.html">

製品名:<INPUT TYPE="TEXT" NAME="Name1"><BR>

<INPUT TYPE="SUBMIT" NAME="Search" VALUE="検索">

</FORM>

・・・

注意

サンプルプログラムは、SolarisおよびLinuxの場合の例です。Windows(R)の場合は、サンプルプログラムの一部を以下

のように変更してください。

・ wit_fmtr → wit_fmtr.exe

demo_fmt.html

・・・

<!ERRORHANDLE ON>

<!DO "SELECT 製品名,カテゴリ,機能,型番

FROM WL_SCHEMA.製品表

WHERE 製品名 LIKE’%$QUERY::Name1%’" RESULT=rslt ONERROR="ERROR1"> (1)

・・・

<!IF ’listlen(rslt) == 0’>

<!THROW "ERROR2">

<!/IF> (2)

- 53 -

Page 61: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・・・

<!CATCH "ERROR1">

<!IF ’defined(errmsg)’>

<!UNDEFVAR errmsg>

<!/IF>

<!VAR errmsg SCOPE=GLOBAL VALUE=’SYSTEM::DB_ERRORMSG’>

<!ABORT URL="$SYSTEM::FMTR?WIT_html=database_err.html">

<!/CATCH> (3)

<!CATCH "ERROR2">

<!ABORT URL="$SYSTEM::FMTR?WIT_html=no_hit.html">

<!/CATCH> (4)

・・・

(1) データベースの検索

demo.htmlから引き継いだデータを基に、データベースを検索します。検索中にエラーが発生すると、“ONERROR”に設

定されている“ERROR1”に処理を引き継ぎます。

(2) 該当件数の確認

データベースを検索した結果、該当データが存在するかを確認します。該当データが存在しない場合、拡張タグ<!THROW>で設定された“ERROR2”に処理を引き継ぎます。

(3) データベースエラーの処理

データベース検索中にエラーが発生した場合、発生したエラーメッセージをグローバル変数“errmsg”に格納し、現在解

析中のフォーマットファイル(demo_fmt.html)の解析処理を中断して、database_err.html へ処理を引き継ぎます。

(4) 該当データがない場合の処理

現在解析中のフォーマットファイル(demo_fmt.html)の解析処理を中断して、no_hit.html へ処理を引き継ぎます。

database_err.html

・・・

メッセージは,"<!HREPLACE errmsg>" です.<BR> (5)

・・・

<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="demo.html">

<INPUT TYPE="SUBMIT" VALUE="トップに戻る">

</FORM> (6)

・・・

(5) エラー番号の表示

demo_fmt.html で設定された“errmsg”を表示します。

(6) 検索画面の再表示

再度、処理を選択するため、[トップに戻る]ボタンをクリックすると、demo.html に処理が引き継ぎます。

no_hit.html

・・・

<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">

<INPUT TYPE="hidden" NAME="WIT_html" VALUE="demo_fmt.html">

製品名:<INPUT TYPE="TEXT" NAME="Name1"><BR>

<INPUT TYPE="SUBMIT" VALUE="検索">

</FORM> (7)

・・・

(7) 再検索

検索する文字列を入力します。入力された文字列は“Name1”に格納されます。[検索]ボタンをクリックすると、demo_fmt.htmlに処理と“Name1”を引き継ぎます。

解説

demo_fmt.html でデータベースの検索中にエラーが発生した場合、またはデータベースに該当データが存在しなかった

場合のそれぞれのエラー処理を行い、再度検索します。

- 54 -

Page 62: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

ポイント

<!DO>のONERRORパラメタに指定された値は、<!THROW>と同じように<!CATCH>で指定された処理に移行します。

データベースのエラーメッセージを得るには、SYSTEMパッケージ変数のSYSTEM::DB_ERRORMSGを使用します。

3.6.11 共有セション

処理の内容

共有セションのアプリケーションの例を説明します。

サンプルプログラム

サンプルプログラムは、SolarisおよびLinuxの場合の例です。Windows(R)の場合は、“9.2.2 Windows(R)の場合の設定

方法”を参照してください。

WebScriptの起動時に、public.envが参照されます。

public.env(アプリケーション環境パラメタ)

・・・

DBName = SAMPLE

userid = XXXXXXXX

passwd = XXXXXXXX

formatDir = /opt/FJSVsymwd/sample/format_public

・・・

start.html

・・・

<A HREF="login.html">個別セション</A><BR>

<A HREF="demo_cookie.html">共有セション</A><BR>

・・・

demo_cookie.html

- 55 -

Page 63: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・・・

<FORM ACTION="/cgi-bin/wit_fmtr" METHOD="POST">

<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="demo_fmt.html">

製品名:<INPUT TYPE="TEXT" NAME="Name"><BR>

<INPUT TYPE="SUBMIT" NAME="Search" VALUE="検索">

</FORM>

・・・

demo_fmt.html

・・・

<!SETVAR cond "製品名 LIKE ’%$QUERY::Name%’">

<!SETCOOKIE prev_cond cond> (1)

<!DO "SELECT 製品名,カテゴリ,機能,型番 FROM WL_SCHEMA.製品表 WHERE $cond" RESULT=rslt>

<TABLE BORDER=1>

<TR>

<TD>製品名</TD>

<TD>カテゴリ</TD>

<TD>型番</TD>

</TR>

<!FOREACH rslt t>

<TR>

<TD><!HREPLACE ’t{製品名}’></TD>

<TD><!HREPLACE ’t{カテゴリ}’></TD>

<TD><!HREPLACE ’t{型番}’></TD>

</TR>

<!/FOREACH>

</TABLE>

・・・

(1) 絞込み検索に利用する文字列の準備

絞込み検索に使用する検索文字列を作成します。拡張タグの<!SETCOOKIE>を使用して、指定した文字列

を“prev_cond”という名前のcookieに設定します。

shibori_fmt.html

・・・

<!SETVAR cond "製品名 LIKE ’%$QUERY::Name%’ AND $COOKIE::prev_cond">

<!SETCOOKIE prev_cond cond> (2)

<!DO "SELECT 製品名,カテゴリ,型番 FROM WL_SCHEMA.製品表 WHERE $cond" RESULT=rslt>

<TABLE BORDER=1>

<TR>

<TD>製品名</TD>

<TD>カテゴリ</TD>

<TD>型番</TD>

</TR>

<!FOREACH rslt t>

<TR>

<TD><!HREPLACE ’t{製品名}’></TD>

<TD><!HREPLACE ’t{カテゴリ}’></TD>

<TD><!HREPLACE ’t{型番}’></TD>

</TR>

<!/FOREACH>

</TABLE>

・・・

(2) 絞込み検索の検索文字列の設定

絞込み検索を行うために、(1)で作成した検索文字列と、新しく指定された文字列を“AND”で結び、“cond”に格納しま

す。

- 56 -

Page 64: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

解説

demo.html で指定された文字列を引き継ぎ、demo_fmt.html でデータベースの検索を行います。検索結果が不十分な

場合、処理をshibori_fmt.html に引き継ぎ、絞込み検索を行いますが、共有セションの場合、グローバル変数を使用す

ることができないため、フォーマットファイル間でデータのやり取りができません。

この場合、cookieを利用し、フォーマットファイル間で共通な変数として使用することができます。

ポイント

共有セションを利用する場合、フォーマットファイル間ではグローバル変数を設定することができません。この場合に、解

決方法として考えられるのが、cookieの使用です。

cookieもほかのシステム変数と同じように、“COOKIE::”と指定した名前を組み合わせて利用します。詳細は、“7.5 COOKIEパッケージ変数”を参照してください。

- 57 -

Page 65: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

第4章 WebScriptコマンド

本章では、WebScriptコマンドについて説明します。

4.1 WebScriptコマンドの種類

HTMLやフォーマットファイルのURLに指定するWebScriptのCGIプログラムのことを、WebScriptコマンドと呼びます。

WebScriptコマンドには、以下の4種類があります。

・ wit_gwdコマンド

- 個別セションで、WebScriptのセションを開設するコマンドです。

・ wit_fmtrコマンド

- フォーマットファイルを処理して、データベースのアクセスなどの処理を実行したあと、HTML文書をブラウザに

表示するコマンドです。

- 個別セションおよび共有セションで利用します。

・ wit_mediaコマンド

- 指定されたSQL文に従って、イメージ(静止画)、音声または動画などのデータの検索を行うコマンドです。

- 実行結果は、指定されたコンテンツタイプに従って、Webサーバに返却されます。ブラウザには、イメージなどの

バイナリデータを表示できます。

- 個別セションおよび共有セションで利用します。

・ wit_logoutコマンド

- 個別セションで、WebScriptのセションを終了するコマンドです。

WebScriptコマンドは、コマンドとセションの形態により、HTMLから呼び出される場合とWebScriptのフォーマットファイル

から呼び出される場合があります。呼び出し方法によって記述形式が異なります。以下にそれぞれの形式を示します。

・ HTMLファイルからのコマンドの呼び出し形式 HTMLファイルでは、CGIプログラムを呼び出す形式で記述します。

注意

Windows(R)の場合は、wit_gwdをwit_gwd.exeに変更してください。

- 58 -

Page 66: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・ フォーマットファイルからのコマンドの呼び出し形式 フォーマットファイルでは、“SYSTEM::GWD、SYSTEM::LOGOUT、SYSTEM::FMTR、SYSTEM::MEDIA”を用い

て、コマンドのファイル名を記述します。

4.2 wit_gwd

説明

個別セションでWebScriptを利用する場合に、WebScriptのセションを開始するコマンドです。セションを開始するデータ

ベースのアクセス環境の情報として、RDBシステム名、データベース名、ユーザIDおよびパスワードを指定します。また、

セションの属性を指定するアプリケーション環境パラメタファイル名を指定します。

利用者がブラウザを終了したり、ほかのURLに移したりする可能性があるため、時間を設定して自動的にWebScriptのセ

ションを終了させることができます。時間の設定は、アプリケーション環境パラメタidleTimeoutで指定できます。

パラメタ

WIT_env(省略可能)

Solaris/Linuxの場合

- アプリケーション環境パラメタを定義したファイルを、サーバ環境パラメタenvDirで指定されたディレクトリ(省略し

た場合は、WebScriptのインストールディレクトリのlibサブディレクトリ)からの相対パスで指定してください。ただ

し、パスの一部として「..」を指定することはできません。

- 本パラメタに、server.env、default.envおよびpublic.envは指定できません。

- 本パラメタを省略した場合は、default.envが採用されます。

Windowsの場合

- WebDBtools環境エディタで設定したアプリケーション環境名を指定してください。

- 本パラメタに、server.env、default.envおよびpublic.envは指定できません。

- 本パラメタを省略した場合は、環境名「default」が採用されます。

WIT_system(省略可能)

- セションを開始するRDBシステム名を指定してください。

- 本パラメタを省略した場合は、アプリケーション環境パラメタsystemName が採用されます。

- 59 -

Page 67: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

WIT_database(省略可能)

- セションを開始するデータベースの名前を指定してください。

- 指定したデータベースの名前が利用されるのは、データベースに実際にアクセスしたときであるため、データベー

スの名前には、存在していないデータベースの名前を指定することもできます。

- データベース名が半角英字の場合、大文字で指定する必要があります。

- 本パラメタを省略した場合は、アプリケーション環境パラメタDBname が採用されます。

WIT_userid(省略可能)

- WIT_databaseに指定したデータベースを利用することができるユーザIDを指定してください。

- 本パラメタを省略した場合は、アプリケーション環境パラメタuserid が採用されます。

WIT_passwd(省略可能)

- WIT_userid のパスワードを指定してください。

- 本パラメタを省略した場合は、アプリケーション環境パラメタpasswd が採用されます。

WIT_error

- WIT_error=yesのとき

ロ グ イ ン 時 に 、 Symfoware Server の エ ラ ー が 発 生 す る と 、 SYSTEM パ ッ ケ ー ジ 変

数“SYSTEM::LAST_DB_ERRORCODE”、“SYSTEM::LAST_DB_ERRORMSG”に値を設定し、homePageに指定されたHTMLを表示します。ただし、フォーマットファイル内で、<!DO>タグを実行することはできません。

- WIT_error=yes以外のとき

ログイン時に、Symfoware Serverのエラーが発生すると、固定のHTMLを表示します。

使用例

SolarisおよびLinuxの場合の使用例を以下に示します。Windows(R)の場合は、使用例の一部を以下のように変更してく

ださい。

・ wit_gwd → wit_gwd.exe

・ my.env → my

HTMLファイルから起動する場合

【<A>タグを使用する場合】

<A HREF="/cgi-bin/wit_gwd?WIT_env=my.env"> ... </A>

【<FORM>タグを使用する場合】

<FORM ACTION="/cgi-bin/wit_gwd" METHOD="...">

<INPUT TYPE="hidden" NAME="WIT_env" VALUE="my.env">

</FORM>

フォーマットファイルから起動する場合

【<A>タグを使用する場合】

<A HREF="$SYSTEM::GWD?WIT_env=my.env"> ... </A>

【<FORM>タグを使用する場合】

<FORM ACTION="$SYSTEM::GWD" METHOD="...">

<INPUT TYPE="hidden" NAME="WIT_env" VALUE="my.env">

</FORM>

- 60 -

Page 68: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

ユーザIDとパスワードを与える例

wit_gwdのパラメタにユーザIDおよびパスワードを指定する場合の使用例を、以下に示します。

<FORM ACTION="/cgi-bin/wit_gwd" METHOD="POST">

<INPUT TYPE="hidden" NAME="WIT_env" VALUE="my.env">

ユーザ名 :<INPUT NAME="WIT_userid" SIZE="20"><BR>

パスワード:<INPUT NAME="WIT_passwd" TYPE="password" SIZE="20"><BR>

<INPUT TYPE="submit" VALUE="OK">

</FORM>

セションの開始に失敗したときに再ログインを促す例

wit_gwdのパラメタにSymfoware Serverのエラーが発生したときに、処理の続行を指定する場合の使用例を、以下に

示します。

<FORM ACTION="/cgi-bin/wit_gwd" METHOD="POST">

<INPUT TYPE="hidden" NAME="WIT_env" VALUE="my.env">

<INPUT TYPE="hidden" NAME="WIT_error" VALUE="yes">

ユーザ名 :<INPUT NAME="WIT_userid" SIZE="20"><BR>

パスワード:<INPUT NAME="WIT_passwd" TYPE="password" SIZE="20"><BR>

<INPUT TYPE="submit" VALUE="OK">

</FORM>

【環境パラメタ my.env のパラメタ homePageに指定する HTML】

<META http-equiv="refresh" content="0;URL=/cgi-bin/wit_fmtr?WIT_html=Menu.html">

【フォーマットファイル Menu.html】

<!IF '!defined(LoginFlag)'>

<!VAR LoginFlag SCOPE="GLOBAL">

<!SETVAR LoginFlag "OK">

<!IF 'SYSTEM::LAST_DB_ERRORCODE ne "00000"'>

<META http-equiv="refresh" content="0;URL=$SYSTEM::

LOGOUT?WIT_html=Error.html">

<!SETVAR LoginFlag "FAIL">

<!/IF>

<!/IF>

<!IF 'LoginFlag ne "FAIL"'>

メニュー<BR>

<FORM ACTION="$SYSTEM::LOGOUT" METHOD="POST">

<INPUT TYPE="submit" VALUE="ログアウト">

</FORM>

<!/IF>

【フォーマットファイル Error.html】

ログイン失敗<BR>

<!HREPLACE SYSTEM::LAST_DB_ERRORMSG><BR>

<FORM ACTION="$SYSTEM::GWD" METHOD="POST">

<INPUT TYPE="hidden" NAME="WIT_env" VALUE="my.env">

<INPUT TYPE="hidden" NAME="WIT_error" VALUE="yes">

ユーザ名 :<INPUT NAME="WIT_userid" SIZE="20"><BR>

パスワード:<INPUT NAME="WIT_passwd" TYPE="password" SIZE="20"><BR>

<INPUT TYPE="submit" VALUE="OK">

</FORM>

4.3 wit_fmtr

説明

フォーマットファイルを処理して、HTML文書を生成するコマンドです。

- 61 -

Page 69: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

パラメタとしてフォーマットファイル名を指定してください。フォーマットファイルは、アプリケーション環境パラメタformatDirで指定したディレクトリに作成してください。

パラメタ

WIT_html

Solaris/Linuxの場合

- フォーマットファイルのファイル名をアプリケーション環境パラメタformatDirからの相対パスで指定してください。

ただし、パスの一部として「..」を指定することはできません。

formatDir = /prj/fmtr

フォーマットファイルの絶対パス:/prj/fmtr/proc/sample.html

指定方法:WIT_html=proc/sample.html

Windowsの場合

- フォーマットファイルのファイル名をアプリケーション環境パラメタformatDirからの相対パスで指定してください。

ただし、パスの一部として「..」を指定することはできません。

formatDir C:\prj\fmtr

フォーマットファイルの絶対パス:C:\prj\fmtr\proc\sample.html

指定方法:WIT_html=proc\sample.html

そのほかのパラメタ

- WIT_html以外にもパラメタを指定することができます。指定したパラメタの値は、WIT_htmlで指定したフォーマッ

トファイルの中で参照することができます。

- 【パラメタ名】

パラメタ名として使用できるものは、WebScript言語の命名規約に従うものに限ります。

詳細は、“7.3 変数”を参照してください。規約に反するパラメタ名を指定した場合、動作は保証されません。

- 【パラメタの値の指定方法】

URLの一部としてパラメタを指定する場合、HTTPの規約上、パラメタの値によってはエンコードを必要とすること

があります。エンコードが必要なのは、英数字以外の文字を含む場合です。

フォーマットファイルでは、URLencode関数を使用することができます。日本語文字を含む場合には、必ず

URLencode関数で、エンコードを行ってください。

<!SETVAR value1 'URLencode("引数1の値")'>

<A HREF="$SYSTEM::FMTR?WIT_html=eg1.html&arg1=$value1">

- 【参照方法】

“QUERY::パラメタ名”で参照することができます。

- 同名のパラメタが1つだけ存在する場合

渡された値のまま参照されます。

- 同名のパラメタが複数存在する場合

wit_fmtrコマンドの起動で、<SELECT>タグなどの複数選択可能なタグを使用した場合、wit_fmtrコマンドに

- 62 -

Page 70: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

同名のパラメタが複数指定されることになります。

この場合、その変数の値は以下に示すように、リストの形で参照されます。

使用例

SolarisおよびLinuxの場合の使用例を以下に示します。Windows(R)の場合は、使用例の一部を以下のように変更してく

ださい。

・ wit_fmtr → wit_fmtr.exe

HTMLファイルから起動する場合

【<A>タグを使用する場合】

<A HREF="/cgi-bin/wit_fmtr?WIT_html=sample.html"> ... </A>

【<FORM>タグを使用する場合】

<FORM ACTION="/cgi-bin/wit_fmtr" METHOD="...">

<INPUT TYPE="hidden" NAME="WIT_html" VALUE="sample.html">

</FORM>

フォーマットファイルから起動する場合

【<A>タグを使用する場合】

<A HREF="$SYSTEM::FMTR?WIT_html=sample.html"> ... </A>

【<FORM>タグを使用する場合】

<FORM ACTION="$SYSTEM::FMTR" METHOD="...">

<INPUT TYPE="hidden" NAME="WIT_html" VALUE="sample.html">

</FORM>

4.4 wit_media

説明

パラメタWIT_statementは、指定されたSQL文でデータベースの検索(バイナリデータの検索)を行ったあと、結果をパラメタ

WIT_ctypeで指定されたコンテンツタイプに従って、Webサーバに返します。結果として、ブラウザには、イメージなどの

バイナリデータが表示されます。

このコマンドを使用することにより、イメージ(静止画)、音声、動画などを容易に出力することができます。

パラメタ

WIT_statement(必須指定)

- バイナリデータだけを検索するための動的SELECT文または行検索文を指定してください。行検索文について

は、“6.3.1 <!DO>”を参照してください。

- 指定するSQL文の検索条件は、1つのレコードを特定できるように記述してください。複数のレコードが検出され

た場合、先頭のレコードのバイナリデータが表示されます。

- URLの一部としてパラメタを指定する場合、 URLencode関数を使用して、SQL文を変換してください。

- 63 -

Page 71: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

WIT_ctype(必須設定)

- コンテンツタイプとは、ブラウザで表示するバイナリデータの形式のことです。

- データ形式に対応した以下のキーワードを指定してください。

データ形式 キーワード

GIFイメージ image/gif

JPEGイメージ image/jpeg

au形式の音声 audio/basic

aiff形式の音声 audio/x-aiff

MPEG形式の動画 video/mpeg

XBMイメージ Solarisの場合

image/x-xbitmap

XML text/xml

- ブラウザによって表示できるバイナリデータの種類が異なります。ブラウザによって表示できるバイナリデータにつ

いては、ブラウザの設定を確認してください。

WIT_onerror(省略可能)

Solaris/Linuxの場合

- フォーマットファイルのアプリケーション環境パラメタformatDirからの相対パスを指定してください。ただし、パスの

一部として「..」を指定することはできません。

formatDir = /prj/fmtr

フォーマットファイルの絶対パス:/prj/fmtr/proc/sample.html

指定方法:WIT_onerror=proc/sample.html

- パラメタWIT_statementで指定されたSQL文の実行で、データベースからエラーが通知された場合、または

WebScriptのエラーが発生した場合は、本パラメタで指定されたフォーマットファイルが処理され、結果がブラウザ

に出力されます。 ただし、<IMG>タグを使用する場合は、効果がありません。

- エラー情報は、“SYSTEM::DB_ERRORCODE、SYSTEM::DB_ERRORMSG、

SYSTEM::WL_ERRORCODE”に設定されます。

Windowsの場合

- フォーマットファイルのアプリケーション環境パラメタformatDirからの相対パスを指定してください。ただし、パスの

一部として「..」を指定することはできません。

formatDir C:\prj\fmtr

フォーマットファイルの絶対パス:C:\prj\fmtr\proc\sample.html

指定方法:WIT_onerror=proc\sample.html

- パラメタWIT_statementで指定されたSQL文の実行で、データベースからエラーが通知された場合、または

WebScriptのエラーが発生した場合は、本パラメタで指定されたフォーマットファイルが処理され、結果がブラウザ

に出力されます。 ただし、<IMG>タグを使用する場合は、効果がありません。

- エラー情報は、“SYSTEM::DB_ERRORCODE、SYSTEM::DB_ERRORMSG、

SYSTEM::WL_ERRORCODE”に設定されます。

使用例

【<A>タグを使用する場合】

<!SETVAR SQL 'URLencode("SELECT 会社外観 FROM STOCKS.会社表 WHERE ...")'>

<A HREF="$SYSTEM::MEDIA?WIT_statement=$SQL&WIT_ctype=image/gif&WIT_onerror=

error.html"> ... </A>

- 64 -

Page 72: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

【<IMG>タグを使用する場合】

<!SETVAR SQL 'URLencode("SELECT 会社外観 FROM STOCKS.会社表 WHERE ...")'>

<IMG SRC="$SYSTEM::MEDIA?WIT_statement=$SQL&WIT_ctype=image/gif">

【<FORM>タグを使用する場合】

<!SETVAR SQL '"SELECT 会社外観 FROM STOCKS.会社表 WHERE ..."'>

<FORM ACTION="$SYSTEM::MEDIA" METHOD="...">

<INPUT TYPE="hidden" NAME="WIT_statement" VALUE="$SQL">

<INPUT TYPE="hidden" NAME="WIT_ctype" VALUE="image/gif">

<INPUT TYPE="hidden" NAME="WIT_onerror" VALUE="error.html">

</FORM>

4.5 wit_logout

説明

WebScriptのセションを終了するためのコマンドです。

パラメタとしてフォーマットファイルまたはURLを指定することで、適切なHTML文書を表示することができます。

パラメタ

WIT_html(省略可能)

フォーマットファイルのファイル名を、アプリケーション環境パラメタformatDirからの相対パスで指定してください。パ

スの一部として「..」は指定できません。

Solaris/Linuxの場合

formatDir = /prj/fmtr

フォーマットファイルの絶対パス:/prj/fmtr/proc/sample.html

指定方法:WIT_html=proc/sample.html

Windowsの場合

formatDir C:\prj\fmtr

フォーマットファイルの絶対パス: C:\prj\fmtr\proc\sample.html

指定方法:WIT_html=proc\sample.html

指定されたフォーマットファイルの処理結果をブラウザに表示したあとに、WebScriptのセションを終了します。

WIT_urlpath(省略可能)

- URLの絶対パス部分を記述して、文書を指定してください。WebScriptのセションを終了したあとに、指定された

HTML文書を表示します。

そのほかのパラメタ

- フォーマットファイルを処理する(パラメタWIT_htmlを指定、または環境パラメタlogoutFormatを指定)場合、

WIT_html以外のパラメタを指定することができます。指定したパラメタの値は、そのフォーマットファイルの中で参

照することができます。

- パラメタ名、パラメタの指定方法や参照方法は、wit_fmtrコマンドの場合と同じです。

パラメタなしの場合

- アプリケーション環境パラメタlogoutFormatが指定されている場合は、そのパラメタに指定されたフォーマットファ

イルが処理されます。その結果をブラウザに表示したあとに、WebScriptのセションを終了します。

- 65 -

Page 73: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

注意

WIT_htmlとWIT_urlpathの両方が指定された場合は、WIT_htmlが指定されたものとみなされます。

使用例

【<A>タグを使用する場合】

フォーマットファイルを指定:

<A HREF="$SYSTEM::LOGOUT?WIT_html=sample.html"> ...</A>

URLを指定:

<A HREF="$SYSTEM::LOGOUT?WIT_urlpath=/web/logout.html">...</A>

【<FORM>タグを使用する場合】

<FORM ACTION="$SYSTEM::LOGOUT" METHOD="...">

<INPUT TYPE="hidden" NAME="WIT_html" VALUE="sample.html">

</FORM>

注意

タイムアウトが発生したあとにWebScriptコマンドを実行した場合、WebScriptのセションが終了したことを示すメッセー

ジが、ブラウザに表示されます。

- 66 -

Page 74: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

第5章 フォーマットファイル

本章では、フォーマットファイルについて説明します。

5.1 フォーマットファイル

フォーマットファイルは、WebScriptがデータベースと接続し、情報をやり取りするためのファイルです。

フォーマットファイルは、wit_fmtrなどのWebScriptコマンドによってWebScriptセションに渡されます。WebScriptセション

は、受け取ったフォーマットファイルに対して、以下の処理を行い、結果をHTML文書として、Webサーバに返却します。

・ 拡張タグの処理

・ 変数の置換

フォーマットファイルは、上記の処理が行われることを除いて、HTML文書と同じです。

なお、上記の処理の行われる順序および処理の詳細は、“付録B WebScriptフォーマットファイル解釈の詳細”を参照し

てください。

5.2 拡張タグ

フォーマットファイル中では、一般のHTMLで定義されているタグのほかに、WebScriptが独自に定義しているタグを使用

することができます。拡張タグには、以下の5種類があります。

・ フォーマットファイルの実行を制御するタグ

・ データベースにアクセスするタグ

・ 表示を行うタグ

・ 変数を制御するタグ

・ そのほかのタグ

【例】

以下に示すタグは、指定されたSQL文を実行して、結果を変数rsltに代入しています。

<!DO "SELECT NAME FROM SCM.TBL1 WHERE AGE < 40" RESULT=rslt>

WebScript拡張タグの表記

WebScript拡張タグは、先頭の文字が「!」になっているため、一般のHTMLタグと容易に区別することができます。拡張タ

グの詳細は、“第6章 WebScript拡張タグ”を参照してください。

WebScript拡張タグのパラメタ

WebScript拡張タグのパラメタには、通常のHTMLタグと同様に通常の文字列を記述することができます。WebScript拡張

タグのパラメタの多くは、WebScript言語で定義されている表現も、記述することができます。WebScript言語の詳細

は、“第7章 WebScript言語”を参照してください。

WebScript拡張タグのパラメタに、単なる文字列を記述する場合は、パラメタを二重引用符(")で囲んでください。WebScript言語の表現を記述する場合は、パラメタを引用符(')で囲んでください。パラメタ中の文字が、英数字だけからなる場合

は、引用符は省略することができます。

【例】

以下の表現は、変数strの長さに関する比較の結果を判定しています。

<!IF 'length(str) > 10'> 長すぎます <!/IF>

- 67 -

Page 75: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

5.3 変数の置換

WebScriptセションは、変数に値を設定し、値を保持する機能をもっています。

フォーマットファイルの中では、この変数の値を参照することができます。すなわち、フォーマットファイルの中に書かれた

変数をその値で置き換えることができます。

変数の種類

変数には、WebScriptセション中で定義されたもの、ブラウザなどから送られたものまたはシステムが定義するものなど複

数の種類があります。詳細は、“7.3 変数”を参照してください。

変数の参照

フォーマットファイルの中に記述されたタグのパラメタの位置で、変数の値を参照することができます。参照することので

きる表現を以下に示します。

・ 変数

・ 変数の後ろに、リスト要素を表す演算子[ ]または{ }がいくつかついたもの[ ]の中は、定数で表現します。

【例】

var0

var1[30]

var2{key_a}[4]{key_b}

変数の置換方法

変数の置換を行うためには、置換を行う表現の直前に「$(」を、直後に「)」を記述してください。空白を入れないでくださ

い。

【例】

変数myVar0の値がリスト(10,20,30)である場合、(1)と(2)は同じことを意味しています。

(1) <INPUT TYPE="hidden" VALUE="$(myVar0[1])">

(2) <INPUT TYPE="hidden" VALUE="20">

さらに、置換を行う表現が、以下に示す表現をすべて満たしている場合は、「(」と「)」を省略できます。

・ リスト要素を表す演算子を含まない単純な変数

・ 変数の直後にある文字が、英数字またはアンダースコア(_)でない

【例】

変数myVar1の値が文字列「myfile.html」である場合、(1)と(2)は同じことを意味しています。

(1) <A HREF="$myVar1">表示したい文書</A>

(2) <A HREF="myfile.html">表示したい文書</A>

5.4 フォーマットファイルの注意事項

フォーマットファイルの表記についての注意事項を説明します。

5.4.1 特殊文字のエスケープ

WebScript言語の表現中には、二重引用符(")や引用符(')が頻繁に使用されます。また、変数の置換には、ドル記号

($)が使用されます。

このため、これらの文字を本来の意味で使用するときは、別の表記方法が必要になります。表記方法の規則を、以下に

示します。

・ 二重引用符で囲まれた文字列中に、二重引用符を記述する場合は、二重引用符の直前に円記号(\)を付けます。

・ 引用符で囲まれた文字列中に引用符を記述する場合は、引用符の直前に円記号を付けます。

- 68 -

Page 76: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・ 変数の置換を意味しないドル記号を記述する場合は、ドル記号の直前に円記号を付けます。

・ 円記号に上述の特別な意味をもたせないためには、円記号の直前に円記号を付けます。

5.4.2 URLの指定

<A>タグ、<IMG>タグなどでURLを参照する場合、URLのパスは、仮想ディレクトリからの相対パスで指定してください。

- 69 -

Page 77: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

第6章 WebScript拡張タグ

本章では、WebScript拡張タグについて説明します。

6.1 拡張タグの規約

拡張タグを記述する場合の規約について説明します。

6.1.1 構文説明規約

<!拡張タグ名 param ... param [param] [param] ...>

・ [ ] は、paramの指定が省略可能であることを意味しています。

・ 必須パラメタの指定は、マニュアルの記述の順序に従ってください。

・ 省略可能なパラメタは、必須パラメタよりも後ろに記述してください。

・ 省略可能なパラメタ同士の記述位置は、順不同です。

6.1.2 命名規約

拡張タグの説明に出てくる、カテゴリの命名規約について説明します。

名前

ここでの「名前」とは、ASCII文字の英字、ASCII文字の数字またはASCII文字のアンダースコア(_)からなる列で、先頭

が数字でないものを指します。

パッケージ名

パッケージ名は名前で指定します。また、ユーザが定義するパッケージ名は、 低1文字の英小文字を含めます。

なお、英大文字と英小文字は区別されます。

単純変数名

単純変数名は名前で指定します。

なお、英大文字と英小文字は区別されます。

変数名

変数名は、以下のどちらかの形で指定します。

・ 単純変数名

・ パッケージ名::単純変数名

なお、英大文字と英小文字は区別されます。

ラベル名

ラベル名は任意の文字列です。ただし先頭の2文字に「WL」を使用することはできません。

なお、英大文字と英小文字は区別されます。

Cookie名

Cookie名は名前で指定します。また、先頭の2文字に「WL」を使用することはできません。

6.1.3 パラメタの評価

WebScript拡張タグは、パラメタごとに評価方法が決められています。評価方法は以下のどれかです。

- 70 -

Page 78: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・ 定数文字列

指定されたパラメタをそのままの文字列として扱います。

引用符の種類にかかわらず、WebScript言語による評価は行われません。

・ 左辺値

パラメタには、変数またはリストの要素を指定します。

変数 :var0

リストの要素:var1[1] var2{key_a} var3[4]{key_b}

・ 一般文字列

指定されたパラメタに対し、WebScript言語による評価を行い、得た結果を文字列コンテキストで解釈します。ただし、

パラメタが二重引用符(")で囲まれている場合には、パラメタそのものが値となります。

・ 一般数値

指定されたパラメタに対し、WebScript言語による評価を行い、得た結果を数値コンテキストで解釈します。ただし、パ

ラメタが二重引用符(")で囲まれている場合には、パラメタそのものを数値コンテキストで解釈します。

・ 一般データ

指定されたパラメタに対し、WebScript言語による評価を行い、得た結果をそのまま採用します。ただし、パラメタが二

重引用符(")で囲まれている場合には、パラメタそのものが文字列として値となります。

どの場合も、パラメタの評価に先立って、“5.3 変数の置換”および“5.4 フォーマットファイルの注意事項”で説明した処理

が行われます。パラメタの引用符に関する注意については、“5.2 拡張タグ”を参照してください。また、これらの評価につ

いては、“付録B WebScriptフォーマットファイル解釈の詳細”で説明されています。

6.2 実行制御タグ

実行制御に関するタグについて説明します。

6.2.1 <!THROW>

説明

<!THROW>は、ラベル名に対応する<!CATCH>ブロックまでの記述を無視し、該当する<!CATCH>ブロックを処理する

タグです。なお、<!/CATCH>以降の処理は行われません。

構文

<!THROW label>

パラメタ

label :

・ 名前の命名規約(ラベル名)に従って、任意の文字列を指定してください。

・ 評価方法は、「定数文字列」です。

使用例

<!IF 'listlen(rslt) == 0'>

<!THROW "ERROR2">

<!/IF>

備考

・ <!THROW>に対応する<!CATCH>は、<!THROW>よりも後ろに記述します。前に記述した場合は、対応する<!CATCH>がないとみなされます。

・ <!THROW>に対応する<!CATCH>がない場合は、エラーになります。

- 71 -

Page 79: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

6.2.2 <!CATCH>

説明

<!CATCH>は、以下の場合に<!/CATCH>までの間のブロックを処理するタグです。

・ ラベル名に対応する<!THROW>が実行された場合

・ ラベル名に対応するonerrパラメタを持った<!DO>タグが実行されてエラーが発生した場合

また、<!CATCH>から<!/CATCH>の間のブロックが処理されるのは、上記のどちらかの場合に限ります。通常の処理を

実行中に、<!CATCH>タグが現れた場合は、<!/CATCH>タグまでの間のブロックは処理されません。

構文

<!CATCH label> ~ <!/CATCH>

パラメタ

label :

・ 対応する<!THROW>タグで指定されたラベル名を指定してください。

・ 評価方法は、「定数文字列」です。

使用例

<!CATCH "ERROR2">

<!ABORT URL="$SYSTEM::FMTR&WIT_html=No_Hit.html">

<!/CATCH>

注意

1つのフォーマットファイル中には、同じラベル名を持つ複数の<!CATCH>タグを記述することはできません。

<!CATCH>タグは、<!IF>、<!FOR>、<!FOREACH>、<!WHILE>または<!CATCH>タグのブロック内に記述することはで

きません。

6.2.3 <!FOREACH>

説明

<!FOREACH>は、リスト内の要素を順次取り出し、その要素の値をnameで指定された変数に設定するタグです。

構文

<!FOREACH collection name [ LABEL=label ] > ~ <!/FOREACH>

パラメタ

collection :

・ リストを指定してください。

・ 評価方法は、「一般データ」です。

name :

・ リストから取り出された要素を設定する変数名またはリストの要素を指定してください。

・ 指定された変数に対する変数宣言が行われていない場合は、ローカル変数として取り扱われます。変数名として指

定できるものについては、“6.1.2 命名規約”を参照してください。

・ 評価方法は、「左辺値」です。

- 72 -

Page 80: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

label :

・ ループを識別するためのラベル名については、“6.1.2 命名規約”のラベル名に従ってください。

・ 評価方法は、「定数文字列」です。

使用例

<!SETVAR LIST '(1, 2, 3)'>

<!FOREACH LIST L>

<TT>value = <!HREPLACE 'L'></TT><BR>

<!/FOREACH>

value = 1

value = 2

value = 3

注意

同一のデータに対する<!FOREACH>は、同時に1つしか実行できません。

同一のデータに対して、複数の<!FOREACH>を実行した場合の結果は、保証されません。

<!FOREACH collection t>

<!FOREACH collection s> → 誤り。同一のデータcollectionに

対する2つ目の<!FOREACH>

<!IF 't eq s'> ... <!/IF>

<!/FOREACH>

<!/FOREACH>

<!SETVAR alias collection REF>

<!FOREACH collection t>

<!FOREACH alias s> → 誤り。collectionとaliasは同一

データを指している

<!IF 't eq s'> ... <!/IF>

<!/FOREACH>

<!/FOREACH>

<!SETVAR copied collection>

<!FOREACH collection t>

<!FOREACH copied s> → OK。copiedはcollectionと同じ

内容だが、コピーされた別のデータ

<!IF 't eq s'> ... <!/IF>

<!/FOREACH>

<!/FOREACH>

6.2.4 <!FOR>

説明

<!FOR>は、ループごとに一定の値を加算するタグです。

stepで指定された値がnameで指定した変数に加算され、以下の条件が成り立つ間、対応する<!/FOR>までのブロックが

繰り返し処理されます。

・ step > 0 の場合:name <= end

・ step < 0 の場合:name >= end

- 73 -

Page 81: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

構文

<!FOR name start end [ STEP=step ] [ LABEL=label ] > ~ <!/FOR>

パラメタ

name :

・ 変数名またはリストの要素を指定してください。

・ 指定された変数に対する変数宣言が行われていない場合は、ローカル変数として取り扱われます。変数名として指

定できるものについては、“6.1.2 命名規約”を参照してください。

・ 評価方法は、「左辺値」です。

start :

・ name で指定した変数の初期値(数値)を指定してください。

・ 評価方法は、「一般数値」です。

end :

・ name で指定した変数が取り得る 終値(数値)を指定してください。

・ 評価方法は、「一般数値」です。

step :

・ 1回ループが終わるごとに、nameで指定された変数に加算する値を指定してください。0を指定してはいけません。省

略した場合は、1が設定されます。

・ 評価方法は「一般数値」です。

label :

・ ループを識別するためのラベル名については、“6.1.2 命名規約”のラベル名に従ってください。

・ 評価方法は、「定数文字列」です。

使用例

<!FOR COUNT 0 10 STEP=2>

<!SETVAR X 'COUNT + 100'>

<TT>value = <!HREPLACE 'X'></TT><BR>

<!/FOR>

↓ (表示結果)

value = 100

value = 102

value = 104

value = 106

value = 108

value = 110

6.2.5 <!WHILE>

説明

<!WHILE>は、条件の評価値が0でない場合(間)は、<!/WHILE>タグまでの処理を繰り返すタグです。

構文

<!WHILE condition [ LABEL=label ] > ~ <!/WHILE>

- 74 -

Page 82: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

パラメタ

condition :

・ 条件を指定してください。

・ 評価方法は、「一般数値」です。

label :

・ ループを識別するためのラベル名については、“6.1.2 命名規約”のラベル名に従ってください。

・ 評価方法は、「定数文字列」です。

使用例

<!SETVAR X 10>

<!WHILE 'X != 0'>

<!SETVAR X 'X - 2'>

<TT>value = <!HREPLACE 'X'></TT><BR>

<!/WHILE>

↓ (表示結果)

value = 8

value = 6

value = 4

value = 2

value = 0

6.2.6 <!BREAK>

説明

<!BREAK>は、ラベルに対応するループ処理を中断するタグです。<!FOREACH>、<!WHILE>、および<!FOR>タグ内

で有効です。

ラベルが省略された場合は、中断されるループはその<!BREAK>タグを含む も内側のループになります。このループを

「カレントループ」と呼びます。

構文

<!BREAK [ LABEL=label ] >

パラメタ

label :

・ 中断したい<!FOREACH>、<!WHILE>または<!FOR>ループのラベルを指定してください。

・ 評価方法は、「定数文字列」です。

使用例

ラベルを指定しない場合

<!SETVAR LIST '(1,2,3,-4,5,6)'>

<!FOREACH LIST L>

<!IF 'L < 0'>

<!BREAK>

<!/IF>

<TT>value = <!HREPLACE 'L'></TT><BR>

<!/FOREACH>

↓ (表示結果)

value = 1

value = 2

value = 3

- 75 -

Page 83: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

ラベルを指定する場合

<!SETVAR LIST_1 '(1,2,5,4,3)'>

<!SETVAR LIST_2 '(-1,-2,-3)'>

<!FOREACH LIST_1 L1 LABEL="LOOP1">

<!FOREACH LIST_2 L2>

<!IF 'L1 + L2 > 1'>

<!BREAK LABEL="LOOP1">

<!/IF>

<TT>L1 = <!HREPLACE 'L1'> L2 = <!HREPLACE 'L2'></TT><BR>

<!/FOREACH>

<!/FOREACH>

↓ (表示結果)

L1 = 1 L2 = -1

L1 = 1 L2 = -2

L1 = 1 L2 = -3

L1 = 2 L2 = -1

L1 = 2 L2 = -2

L1 = 2 L2 = -3

注意

ラベル名が指定されても、ラベルに対応するループ処理が存在しない場合は、エラーとなります。

このタグが記述された場所を含むループが複数個あり、それらのループのラベルに同じ値が指定されている場合、そ

のラベルの値をlabelパラメタに指定して実行することはできません。

6.2.7 <!CONTINUE>

説明

<!CONTINUE>は、ラベルに対応するループ処理を、ループの先頭に移すタグです。<!FOREACH>、<!WHILE>または

<!FOR>タグ内で有効です。

ラベルが省略された場合は、カレントループ処理をループの先頭に移します。

構文

<!CONTINUE [ LABEL=label ] >

パラメタ

label :

・ ループの先頭に処理を戻す<!FOREACH>、<!WHILE>または<!FOR>タグのラベル名を指定してください。

・ 評価方法は、「定数文字列」です。

使用例

ラベルを指定しない場合

<!SETVAR LIST '(1,2,-3,4)'>

<!FOREACH LIST L>

<TT>FIRST = <!HREPLACE 'L'></TT><BR>

<!IF 'L < 0'>

<TT>**********</TT><BR>

<!CONTINUE>

<!/IF>

<!SETVAR L 'L + 10'>

<TT>SECOND = <!HREPLACE 'L'></TT><BR>

<TT>----------</TT><BR>

<!/FOREACH>

- 76 -

Page 84: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

↓ (表示結果)

FIRST = 1

SECOND = 11

----------

FIRST = 2

SECOND = 12

----------

FIRST = -3

**********

FIRST = 4

SECOND = 14

----------

ラベルを指定する場合

<!SETVAR LIST_1 '(1,2,3,4)'>

<!SETVAR LIST_2 '(-1,-2,3)'>

<!FOREACH LIST_1 L1 LABEL="LOOP1">

<!FOREACH LIST_2 L2>

<!IF 'L1 + L2 <= 0'>

<!CONTINUE LABEL="LOOP1">

<!/IF>

<TT>L1 = <!HREPLACE 'L1'> L2 = <!HREPLACE 'L2'></TT><BR>

<!/FOREACH>

<!/FOREACH>

↓ (表示結果)

L1 = 2 L2 = -1

L1 = 3 L2 = -1

L1 = 3 L2 = -2

L1 = 3 L2 = 3

L1 = 4 L2 = -1

L1 = 4 L2 = -2

L1 = 4 L2 = 3

注意

このタグが記述された場所を含むループが複数個あり、それらのループのラベルに同じ値が指定されている場合、その

ラベルの値をlabelパラメタに指定して実行することはできません。

6.2.8 <!IF> <!ELSEIF> <!ELSE>

説明

<!IF>、<!ELSEIF>および<!ELSE>は、条件によって処理する部分を変えるためのタグです。

判定すべき条件が複数ある場合は、判定する順にそれらの条件と処理すべき部分を並べることができます。 初の条件は

<!IF>で、2番目以降の条件は、<!ELSEIF>で指定します。

どの条件も成り立たなかったときに処理する部分があれば、<!ELSE>で指定することができます。 後に指定した処理の

終了を示すために、<!/IF>を付けます。

構文

<!IF condition > ~ [<!ELSEIF condition > ~ ...] [<!ELSE> ~] <!/IF>

パラメタ

condition :

・ 真(式の評価結果が0以外)か、偽(式の評価結果が0)かを判定する条件を指定してください。

・ 評価方法は、「一般数値」です。

- 77 -

Page 85: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

使用例

<!SETVAR X 20>

<!IF 'X > 100'>

LARGE

<!ELSEIF 'X > 50'>

MEDIUM

<!ELSEIF 'X > 10'>

SMALL

<!ELSE>

TINY

<!/IF>

↓ (表示結果)

SMALL

6.2.9 <!ABORT>

説明

<!ABORT>は、フォーマットファイルの解析処理を中断するタグです。

構文

<!ABORT [ SESSION=session ] [ TRANSACTION=transaction ] [ URL=url ] >

パラメタ

session :

・ WebScriptのセションを終了する場合は、LOGOUTを指定してください。

・ WebScriptのセションを終了しない場合は、KEEPを指定してください。

・ 省略した場合は、KEEPが適用されます。

・ 評価方法は、「定数文字列」です。

transaction :

・ トランザクションをロールバックする場合は、ROLLBACKを指定してください。

・ トランザクションをコミットする場合は、COMMITを指定してください。

・ 省略した場合は、ROLLBACKが適用されます。

・ 評価方法は、「定数文字列」です。

url :

・ フォーマットファイルの処理を中断したあとに、表示するページのURLを指定してください。この場合、現在処理して

いたフォーマットファイルの内容は表示されません。

・ 省略された場合は、<!ABORT>の前までの処理結果が表示されます。

・ 評価方法は、「一般文字列」です。

使用例

<!CATCH "ERRO1">

<!VAR errno SCOPE=GLOBAL VALUE='SYSTEM::DB_ERRCODE'>

<!ABORT URL="$SYSTEM::FMTR&WIT_html=Database_Err.html">

<!/CATCH>

- 78 -

Page 86: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

備考

共有セションの場合は、SESSIONパラメタは指定できません。

6.3 データベースアクセスタグ

データベースアクセスに関するタグについて説明します。

6.3.1 <!DO>

説明

<!DO>は、SELECT文などのデータベースを処理する文を実行するタグです。

実行の結果を返却する文で、正常に実行された場合、result で指定した変数に結果が出力されます。

構文

<!DO statement [ RESULT=result ] [ ONERROR=onerror ] >

パラメタ

statement :

・ データベースを処理する文を指定してください。指定できる文と実行条件を、以下に示します。

文 構文

実行結果

返却の有

実行条件

動的SELECT文 ・ 構 文 に つ い て

は、“SQLリファレン

ス”の“基本的なSQL文”および“動的SQL文”を参照してくださ

い。

あり ・ 操作対象データベース

にログインする必要が

あります。INSERT文 なし

UPDATE文:探索

DELETE文:探索

スキーマ定義文

スキーマ操作文

格納構造定義文

格納構造操作文

アクセス制御文

利用者制御文

システム制御文

CALL文 なし ・ 操作対象データベース

にログインする必要が

あります。

・ 呼び出すプロシジャ

ルーチンのパラメタの

モードがINである必要

があります。

データベース、

データベーススペース

定義文

なし ・ 個別セションでログイン

する必要があります。

・ rdbddlexコマンドを実

行できるユーザIDでロ

グインする必要がありま

す。

データベース、

データベーススペース

操作文

- 79 -

Page 87: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

文 構文

実行結果

返却の有

実行条件

・ トランザクションが開始

されていない状態であ

る必要があります。

・ SET SYSTEMPARAMETER文の実

行結果は次のログイン

後に有効になります。

CREATE DSO文(イン

デックスのDSO定義文)

・ 構 文 に つ い て

は“RDB運用ガイド

(XMLアダプダ編)”

を参照してください。

なし ・ 操作対象データベース

にログインする必要が

あります。XMLグループ定義文

XMLグループ変更文

XMLグループ削除文

RDBコマンド

(rdbfmtコマンドおよび

rdbsloaderコマンド)

・ RDBコマンドについ

ては、“コマンドリファ

レンス”を参照してく

ださい。

あり ・ 個別セションでログイン

する必要があります。

・ RDBコマンドを実行で

きるユーザIDでログイ

ンする必要があります。

・ トランザクションが開始

されていない状態であ

る必要があります。

行検索文 ・ 構文については、以

の“SYSTEM::DB_ERRORCODE ”に示

します。

あり

行操作文 なし

トランザクション設定文

データベース設定文

スキーマ設定文

ロール設定文

トランザクション文

格納構造情報取得文 あり

システム表検索文

検索情報取得文

RDBコマンド用ファイル

作成文

あり ・ 個別セションでログイン

する必要があります。

RDBコマンド用ファイル

削除文

なし

・ 評価方法は、「一般文字列」です。

result :

・ 検索結果を格納する変数名またはリストの要素を、指定してください。

・ 指定された変数に対する変数宣言が行われていない場合は、ローカル変数として取り扱われます。変数名として指

定できるものについては、“6.1.2 命名規約”を参照してください。

・ 動的SELECT文または格納構造情報取得文が実行された場合は、resultで指定した変数に、検索結果がリストとして

格納されます。リストの各要素もリストとして格納されます。列に名前がついている場合には、列名がリストのキーの名

前になります。

- 80 -

Page 88: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・ <!DO>タグで、データベースのアクセスや定義を実行した場合は、トランザクションの排他制御が行われます。<!DO>タグを実行したあとは、<!DO “COMMIT”>、<!DO “ROLLBACK”>、<!TRANSACTION>または<!ABORT>タグが

実行されるまで処理した資源の排他が行われています。フォーマットファイル終了前に、トランザクションを終了させ

てください。なお、個別セションで、一連の処理を複数のフォーマットファイルで実施している場合は、一連の処理を

終了するフォーマットファイルで、トランザクションを終了させてください。

・ <!DO>タグを実行したあとに、<!DO “COMMIT”>、<!DO “ROLLBACK”>、<!TRANSACTION>または<!ABORT>タグを実行した場合は、検索結果を格納する変数を参照することはできません。変数の参照が終了したあとに、トラ

ンザクションを終了させるタグを実行してください。トランザクションを終了後に参照した場合は、エラーとなるか誤っ

た結果が参照されます。

・ どの文が実行の結果を返却するかについては、実行文を参照してください。

・ 評価方法は、「左辺値」です。

onerror :

・ SQL文の実行が失敗した場合に、ラベルに該当する<!CATCH>ブロックを処理します。処理される<!CATCH>ブロッ

ク内で、“SYSTEM::DB_ERRORCODE”を参照することができます。

・ 環境パラメタDBErrorHandleまたは<!ERRORHANDLE>タグにより、SQL文の実行に対して、エラー処理を行わない

設定になっている場合、onerrorの指定は無効になります。

・ 評価方法は、「一般文字列」です。

データベース処理文

データベース処理文には、以下の文があります。

・ 行検索文

・ 行操作文

・ データベース設定文

・ トランザクション設定文

・ スキーマ設定文

・ ロール設定文

・ トランザクション文

・ 格納構造情報取得文

・ システム表検索文

・ 検索情報取得文

・ RDBコマンド用ファイル作成文

・ RDBコマンド用ファイル削除文

行検索文

SELECT 選択リスト

FROM スキーマ名.表名

WHERE ROW_ID IS 文字列

WHERE条件のROW_IDは、行の検索前に動的SELECT文の選択リストにROW_IDを指定して検索された文字列を

指定します。

参照

選択リストおよびスキーマ名.表名の構文については、“SQLリファレンス”を参照してください。

- 81 -

Page 89: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

行操作文

【挿入】

INSERT INTO スキーマ名.表名

[ (挿入別リスト) ]

VALUES(挿入値リスト)

BLOB型の列に対し値を挿入する場合に、挿入値リストの値指定にファイル定数を指定することができます。

参照

スキーマ名.表名、挿入別リストおよび挿入値リストの構文については、“SQLリファレンス”を参照してください。

【更新】

UPDATE スキーマ名.表名

SET 設定句:探索 [ { , 設定句:探索 } ・・・ ]

WHERE ROW_ID IS 文字列

UPDATE スキーマ名.表名

SET 設定句:探索 [ { , 設定句:探索 } ・・・ ]

[ WHERE 探索条件]

BLOB型の列に対し値を更新する場合に、設定句:探索の値指定にファイル定数を指定することができます。WHERE条件のROW_IDは、行の更新前に動的SELECT文の選択リストにROW_ID を指定して検索された文字列を指定しま

す。

参照

スキーマ名.表名および設定句:探索の構文については、“SQLリファレンス”の“探索条件”を参照してください。

【削除】

DELETE FROM スキーマ名.表名

WHERE ROW_ID IS 文字列

WHERE条件のROW_IDは、行の更新前に動的SELECT文の選択リストにROW_ID を指定して検索された文字列を

指定します。

参照

スキーマ名.表名の構文については、“SQLリファレンス”の“名前”を参照してください。

ファイル定数

FILE ’ファイル名’

ファイル名をアプリケーション環境パラメタdataDirからの相対パスで指定してください。ただし、パスの一部として「..」を指定することは出来ません。

データベース設定文

SET CATALOG データベース名

WebScriptセションのSQLアクセスで、対象となるデータベース名を変更します。

データベース設定文の設定が成功した場合、SYSTEMパッケージ変数“SYSTEM::LOGIN_DATABASE”の値は、

データベース設定文に指定されたデータベース名に変更されます。

SQLアクセスには、以下の文があります。

- 82 -

Page 90: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

- 動的SELECT文

- INSERT文

- UPDATE文:探索

- DELETE文:探索

- スキーマ定義文

- スキーマ操作文

- 格納構造定義文

- 格納構造操作文

- アクセス制御文

- CALL文

- 行検索文

- 行操作文

- システム表検索文

- 検索情報取得文

トランザクション設定文

SET TRANSACTION

[ READ ONLY | READ WRITE ]

[ READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE ]

READ ONLY、READ WRITE:トランザクションアクセスモード

READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLE:独立性水準

WebScriptセションのトランザクションモードを変更します。

参照

トランザクションモード、トランザクションアクセスモード、独立性水準については、“アプリケーション開発ガイド(埋込み

SQL編)”の“トランザクションモードの変更”を参照してください。

トランザクションについては、“アプリケーション開発ガイド(埋込みSQL編)”の“アプリケーションとトランザクション処

理”を参照してください。

スキーマ設定文

SET SCHEMA スキーマ名

WebScriptセションのSQLアクセスで、スキーマ名を省略したときのスキーマ名を変更します。

スキーマ設定文の設定が成功した場合、SYSTEMパッケージ変数“SYSTEM::LOGIN_SCHEMA”の値は、スキーマ

設定文に指定されたスキーマ名に変更されます。

SQLアクセスには、以下の文があります。

- 動的SELECT文

- INSERT文

- UPDATE文:探索

- DELETE文:探索

- スキーマ定義文

- スキーマ操作文

- 格納構造定義文

- 83 -

Page 91: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

- 格納構造操作文

- アクセス制御文

- CALL文

- 行検索文

- 行操作文

- システム表検索文

- 検索情報取得文

ロール設定文

SET ROLE {ロール名|NONE|DEFAULT}

ロール名:現在のログインユーザIDに対して有効とするロールの名前を指定します。

NONE:現在のログインユーザIDに対してロールを無効とします。

DEFAULT:現在のログインユーザIDのデフォルトのロールを有効とします。

参照

ロールについては、“RDB運用ガイド(データベース定義編)”の“権限情報定義”を参照してください。

トランザクション文

【COMMIT】

COMMIT

COMMITを指定した場合は、SQL文のCOMMIT WORKと同じ動作になります。

【ROLLBACK】

ROLLBACK

ROLLBACKを指定した場合は、SQL文のROLLBACK WORKと同じ動作になります。

格納構造情報取得文

格納構造情報取得文は、データベースの論理構造以外のデータベース定義情報を取得する文です。詳細は、“D.2検索情報取得”を参照してください。

種類 格納構造情報取得文 意味

DSO一覧 GET DSO_LIST 表に含まれるすべてのDSOの基本

情報の一覧を取得します。

DSO情報 GET DSO_INF 特定のDSOの詳細情報を取得しま

す。

格納キー列一覧 GETDSO_STR_KEY_LIST

特定のDSOのキーを構成する列に

関する情報を取得します。

分割キー列一覧 GETDSO_PAT_KEY_LIST

特定のDSOが分割格納を行ってい

る場合の分割キーを構成する列に

関する情報を取得します。

DSI一覧 GET DSI_LIST 特定のDSOに含まれるすべての

DSIの基本情報の一覧を取得しま

す。

DSI情報 GET DSI_INF 特定のDSIの詳細情報を取得しま

す。

- 84 -

Page 92: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

種類 格納構造情報取得文 意味

DSI分割値一覧 GETDSI_PAT_DATA_LIST

特定のDSIが分割格納されたDSIの場合に、DSIに定義された分割キー

の値の一覧を取得します。

DSI割当て情報 GETDSI_ALLOC_INF

特定のDSIの格納構造の要素単位

にスペース割当て情報を取得しま

す。

DSI割当てデータベース

スペース一覧

GETDSI_DBSPC_LIST

特定のDSIの格納構造の要素単位

にデータベーススペースへの領域

の割当て情報を取得します。

データベーススペース

一覧

GET DBSPC_LIST データベースが含まれるすべての

データベーススペースの基本情報

の一覧を取得します。

データベーススペース

権限一覧

GETDBSPC_PRIV_LIST

特定のデータベーススペースの権

限情報を取得します。

一時表データベース

スペース一覧

GETTEMP_TABLE_DBSPC_LIST

特定の一時表のデータベースへの

領域の割当て情報を取得します。

インデックス一覧 GET INDEX_LIST 特定の表のインデックス情報を取得

します。

利用者-データベース

スペース権限一覧

GETUSER_DBSPC_PRIV_LIST

特定の認可識別子のデータベース

スペース権限情報を取得します。

ロール-データベース

スペース権限一覧

GETROLE_DBSPC_PRIV_LIST

特定のロールのデータベースス

ペース権限情報を取得します。

データベーススペース

権限-ロール一覧

GETDBSPC_PRIV_ROLE_LIST

特定のデータベーススペースのロー

ル情報を取得します。

システム表検索文

GET SYSTEM_TABLE 動的SELECT文

動的SELECT文に、システム表に対する検索を指定します。選択リストの列名に、列のデータ型がCHAR(8)の“CREATE_TIME”を指定した場合、そのデータ型の値は、TIMESTAMP型の文字列表記と同じ形式の文字列に

変換されます。

検索情報取得文

検索情報取得文は問合せ式の選択リストについての情報を取得する文です。詳細は、“D.2 検索情報取得”を参照

してください。

RDBコマンド用ファイル作成文

CREATE FILE ファイル出力文字列

RDBコマンド用ファイル作成文は、RDBコマンドの入力となるファイルを作成する文です。RDBコマンド用ファイル作

成文で作成されたファイルは、RDBコマンド用ファイル削除文でファイルを削除するか、またはWebScriptセションの

終了時に削除されます。詳細は、“D.3 RDBコマンド用ファイル作成”を参照してください。

RDBコマンド用ファイル削除文

DROP FILE ファイル名

RDBコマンド用ファイル削除文は、RDBコマンドの入力となるファイルを削除する文です。

- 85 -

Page 93: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

使用例

検索結果の2レコード目の列名"NAME"、"TEL"に対する値を出力する

<!DO "SELECT NAME1,TEL FROM SCM.TBL1" RESULT=RES>

<!HREPLACE 'RES[2]{NAME1}'>

<!HREPLACE 'RES[2]{TEL}'>

検索結果の全レコードの列名"NAME"、"TEL"に対する値を出力する

<!DO "SELECT NAME1,TEL FROM SCM.TBL1" RESULT=RES>

<!FOREACH RES R>

<!HREPLACE 'R{NAME1}'>

<!HREPLACE 'R{TEL}'>

<!/FOREACH>

データベースの一連の定義とデータ追加を行う

<!DO "CREATE TABLE STOCKS.伝票表(伝票番号 INT,商品 CHAR(100))">

<!DO "CREATE DSO 伝票DSO FROM STOCKS.伝票表

TYPE SEQUENTIAL(PAGESIZE(4),ORDER(1))">

<!DO "CREATE DSI 伝票DSI DSO 伝票DSO ALLOCATE DATA ON DBSP1 SIZE 1M">

<!DO "COMMIT">

<!DO "rdbfmt -mid -i RDBDB.伝票DSI" RESULT=RES>

<!FOREACH RES t1>

結果 <!REPLACE t1><BR>

<!/FOREACH>

<!DO "INSERT INTO STOCKS.伝票表 VALUES(1,'商品A')">

<!DO "INSERT INTO STOCKS.伝票表 VALUES(2,'商品B')">

<!DO "COMMIT">

<!DO "SELECT 伝票番号,商品 FROM STOCKS.伝票表" RESULT=r>

<!FOREACH r t>

伝票番号=<!REPLACE t{伝票番号}>, 商品=<!REPLACE t{商品}><BR>

<!/FOREACH>

指定した表を初期化する

以下の使用例は、SolarisおよびLinuxの場合の例です。Windows(R)の場合は、使用例の4行目(<!SETVARempty_file "/tmp/null.dat">を、(<!SETVAR empty_file "C:\temp\null.dat">)に変更してください。

<!SETVAR db_name "RDBDB">

<!SETVAR schema_name "STOCKS">

<!SETVAR table_name "伝票表">

<!SETVAR empty_file "/tmp/null.dat">

<!DO "GET DSO_LIST $db_name $schema_name $table_name" RESULT=DSOLIST>

<!FOREACH DSOLIST t1>

<!IF 't1{DSO_TYPE} eq "B"'>

<!SETVAR dso_name t1{DSO_NAME}>

<!DO "GET DSI_LIST $db_name $dso_name" RESULT=DSILIST>

<!FOREACH DSILIST t2>

<!DO "COMMIT">

<!SETVAR dsi_name t2{TABLE_DSI_NAME}>

<!SETVAR command "rdbsloader -mi -i $db_name.$(dsi_name) $empty_file">

rdbsloaderコマンド=<!REPLACE command><BR>

<!DO command RESULT=RES>

<!FOREACH RES t3>

結果 <!REPLACE t3><BR>

<!/FOREACH>

<!/FOREACH>

<!/IF>

<!/FOREACH>

<!DO "COMMIT">

- 86 -

Page 94: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

ロール“STOCKS_A1”を有効にして検索を行う

<!DO “SET ROLE STOCKS_A1”>

<!DO “SELECT 製品名 FROM STOCKS.在庫表” RESULT=r>

<!FOREACH r t>

<!REPLACE t{製品名}><BR>

<!/FOREACH>

ロードデータを作成してDSIを初期化する

<!ERRORHANDLE ON>

<!SETVAR array[0] "1,\"商品A\"">

<!SETVAR array[1] "2,\"商品B\"">

<!SETVAR array[2] "3,\"商品C\"">

<!SETVAR array[3] "4,\"商品D\"">

<!SETVAR array[4] "5,\"商品E\"">

<!SETVAR data 'join("\n", array)'>

<!DO "CREATE FILE $data" RESULT=r>

<!SETVAR file r[0]{FILE_NAME}>

<!DO "COMMIT">

<!DO "rdbsloader -mi -i RDBDB.伝票DSI -t $file" RESULT=r>

<!HREPLACE SYSTEM::DB_ERRORCODE><BR>

<!HREPLACE SYSTEM::DB_ERRORMSG><BR>

<!FOREACH r t>

<!REPLACE t><BR>

<!/FOREACH>

<!DO "DROP FILE $file">

注意

検索結果は、変数によって参照されている間、メモリに展開されたままになります。結果が必要なくなった場合は、変数

に別の値を代入するなどして、参照を解除してください。

6.3.2 <!TRANSACTION>

説明

<!TRANSACTION>は、トランザクションの制御を行うタグです。

構文

<!TRANSACTION action >

パラメタ

action :

・ COMMITまたはROLLBACKのどちらかを指定してください。

- COMMIT“COMMIT WORK”というSQL文を実行します。

- ROLLBACK“ROLLBACK WORK”というSQL文を実行します。

・ 評価方法は、「定数文字列」です。

使用例

<!SETVAR fail 0>

<!FOREACH 'split("\n",data)' t>

<!IF 'length(t) > 50'>

- 87 -

Page 95: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<!TRANSACTION ROLLBACK>

<!SETVAR fail 1>

<!BREAK>

<!/IF>

<!DO "INSERT INTO WL_SCHEMA.製品表(製品名) VALUES ($t)">

<!/FOREACH>

<!IF '!fail'>

<!TRANSACTION COMMIT>

<!/IF>

6.4 表示タグ

表示に関するタグについて説明します。

6.4.1 <!REPLACE>

説明

<!REPLACE>は、指定した値を、指定した形式で、その位置に埋め込むタグです。

構文

<!REPLACE expression [ STYLE=style ] >

パラメタ

expression :

・ 出力する文字列や値を指定してください。

・ 評価方法は、「一般文字列」です。

style :

・ NORMALまたはHTMLを指定することができます。省略した場合は、NORMALが指定されます。

・ NORMAL:出力値を無加工のまま、出力します。

・ HTML:以下の変換を行います。

Expression 出力結果

& &amp;

< &lt;

> &gt;

" &quot;

\r <BR>

\n <BR>

・ 評価方法は、「定数文字列」です。

使用例

<!REPLACE "<AAA>" STYLE="HTML">

↓(出力文字列)

&lt;AAA&gt;

6.4.2 <!HREPLACE>

- 88 -

Page 96: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

説明

<!HREPLACE>は、指定した値に対し以下の変換を行い、その位置に埋め込むタグです。

Expression 出力結果

& &amp;

< &lt;

> &gt;

" &quot;

\r <BR>

\n <BR>

<!HREPLACE>タグの動作は、styleにHTMLを指定した場合の<!REPLACE>タグの動作と完全に同じです。

構文

<!HREPLACE expression>

パラメタ

expression :

・ 出力する文字列や値を指定してください。

・ 評価方法は、「一般文字列」です。

使用例

<!HREPLACE "<AAA>">

↓(出力文字列)

&lt;AAA&gt;

6.5 変数タグ

変数に関するタグについて説明します。

6.5.1 <!VAR>

説明

<!VAR>は、変数の宣言を行うタグです。

scope がGLOBALの場合は、セション終了時または<!UNDEFVAR>の実行まで使用することができます。LOCALの場

合は、フォーマットファイル内で有効となります。

構文

<!VAR name [ SCOPE=scope ] [ VALUE=value ] >

パラメタ

name :

・ “6.1.2 命名規約”の(変数名)にしたがって変数名を指定してください。

・ グローバル変数の宣言で、カレントパッケージ以外のグローバル変数を宣言する場合は、変数名をパッケージ名で

修飾する必要があります。

・ 評価方法は、「左辺値」です。

- 89 -

Page 97: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

scope :

・ グローバル変数として宣言する場合は、GLOBALを指定し、ローカル変数として宣言する場合は、LOCALを指定し

てください。省略した場合はGLOBALとなります。

・ 評価方法は、「定数文字列」です。

value :

・ 初期値を指定してください。省略した場合、値は未定義となります。

・ 評価方法は、「一般データ」です。

使用例

<!VAR cond SCOPE="GLOBAL" VALUE="名称 LIKE '$QUERY::Name'">

注意

共有セションの場合は、グローバル変数の宣言はできません。

scope がLOCALの場合、同名の変数がすでに存在していると、エラーになります。

scope がGLOBALの場合、対象とするパッケージ内に同名の変数がすでに存在していると、エラーになります。

変数の参照により、カレントパッケージのグローバル変数およびローカル変数で同名の変数名が存在した場合、パッケー

ジ名で修飾しなければローカル変数の値が参照されます。

6.5.2 <!SETVAR>

説明

<!SETVAR>は、変数およびリスト要素の値を更新するタグです。

<!VAR>で定義していない変数に対して、<!SETVAR>で変数に値を設定すると、ローカル変数が定義されます。

グローバル変数の場合、変数名をパッケージ名で修飾することで、カレントパッケージ以外のグローバル変数の値を更

新することができます。

構文

<!SETVAR name value [ REF ] >

パラメタ

name :

・ 更新する変数またはリストの要素を指定してください。

・ 評価方法は、「左辺値」です。

value :

・ name に指定した変数またはリストの要素に設定する値を指定してください。

・ 評価方法は、「一般データ」です。

REF :

・ REFパラメタを指定しない場合は、name にvalue の値が設定されます。

・ REFパラメタを指定した場合、valueは存在する変数または存在するリストの要素になります。この場合は、name がvalueと同一のデータを指すようになります。

・ valueは、存在する変数または存在するリストの要素になるようにしてください。

- 90 -

Page 98: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

概念図

使用例

(1) 単純な入力

<!SETVAR X 100> Xの値は100

<!SETVAR Y '100 + 300'> Yの値は400

<!SETVAR Z X> Zの値は100

<!SETVAR X 50> Xの値は50となるがZの値は100のまま

(2) REFパラメタ

<!SETVAR X 100>

<!SETVAR Y 200>

<!SETVAR P X REF> PはXと同じデータを指す

PとXの値は100

<!SETVAR X 300> PとXの値はともに300

<!SETVAR P 400> PとXの値はともに400

<!SETVAR P Y REF> PはYと同じデータを指す

PとYの値は200、Xの値は400のまま

<!SETVAR P 500> PとYの値は500

<!SETVAR A '(0,1,2)'>

<!SETVAR B[0] A[0] REF>

<!SETVAR B[1] A[10] REF> <誤り>要素A[10]は存在しない

<!SETVAR B[2] 200 REF> <誤り>200は変数でもリスト要素でもない

(3) REFの用途:構造データ

<!SETVAR 'PERSON1{Name}' "山田">

<!SETVAR 'PERSON1{Age}' 25>

<!SETVAR 'PERSON2{Name}' "田中">

<!SETVAR 'PERSON2{Age}' 23>

<!SETVAR 'PERSON1{Wife}' PERSON2 REF>

<!SETVAR 'PERSON2{Husband}' PERSON1 REF>

- 91 -

Page 99: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

(4) REFの用途:効率の問題

<!DO "SELECT * FROM SCM.TBL1" RESULT=r>

rに大量のデータが入っている

<!SETVAR a r> aにr全体のデータがコピーされる

時間と大量のメモリが消費される

<!SETVAR b r REF> bはrと同じデータを指す

時間もメモリもほとんど消費しない

6.5.3 <!UNDEFVAR>

説明

<!UNDEFVAR>は、変数の宣言を解除するタグです。

指定された変数が宣言されていない場合は、エラーになります。

システムが用意する変数は指定できません。

構文

<!UNDEFVAR name>

パラメタ

name :

・ 変数名を指定してください。

・ 評価方法は、「左辺値」です。

使用例

<!VAR abc VALUE="global-abc" SCOPE="GLOBAL">

<!VAR abc VALUE="local-abc" SCOPE="LOCAL">

<!REPLACE 'abc'> → ローカル変数のabcが参照されます。値は「local-abc」です。

<!UNDEFVAR abc> → ここでは、ローカル変数のabcの定義がなくなります。

<!REPLACE 'abc'> → ローカル変数abcが存在しないため、グローバルabcを参照します。

値は「global-abc」です。

<!UNDEFVAR abc> → ここでは、グローバル変数のabcの定義がなくなります。

<!REPLACE 'abc'> → ローカル変数abc、グローバル変数abcがともに存在しないため、

結果は空文字列となります。

備考

ローカル変数に対して、<!UNDEFVAR>が実行されなかった場合は、フォーマットファイルの処理終了時に自動的に宣

言が解除されます。

- 92 -

Page 100: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

6.6 そのほかのタグ

“6.2 実行制御タグ”から“6.5 変数タグ”の分類に属さないタグについて説明します。

6.6.1 <!ERRORHANDLE>

説明

<!ERRORHANDLE>は、エラーが発生した場合の制御を変更するタグです。

エラーが発生した場合の制御は、アプリケーション環境パラメタのDBErrorHandleおよびWLErrorHandleで設定します

が、その設定を部分的に変更したい場合に<!ERRORHANDLE>タグが使用できます。

<!ERRORHANDLE>タグは、フォーマットファイルの任意の位置で指定できます。指定された時点から、次の<!ERRORHANDLE>タグまで、またはフォーマットファイルの処理が終了するまで設定が有効となります。

構文

<!ERRORHANDLE state [ TYPE=type ] >

パラメタ

state :

・ ON、OFF、またはDEFAULTが指定できます。

・ ONおよびOFFの意味は、アプリケーション環境パラメタのonおよびoffの値の意味と同じです。

・ DEFAULTを指定した場合、アプリケーション環境パラメタでの設定に戻ります。

・ 評価方法は、「定数文字列」です。

type :

・ SQL文の実行に対するエラー制御を設定する場合は、DBを指定してください。この場合は、アプリケーション環境パラメタ

DBErrorHandleに指定した値が一時的に無効になります。

・ WebScriptの実行に対するエラー制御を設定する場合は、WLを指定してください。この場合、アプリケーション環境

パラメタDBErrorHandleに指定した値が、一時的に無効になります。

・ 省略した場合は、両方が対象になります。この場合、アプリケーション環境パラメタDBErrorHandleおよび

WLErrorHandleに指定した値が、一時的に無効になります。

・ 評価方法は、「定数文字列」です。

使用例

<!ERRORHANDLE ON TYPE=DB>

<!DO "SELECT 製品名 FROM WL_SCHEMA.製品表 WHERE $QUERY::cond" RESULT=rslt>

<!IF 'SYSTEM::DB_ERRORCODE ne "00000"'>

<!THROW "label">

<!-- <!CATCH "label">でエラー処理をさせます。 -->

<!/IF>

<!ERRORHANDLE DEFAULT>

6.6.2 <!SETCOOKIE>

説明

<!SETCOOKIE>は、HTTPヘッダにSet-Cookie:を付加するタグです。

フォーマットファイルの処理結果をブラウザに出力する場合は、指定した<!SETCOOKIE>の情報に従って、HTTPヘッダ

に付加します。1つのフォーマットファイルで、複数の<!SETCOOKIE>タグが指定された場合には、指定された個数だけの

Set-Cookie:が付加されます。

- 93 -

Page 101: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

構文

<!SETCOOKIE name value [ PATH=path ] [ DOMAIN=domain ] [ EXPIRES=expires ] [ SECURE ]>

パラメタ

name :

・ Cookieの名前を命名規約(Cookie名)に従って指定してください。

・ 評価方法は、「定数文字列」です。

value :

・ name で指定されるCookieの値を指定してください。

・ 評価方法は、「一般文字列」です。

path :

・ Cookieを有効にするURLのパスを指定してください。

・ 評価方法は、「一般文字列」です。

domain :

・ Cookieを有効にするドメインを指定してください。

・ 評価方法は、「一般文字列」です。

expires :

・ Cookieの満了日付を指定してください。

・ 評価方法は、「一般文字列」です。

SECURE :

・ Cookieに"secure"を指定する場合に、指定してください。

使用例

<!SETCOOKIE prev_cond "名称 LIKE '$QUERY::Name'">

注意

指定された<!SETCOOKIE>タグは、機械的にSet-Cookie:に変換されます。したがって、同じ名前で異なる値を持つ<!SETCOOKIE>タグが指定された場合に、正常な動作は保証されません。

6.6.3 <!PACKAGE>

説明

<!PACKAGE>は、カレントのパッケージが何であるかを指定するタグです。指定されたパッケージが存在しなければ、新

規に作成されます。

構文

<!PACKAGE name >

パラメタ

name :

・ パッケージ名を名前の命名規約(パッケージ名)に従って指定してください。

- 94 -

Page 102: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・ 評価方法は、「定数文字列」です。

使用例

以下に示すように指定すると、カレントパッケージ名がmypkgになります。

<!PACKAGE mypkg>

注意

<!PACKAGE>は、共有セションでは使用できません。

備考

・ このタグは、フォーマットファイルの<HEAD>タグのブロック内で記述することを推奨します。

・ <!PACKAGE>タグが使用されていない場合は、カレントパッケージは""(空文字列)となります。

- 95 -

Page 103: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

第7章 WebScript言語

本章では、WebScript言語について説明します。

7.1 データ

WebScript言語のデータについて説明します。

7.1.1 データの分類

WebScript言語のデータは、以下のように分類されます。

・ 未定義値

「未定義値」と呼ばれる、特別なデータがあります。

たとえば、変数が初期値指定なしで宣言された場合に、 初の値は未定義値です。

・ 単値

文字列:データの長さには、言語としての制限はありません。

数値:いわゆる実数型の数値です。C++のdouble型として実装されています。

・ リスト

複数の値を保持するデータです。

1つのリスト型にあるデータ中の個々の値を、リストの要素といいます。リストの要素は、未定義値、単値またはリストで

す。リストの要素には、キーと呼ばれる文字列が与えられていることもあります。

1つのリスト中の要素に、リストと単値を混在させることができます。

リストの要素の数を、そのリストのサイズといいます。

7.1.2 リスト要素を参照する演算子

x[n]

リストxの添字番号nの要素を参照します。nは数値のコンテキストで解釈されます。 初の要素位置は0です。

- x[n]が左辺値として評価される場合

xがリスト以外の場合は、xがリストに変換され、実際のデータ構造が変更されます。変換方法は、“7.7 コンテキス

ト”を参照してください。

nがxのサイズ以上の値の場合は、xのサイズが n+1 となり、xのサイズからnまでの要素の値は未定義値となりま

す。

- それ以外の場合

nがxのサイズ以上の値の場合は、未定義値が返されます。

x{key}

リストxのキーkeyの要素を参照します。キーとして指定できるのは、定数文字列だけです。引用符(「'」や「"」)で囲ま

ずに、直接文字列を指定してください。

- x{key}が左辺値として評価される場合

xがリスト以外の場合は、xがリストに変換され、実際のデータ構造が変更されます。変換方法は、“7.7 コンテキス

ト”を参照してください。

指定されたキーkeyがxの中に存在しない場合は、新しい要素が生成され、そのキーがkeyになります。新しい要

素の位置は、リストの末尾です。

- それ以外の場合

keyが存在しない場合は、未定義値が返されます。

7.1.3 変更可能性

データには、ユーザが変更することができるものと、できないものがあります。

・ <!DO>タグによるデータベースの検索結果として、返されるデータは、変更できません。

- 96 -

Page 104: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・ システムが用意する変数の値には、変更できないものもあります。詳細は、“7.4 QUERYパッケージ変数”、“7.5 COOKIEパッケージ変数”または“7.6 SYSTEMパッケージ変数”を参照してください。

・ それ以外のデータは変更できます。

7.2 定数

WebScript言語では、以下の定数を使用することができます。

文字列定数

文字列定数は、二重引用符(")または引用符(')で囲んで表現します。

二重引用符で始まったものは、二重引用符で終了する必要があります。引用符で始まったものは、引用符で終了する必

要があります。

円記号 (\) には特別な意味があります。

\\ → 円記号自体

\" → 二重引用符自体

\' → 引用符自体

\$ → ドルマーク自体

\n → 改行コード (\x0a)

\r → 復帰コード (\x0d)

\t → タブ (\x09)

\f → 改ページコード (\x0c)

\a → アラート (\x07)

\e → エスケープ (\x1b)

\d、\dd、\ddd (dは0から7まで) → 8進で表現した文字

\xh、\xhh → 16進で表現した文字

\半角英字 → \文字自体+半角英字自体を表します

上に示した以外の円記号+文字(日本語を含む)は、不定な値となります。

ここに示したWebScript言語での円記号のエスケープは、“5.4.1 特殊文字のエスケープ”で説明したフォーマットファイル

のエスケープとは、独立しています。

例 <!REPLACE 'html(\"\\\"\")'>

1. \" → "、\\ → \ の規則が適用され、html(\"\\\"\")がhtml("\"")に変換されます。

2. \" → " の規則がもう一度適用され、「&quot;」になります。

詳細は、“付録B WebScriptフォーマットファイル解釈の詳細”を参照してください。

数値定数

数値定数には、以下の3種類があります。

10進定数

10進定数では、整数、固定小数または浮動小数を表記できます。

- 整数は、0から9までの数字を並べて表記します。先頭に不要な0を付けることはできません。先頭に「+」または「-」の符号を付けることもできます。

- 固定小数は、整数に続けて小数点(.)、さらに0から9までの数字を並べて表記します。

- 浮動小数は、固定小数に続けて文字「E」または「e」、さらに符号のない整数を指定することで表記します。

たとえば、「2.5E3」は「2.5×10の3乗」を意味します。

8進定数

8進定数は、数字「0」に続けて、0から7までの数字を並べて表します。先頭に「+」または「-」の符号を付けることもでき

ます。

- 97 -

Page 105: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

16進定数

16進定数は、「0x」に続けて、0から9およびAからFまでの文字を並べて表記します。先頭に「+」または「-」の符号を付

けることもできます。

7.3 変数

WebScript言語で使用する変数と属するパッケージについて説明します。

7.3.1 変数の分類

変数は、ユーザ変数およびシステム変数に分類されます。

・ ユーザ変数

フォーマットファイルの中で、ユーザが定義して使用することができます。

ユーザ変数は、グローバル変数およびローカル変数に分類されます。

- グローバル変数は、WebScriptセションが終了するまで有効で、値を保持し続けます。

- ローカル変数は、該当のフォーマットファイルを処理している間だけ存在し、フォーマットファイルの処理が終了

すると消滅します。

共有セションの場合は、グローバル変数を使用することはできません。

・ システム変数

WebScriptシステムによって用意される変数です。以下の3種類あります。

- 7.4 QUERYパッケージ変数

- 7.5 COOKIEパッケージ変数

- 7.6 SYSTEMパッケージ変数

変数名に関する規約については、“6.1.2 命名規約”を参照してください。

7.3.2 パッケージ

グローバル変数およびシステム変数は、どれか1つの「パッケージ」に属します。同じ名前をもつ変数でも、属するパッケー

ジが異なれば、それらは異なる変数として取り扱われます。

パッケージに属する変数の指定

パッケージ(package)に属する変数varを指定するには、「::」を用いて「package::var」と表記します。

指定した名前のパッケージが存在しない場合は、エラーになります。

パッケージ名に関する規約については、“6.1.2 命名規約”を参照してください。

変数の特定方法

パッケージによって修飾されない変数名varが指定された場合、どの変数が参照されるかのルールについて、以下に示

します。

・ ローカル変数varが存在する場合は、ローカル変数が参照されます。

・ カレントパッケージに属する変数varが存在する場合は、その変数が参照されます。

・ どちらも存在しない場合は、新しいローカル変数varが作成され、その変数が参照されます。

カレントパッケージ

任意の時点で、「カレントパッケージ」と呼ばれるパッケージが定まっています。パッケージ名を指定しないでグローバル

変数を指定した場合は、カレントパッケージに属する変数が参照されます。

フォーマットファイルの解釈がスタートするときのカレントパッケージは、「""(空文字)」です。カレントパッケージは、<!PACKAGE>タグによって変更することができます。

- 98 -

Page 106: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

パッケージ参照の例

以下のex1.html、ex2.html、ex3.htmlおよびex4.htmlはフォーマットファイルです。

【ex1.html】

<HEAD>

<TITLE>Package Example 1</TITLE>

<!PACKAGE "mypkg">

</HEAD>

<BODY>

<!VAR abc SCOPE="GLOBAL" VALUE="global-abc">

<!HREPLACE 'abc'> → 表示は「global-abc」です。

【ex2.html】(同じパッケージからの呼び出し)

<HEAD>

<TITLE>Package Example 2</TITLE>

<!PACKAGE "mypkg">

</HEAD>

<BODY>

<!HREPLACE 'abc'> → まずローカル変数abcを参照しようとしますが定義されて

いないので、ex1.htmlで宣言されたグローバル変数abcが

採用されます。

表示は「global-abc」です。

(ローカル変数abcの値を宣言する)

<!VAR abc VALUE="local-abc" SCOPE="LOCAL">

ローカル変数abcは、ex1.htmlで宣言したグローバル変数abcとは違うものになります。

<!HREPLACE 'abc'> → パッケージ名による修飾がないので、ローカル変数abcを

参照します。表示は「local-abc」です。

ex1.htmlで宣言したグローバル変数を参照したい場合は、パッケージ名で修飾します。

<!HREPLACE 'mypkg::abc'> → これはグローバル変数のabcなので、表示は「global-abc」

となります。

【ex3.html】(別パッケージからの呼び出し)

<HEAD>

<TITLE>Package Example 3</TITLE>

<!PACKAGE "anotherpkg">

(ex1.htmlとは別のパッケージを宣言)

</HEAD>

<BODY>

<!VAR abc VALUE="another-abc" SCOPE="GLOBAL">

<!HREPLACE 'abc'> → このフォーマットファイルのローカル変数abcを参照しよう

としますがローカル変数abcは宣言されていないので、カ

レントパッケージのグローバル変数abcを参照します。

表示は「another-abc」です。

カレントパッケージ以外のグローバル変数を参照する方法は以下のとおりです。

<!HREPLACE 'mypkg::abc'> → これはmypkgパッケージのグローバル変数abcを指します。

表示は「global-abc」です。

【ex4.html】(パッケージ指定のない場合)

<HEAD>

<TITLE>Package Example 4</TITLE>

<!----- PACKAGE宣言なし ----->

</HEAD>

- 99 -

Page 107: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<BODY>

<!VAR abc VALUE="global-non-abc" SCOPE="GLOBAL">

<!VAR abc VALUE="local-non-abc" SCOPE="LOCAL">

<!HREPLACE 'abc'> → ローカル変数abcを指します。

表示は「local-non-abc」です。

グローバル変数abcを指すためには、パッケージで修飾しなければ

なりませんが、パッケージ名が宣言されていないので、デフォルトの

パッケージである空文字列で修飾します。

<!HREPLACE '::abc'> → グローバル変数abcを参照します。

表示は「global-non-abc」です。

7.4 QUERYパッケージ変数

Webクライアントから送られてくる変数です。

GET methodの場合にURLの一部として指定されるか、またはPOST methodの場合にヘッダのあとに送信されるもので

す。

値の有効範囲はローカルです。次のフォーマットファイルを処理するときに、同じ変数が存在することは、一般には保証

されません。また、変数が存在している場合でも、値が同じであることは、一般には保証されません。

Webクライアントから、key=value が送信されると、変数QUERY::keyの値がvalueになります。同一のkeyに対して、複数の

valueが指定された場合には、QUERY::keyがリストになります。ただし、その場合の順序は保証されません。また、フォー

マットファイル内で、値を設定することはできません。

SolarisおよびLinuxの場合の例を以下に示します。Windows(R)の場合は、例の一部を以下のように変更してください。

・ wit_fmtr → wit_fmtr.exe

例1

<A HREF="/cgi-bin/wit_fmtr?WIT_html=fmt1.html&myVar0=value0">

これによって呼び出されたフォーマットファイル fmt1.htmlの中では、

変数QUERY::myVar0に、値"value0"が設定されます。

例2

<FORM ACTION="/cgi-bin/wit_fmtr" METHOD="POST">

<INPUT TYPE="hidden" NAME="WIT_html" VALUE="fmt2.html">

<INPUT TYPE="checkbox" NAME="cb" VALUE="item1">item1<BR>

<INPUT TYPE="checkbox" NAME="cb" VALUE="item2">item2<BR>

<INPUT TYPE="submit" VALUE="OK">

</FORM>

これによって呼び出されたフォーマットファイル fmt2.htmlの中では、

変数QUERY::cbに設定される値は、ユーザがチェックボックスをどのように

チェックしたかによって、以下となります。

- 何もチェックしなかった場合は、「未定義値」

- item1だけをチェックした場合は、「単値"item1"」

- item1、item2をチェックした場合は、「リスト("item1","item2")」

7.5 COOKIEパッケージ変数

Webクライアントから送られてきたcookieの値です。

たとえばnameという名前をもつcookieの値は、変数COOKIE::nameに設定されます。

値の有効範囲はローカルです。次のフォーマットファイルを処理するときに、同じ変数が存在することは、一般には保証

されません。また、変数が存在している場合でも、値が同じであることは、一般には保証されません。

同一の名前nameに対して、複数の値をWebScriptセションが受け取った場合は、COOKIE::nameがリストになります。た

だし、その場合の順序は保証されません。また、フォーマットファイル内で値を設定することはできません。

- 100 -

Page 108: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

なお、Webクライアント側にcookieを送信する場合は、<!SETCOOKIE>タグを使用してください。

7.6 SYSTEMパッケージ変数

QUERYおよびCOOKIE以外に、WebScriptが用意する変数が属するパッケージです。システムパッケージに変数を作る

ことはできません。

値の有効範囲はローカルです。次のフォーマットファイルを処理するときに、同じ変数が存在することは、一般には保証

されません。また、変数が存在している場合でも、値が同じであることは、一般には保証されません。

SYSTEM::DB_ERRORCODE

データベースエラーコードを参照する変数です。

<!DO>タグによるSQL文の実行、<!ABORT>タグまたは<!TRANSACTION>タグによるトランザクション処理を実行した

場合に、エラーが発生したかどうかを識別する変数です。

フォーマットファイル内で値を設定することはできません。

参照

エラーコードとして、SQLSTATE値を指定します。SQLSTATE値については、“SQLリファレンス”の“SQLSTATE値”を参

照してください。

エラーコードの値を識別する場合は、その値を文字列として扱ってください。

アプリケーション環境パラメタのDBErrorHandleで、データベースのエラー処理を行うことを指定していない場合は、<!ERRORHANDLE>拡張タグで、データベースタイプにONを指定して、エラー処理を行うことを指定する必要があります。

例 SQLSTATE値が"3F000"の場合

<!ERRORHANDLE ON TYPE=DB>

<!DO "SELECT NAME FROM SCM.SAMPLE" RESULT=DATA>

<!IF 'SYSTEM::DB_ERRORCODE ne "00000"'>

<!IF 'SYSTEM::DB_ERRORCODE eq "3F000"'>

:

<!/IF>

:

<!/IF>

<!ERRORHANDLE DEFAULT TYPE=DB>

SYSTEM::DB_ERRORMSG

データベースエラーメッセージを参照する変数です。

<!DO>タグによるSQL文の実行、<!ABORT>タグまたは<!TRANSACTION>タグによるトランザクション処理を実行した

場合に、エラーの内容を通知するエラーメッセージが設定されます。

フォーマットファイル内で値を設定することはできません。

例 SELECT文でのエラー原因メッセージの出力

<!DO "SELECT NAME FROM SCM.SAMPLE" RESULT=DATA>

<!IF 'SYSTEM::DB_ERRORCODE ne "00000"'>

<!HREPLACE SYSTEM::DB_ERRORMSG>

<!ABORT>

<!/IF>

SYSTEM::LAST_DB_ERRORCODE

データベースエラーコードを参照する変数です。

Symfoware Serverのログインから現在までの、 後に出力されるSQLのエラーコードの値です。ログイン直後の値

は、"00000"です。ただし、wit_gwdコマンドで、WIT_error=yesが指定された場合、ログインでエラーが発生したならば、

ログインエラーのエラーコードが設定されます。

- 101 -

Page 109: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

本変数の値は、変更できます。

使用例については、“SYSTEM::LAST_DB_ERRORMSG”を参照してください。

SYSTEM::LAST_DB_ERRORMSG

データベースエラーメッセージを参照する変数です。

Symfoware Serverのログインから現在までの、 後に出力されるSQLのエラーメッセージの値です。ログイン直後の値

は、""(空文字列)です。ただし、wit_gwdコマンドで、WIT_error=yesが指定され、ログインでエラーが発生した場合は、

ログインエラーのエラーメッセージが設定されます。

本変数の値は、変更できます。

<!ERRORHANDLE ON>

<!SETVAR SYSTEM::LAST_DB_ERRORCODE "normal">

<!DO "INSERT ~">

<!DO "INSERT ~">

<!DO "INSERT ~">

<!IF 'SYSTEM::LAST_DB_ERRORCODE ne "normal"'>

エラーが発生しました。<!REPLACE SYSTEM::LAST_DB_ERRORMSG><BR>

<!/IF>

SYSTEM::WL_ERRORCODE

WebScriptエラーコードを参照する変数です。

WebScriptの動作中に、エラーを検出した場合、メモリアロケーションエラーまたは通信エラーが発生した場合のエラー

コードが設定されます。設定されるエラーコードの詳細は、“付録C WebScriptエラーコード一覧”を参照してください。

フォーマットファイル内で値を設定することはできません。

アプリケーション環境パラメタのWLErrorHandleで、WebScriptのエラー処理を行うことを指定していない場合は、<!ERRORHANDLE>拡張タグで、WebScriptタイプにONを指定してエラー処理を行うことを指定する必要があります。

SYSTEM::LOGIN_NAME

ログインユーザIDを参照する変数です。

セションのログインユーザIDを参照することができます。

フォーマットファイル内で値を設定することはできません。

SYSTEM::LOGIN_SYSTEM

ログイン中のRDBシステム名を参照する変数です。

セションのRDBシステム名を参照することができます。

フォーマットファイル内で値を設定することはできません。

SYSTEM::LOGIN_DATABASE

アクセス対象のデータベース名を参照する変数です。

ログイン直後の値は、ログインしたときのデータベース名です。

データベース設定文の設定が成功した場合、本変数の値は、データベース設定文に指定されたデータベース名に変更

されます。

本変数の値を変更することはできません。

SYSTEM::LOGIN_SCHEMA

表名の指定時で、スキーマ名を省略した場合に、スキーマ名を参照する変数です。

ログイン直後の値は、ログインしたときのユーザIDです。

- 102 -

Page 110: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

スキーマ設定文の設定が成功した場合、本変数の値は、スキーマ設定文に指定されたスキーマ名に変更されます。

本変数の値を変更することはできません。

SYSTEM::MAX_RESULTNUM

大検索結果数を設定する変数です。

<!DO>によって検索を行う前に、MAX_RESULTNUMに 大検索件数を指定することで、<!DO>タグによる検索の結果

数を制御することができます。

設定可能な範囲は、0から2,147,483,647までです。なお、0が設定された場合または省略した場合は、65,535が設定され

ます。

この変数は、任意の時点で更新できます。

SYSTEM::TIMEOUT

フォーマットファイルがタイムアウトによって、処理されているかどうかを判定する変数です。

この変数は、アプリケーション環境パラメタlogoutFormatで指定されたフォーマットファイル中で使用すると効果的です。

フォーマットファイルの中で、TIMEOUTを参照することにより、現在処理しているフォーマットファイルがタイムアウトによっ

て処理されているのか、あるいはwit_logoutコマンドで処理されるかを識別することができます。

タイムアウトによって処理されている場合は、TIMEOUTに1が設定され、そうでない場合は、0が設定されます。

フォーマットファイル内で値を設定することはできません。

SYSTEM::GWD

WebScriptコマンドのパスを参照する変数です。

現在のWebScriptを使用している環境で、wit_gwdコマンドを実行するためのURLの絶対パス部分が設定されています。

なお、WebScriptは、この変数を設定するためにアプリケーション環境パラメタWLCommandPathを使用していますので、

このパラメタの値を正しく設定しておくことが必要です。

フォーマットファイル内で値を設定することはできません。

SYSTEM::FMTR

WebScriptコマンドのパスを参照する変数です。

現在のWebScriptを使用している環境で、wit_fmtrコマンドを実行するためのURLの絶対パス部分が設定されています。

なお、WebScriptは、この変数を設定するためにアプリケーション環境パラメタWLCommandPathを使用していますので、

このパラメタの値を正しく設定しておくことが必要です。

フォーマットファイル内で値を設定することはできません。

SYSTEM::MEDIA

WebScriptコマンドのパスを参照する変数です。

現在のWebScriptを使用している環境で、wit_mediaコマンドを実行するためのURLの絶対パス部分が設定されていま

す。なお、WebScriptは、この変数を設定するためにアプリケーション環境パラメタWLCommandPathを使用していますの

で、このパラメタの値を正しく設定しておくことが必要です。

フォーマットファイル内で値を設定することはできません。

SYSTEM::LOGOUT

WebScriptコマンドのパスを参照する変数です。

現在のWebScriptを使用している環境で、wit_logoutコマンドを実行するためのURLの絶対パス部分が設定されていま

す。なお、WebScriptは、この変数を設定するためにアプリケーション環境パラメタWLCommandPathを使用していますの

で、このパラメタの値を正しく設定しておくことが必要です。

フォーマットファイル内で値を設定することはできません。

- 103 -

Page 111: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

SYSTEM::OS

WebScriptが動作しているサーバのOS種別を参照する変数です。

Solarisの場合

“Solaris”が設定されます。

Linuxの場合

“Linux”が設定されます。

Windowsの場合

“WindowsNT”が設定されます。

フォーマットファイル内で値を設定することはできません。

SYSTEM::SCRIPT_CODE

WebScriptセションが動作するSymfoware/RDBのロケールを参照する変数です。

Solarisの場合

“C”、“EUC”、“SJIS”、または“UNICODE”が設定されます。

Linuxの場合

“C”、“EUC”、または“UNICODE”が設定されます。

Windowsの場合

“C”、または“SJIS”が設定されます。

フォーマットファイル内で値を設定することはできません。

SYSTEM::DB_CODE

WebScriptがセションを開設しているデータベースの文字コード系を参照する変数です。

Solarisの場合

“EUC”、“SJIS”、または“UNICODE”が設定されます。

Linuxの場合

“EUC”、または“UNICODE”が設定されます。

Windowsの場合

“SJIS”、または“UNICODE”が設定されます。

フォーマットファイル内で値を設定することはできません。

SYSTEM::SYMFOWARE_EDITION

Symfoware Serverのエディションを参照する変数です。

・ Symfoware Server Enterprise Extended Editionの場合、“EEE”が設定されます。

・ Symfoware Server Enterprise Editionの場合、“EE”が設定されます。

・ Symfoware Server Standard Editionの場合、“SE”が設定されます。

SYSTEM::SYMFOWARE_AREA

Symfoware Serverの国内版か海外版かを参照する変数です。

・ 国内版の場合、“japan”が設定されます。

・ 海外版の場合、“other”が設定されます。

- 104 -

Page 112: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

7.7 コンテキスト

WebScript言語では、変数も値も型付けがされていません。値は評価される場所に応じて、違う意味をもちます。変数の

評価方法(関数の引数、演算子のオペランドなど)によって、その型が決まります。コンテキストとは、この型付けのことを

指します。

コンテキストには、以下の3種類があります。

・ 単値の数値

・ 単値の文字列

・ リスト

リストから単値

数値、文字列ともに、単値のコンテキストにリストが与えられた場合は、その 初の要素(添字番号0)の要素が参照されま

す。 初の要素もリストだった場合は、さらにその 初の要素が参照されます。ループが見つかった場合は、文字列コン

テキストならば空文字列、数値コンテキストならば0がその値となります。

単値からリスト

リストのコンテキストに単値が与えられた場合は、それだけを要素とするリストが作成されます。

<!FOREACH "abc" myvar>

The value is <!HREPLACE 'myvar'>.

<!/FOREACH> → The value is abc.

文字列から数値

数値のコンテキストに文字列が与えられた場合は、先頭から数値であると解釈できる部分までの数値が使用されます。

解釈できない場合、値は0となります。

<!SETVAR x "10ABC">

<!SETVAR y "ABC">

<!REPLACE '0 + x'> → 10

<!REPLACE '0 + y'> → 0

数値から文字列

文字列のコンテキストに数値が与えられた場合は、その数値を表す適当な文字列の表現が使用されます。ほかの表現

を使用する場合は、format関数を使用してください。

未定義値

数値のコンテキストに未定義値が与えられた場合は、0がその値となります。

文字列のコンテキストに未定義値が与えられた場合は、空文字列がその値となります。

リストのコンテキストに未定義値が与えられた場合は、長さ0のリストがその値となります。

7.8 演算子

演算子の一覧

演算子を、優先順位の高い順に示します。

演算子 結合順

[ ], { } 左から右

!, +(単項), -(単項) 右から左

- 105 -

Page 113: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

演算子 結合順

*, /, % 左から右

+(二項), -(二項), . 左から右

<, >, <=, >=, lt, gt, le, ge なし

==, !=, eq, ne なし

&&, || 左から右

(,...,) なし

結合順の解釈例を、以下に示します。

・ 左から右

「a+b+c」:「(a+b)+c」と解釈されます。

・ 右から左

「!!a」:「!(!a)」と解釈されます。

・ なし

「a<b<c」:右にも左にも結合されません。

括弧(「(」と「)」)を用いて、演算の順序を指定することができます。

演算子の意味

各演算子についての説明をします。

「n」、「n1」および「n2」などは、数値コンテキストを示し、「s」、「s1」および「s2」などは文字列コンテキストであることを示しま

す。

a[n]

リストaの添字番号nの要素を返します。

詳細は、“7.1 データ”を参照してください。

a{s}

リストaのキーの値がsである要素を返します。

詳細は、“7.1 データ”を参照してください。

!n

nが0のときには1を、それ以外のときには0を返します。

+n

nを返します。

-n

nの符号を変えたものを返します。

n1 * n2

n1とn2との積を返します。

n1 / n2

n1をn2で割った商を返します。

n1とn2が共に整数の場合でも、結果は整数とは限りません。

整数部分が必要な場合は、関数intを使用してください。

15 / 3 → 5

16 / 3 → 5.333333333333333

- 106 -

Page 114: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

n1 % n2

n1をn2で割ったときの余りを返します。

n1やn2が整数でない場合は、0の方向に切り捨てた値が使用されます。また、n2の符号は無視されます。

n1が負の値の場合は、結果は-n1に対する値の符号を反転したものになります。

12 % 5 → 2

12 % (-5) → 2

(-12) % 5 → -2

(-12) % (-5) → -2

12.466 % 5.99 → 2

n1 + n2

n1とn2との和を返します。

n1 - n2

n1とn2との差を返します。

s1 . s2

s1とs2とを連結した文字列を返します。

"abc"."def" → "abcdef"

"0"."1" → "01"

n1 < n2

n1の方がn2よりも小さければ1を、そうでなければ0を返します。

n1 > n2

n1の方がn2よりも大きければ1を、そうでなければ0を返します。

n1 <= n2

n1の方がn2よりも小さいまたはn1とn2とが等しければ1を、そうでなければ0を返します。

n1 >= n2

n1の方がn2よりも大きいまたはn1とn2とが等しければ1を、そうでなければ0を返します。

s1 lt s2

s1の方がs2よりも辞書式順序で小さければ1を、そうでなければ0を返します。

s1 gt s2

s1の方がs2よりも辞書式順序で大きければ1を、そうでなければ0を返します。

s1 le s2

s1の方がs2よりも辞書式順序で小さいまたはs1とs2とが等しければ1を、そうでなければ0を返します。

s1 ge s2

s1の方がs2よりも辞書式順序で大きいまたはs1とs2とが等しければ1を、そうでなければ0を返します。

n1 == n2

n1とn2が等しければ1を、そうでなければ0を返します。

n1 != n2

n1とn2が等しければ0を、そうでなければ1を返します。

s1 eq s2

s1とs2が辞書列順序で等しければ1を、そうでなければ0を返します。

- 107 -

Page 115: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

s1 ne s2

s1とs2が辞書列順序で等しければ0を、そうでなければ1を返します。

n1 && n2

n1とn2が共に非0ならば1を、そうでなければ0を返します。

n1を評価して0だったならば、n2は評価しないで0を返します。

n1 || n2

n1とn2が共に0ならば0を、そうでなければ1を返します。

n1を評価して0以外ならば、n2は評価しないで1を返します。

(a1, a2, ..., an)

a1,a2,...,anからなるリストを返します。キーはすべて未定義です。

注意

&& および || を除き、評価順序については保証されませんので注意してください。

たとえば、listの値が(“a”,“b”)の場合、

pop(list).pop(list)の値が、“ab”か“ba”かは不明です。

7.9 関数

フォーマットファイルに記述できる関数は、以下の6種類があります。

・ 文字列操作関数

・ 数学関数

・ リスト関数

・ 時刻関数

・ 定義関数

・ 置換関数

詳細は、“第8章 関数”の各関数の説明を参照してください。

- 108 -

Page 116: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

第8章 関数

本章では、関数について説明します。

8.1 凡例

本章での、構文の記述方法ついて説明します。

構文

ret = func_name(arg1, arg2, ...)

ret、arg1、arg2、...の部分に示す復帰値またはパラメタを表すものの先頭の文字は、以下のことを意味しています。

s 文字列

n 数値

a リスト

x その他/不定(詳細は各関数を参照してください)

特にパラメタに関しては、そのパラメタが指定されたコンテキストで解釈されます。

また、argの部分が [ ] で囲まれている場合は、そのパラメタが省略可能であることを示しています。

8.2 文字列操作関数

文字列操作関数について説明します。

8.2.1 chr

説明

chrは、文字コード(ASCIIコード)から文字列を取得する関数です。

構文

s0 = chr(n1)

戻り値

パラメタ n1 に与えられた文字コード(ASCIIコード)を持つ文字(1文字からなる文字列)を返します。

0x00から0xffまで以外の数が与えられた場合は、空文字列を返します。

使用例

chr(65) → "A"

8.2.2 format

説明

formatは、文字列などを指定フォーマットに従って整形する関数です。

文字列または数値x1 をs2 で指定されるフォーマットに従って整形します。

構文

s0 = format(x1 [, s2])

- 109 -

Page 117: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

パラメタ

x1 :

・ 整形される数値または文字列を指定します。

s2 :

・ 整形の仕方を表します。

・ コロン(:)で区切って項目を並べます。不要な空白を入れてはいけません。

・ 初の項目は、タイプを表します。指定できる値は、以下の3種類です。また、この値によってx1のコンテキストが定

まります。

値 意味 x1のコンテキスト

str 文字列 文字列

fix 固定小数点表示の数値 数値

exp 浮動小数点表示の数値 数値

・ この項目が省略された場合は、str が指定されたものとみなされます。

・ タイプによって、指定できる項目が異なります。

・ 各項目は、単に値を指定する、または<キーワード>=<値>という形式で指定します。

・ 各タイプに定められた順序に従って記述している間は、単に値を書くことで指定することができます。一度キーワード

を指定した場合、それ以降はすべての項目にキーワードを指定してください。

・ ある項目に省略値を利用し、それ以降に省略値以外の項目を指定しようとする場合は、キーワードを指定してくださ

い。

・ 文字列は引用符などで囲ってはいけません。したがって、文字列中にコロン(:)を含めることはできません。

・ 値には、0以上の整数または文字列が指定できます。どちらを指定するかは項目によって決まっています。以下に示す

「項目」の表を、参照してください。

戻り値

整形した結果の文字列を返します。

項目

【タイプが「str」の場合】

キーワード 可能な値 省略値 説明

width 0以上の整数 0 小の幅(単位:バイト)

adjust left/right/center left 左詰(left)、右詰(right)、中央揃え(center)

文字列の長さがwidthで指定した値以上だった場合は、その幅が使われます。

【タイプが「fix」の場合】

キーワード 可能な値 省略値 説明

width 0以上の整数 0 小の幅(単位:バイト)

prec 0以上の整数 0 小数点以下の桁数

adjust left/right/center right 左詰(left)、右詰(right)、中央揃え(center)

ipad 文字列( 初の1バイトだけが使われ

る)

' ' 整数部のパディング文字

- 110 -

Page 118: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

キーワード 可能な値 省略値 説明

fpad 文字列( 初の1バイトだけが使われ

る)

' ' 小数部のパディング文字

delimit 0以上の整数 0 正の整数が指定されていれば、整数部はその

けたごとにカンマ(,)が挿入される

minus 文字列 '-' 値が負の場合に数値の直前に挿入される

plus 文字列 '' 値が正の場合に数値の直前に挿入される

zero 文字列 '' 値が0の場合に数値の直前に挿入される

【タイプが「exp」の場合】

キーワード 可能な値 省略値 説明

width 0以上の整数 0 小の幅(単位:バイト)

prec 0以上の整数 6 小数点以下の桁数

adjust left/right/center right 左詰(left)、右詰(right)、中央揃え(center)

使用例

format("abc") → "abc"

format("abc", "str:10:adjust=center") → " abc "

format(1.45678,"fix:7:4") → "1.4568" (四捨五入されていることに注意)

format(-1234567.89012, "fix:prec=4:minus=▲:delimit=3") → "▲1,234,567.8901"

format(33.333, "exp") → "3.333300E+01"

<!HREPLACE 'format(x*100, "fix"). "%"'>

→ xに保持している割合をパーセントで表示する

8.2.3 index

説明

indexは、文字列中で検索文字を表示する位置を取得する関数です。

位置は先頭を0とします。

n3 は省略することができます。省略した場合は0とみなされます。

n3 が負の値の場合も0とみなされます。

構文

n0 = index(s1, s2 [, n3])

パラメタ

s1:

・ 検索の対象となる文字列を指定します。

s2:

・ 検索する文字列を指定します。

s3:

・ 検索対象文字列のうち、どの位置から検索を開始するかを指定します。省略することも可能です。その場合は、0が指定指定され、先頭から検索が行われます。負の数が指定された場合も、0が指定されます。

- 111 -

Page 119: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

戻り値

s2 がs1 に表示されない場合は、-1を返します。

s2 が空文字列の場合は、n3 を返します。

s2 が空文字列でn3が省略されている場合は、0を返します。

使用例

index("ABCD", "BC") → 1

index("ABCABC", "ABC", 1) → 3

index("ABCABC", "DEF") → -1

index("ABCABC", "", 3) → 3

8.2.4 length

説明

lengthは、文字列の長さを取得する関数です。

日本語文字を含む場合も、バイト単位の長さとなります。

構文

n0 = length(s1)

戻り値

文字列s1 の長さを返します。

使用例

length("abc") → 3

length("") → 0

length("あ") → 2

length("\n") → 1

8.2.5 ord

説明

ordは、文字列から文字コード(ASCIIコード)を取得する関数です。

構文

n0 = ord(s1)

戻り値

文字列s1 の先頭文字のASCIIコードを返します。

この場合の「先頭文字」とは、「先頭の1バイト」のことを指します。

使用例

ord("A") → 65

8.2.6 substr

- 112 -

Page 120: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

説明

substrは、ある文字列から指定された長さの部分文字列を切り出す関数です。

文字列の先頭位置は0です。

構文

s0 = substr(s1, n1 [, n2])

戻り値

文字列s1 の位置n1 から始まる部分文字列を返します。s1、n1、n2 の値により、以下の戻り値を返します。

・ n2 が0または正の数の場合は、長さn2 の部分文字列を返します。

・ n1 がs1 の長さ以上の場合は、空文字列を返します。

・ n2 が省略された場合は、位置n1 から 後までの文字列を返します。

・ n1 が負の場合には、末尾から数えて-n1 番目の文字の位置が指定されたものとみなします。ただし、n1 の絶対値が

s1 の長さより大きい場合は、先頭が指定されたものとみなします。

・ n2 が負の数の場合は、末尾から-n2 だけの文字を除いたものを返します。

・ n1 + n2 がs1 の長さを超える場合は、位置n1 から 後までの文字列を返します。

・ s1 の長さ - n1 の絶対値が n2 の絶対値より大きい場合は、空文字列を返します。

使用例

substr("abcdefghi", 0) → "abcdefghi"

substr("abcdefghi", 3) → "defghi"

substr("abcdefghi", 100) → ""

substr("abcdefghi", 3, 2) → "de"

substr("abcdefghi", -8, 3) → "bcd"

substr("abcdefghi", -20, 2) → "ab"

substr("abcdefghi", 3, -2) → "defg"

substr("abcdefghi", 3, 100) → "defghi"

substr("abcdefghi", 3, -7) → ""

8.2.7 tolower

説明

tolowerは、文字列中の大文字を小文字に変換する関数です。

2バイト系の文字には対応せず、単純にバイト単位で処理します。

構文

s0 = tolower(s1)

戻り値

文字列s1 の中に表示される大文字を、すべて小文字に直したものを返します。

使用例

tolower("ABC") → "abc"

tolower("A\nb\nC") → "a\nb\nc"

8.2.8 toupper

- 113 -

Page 121: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

説明

toupperは、文字列中の小文字を大文字に変換する関数です。

2バイト系の文字には対応せず、単純にバイト単位で処理します。

構文

s0 = toupper(s1)

戻り値

文字列s1 の中に表示される小文字を、すべて大文字に直したものを返します。

使用例

toupper("abc") → "ABC"

toupper("a\nB\nc") → "A\nB\nC"

8.3 数学関数

数学関数について説明します。

なお、ここで戻り値として示している数値は、説明の都合上、丸めてあります。実際に戻ってくる値とは必ずしも一致しま

せん。

8.3.1 abs

説明

absは、数値の絶対値を返す関数です。

構文

n0 = abs(n1)

戻り値

対応するCのライブラリ関数と同じ値を返します。

使用例

abs(53.1) → 53.1

abs(-53.1) → 53.1

8.3.2 atan2

説明

atan2は、x軸から原点と、x座標(n2)、y座標(n1)で表される点を結んだ直線までの角度のことです。

構文

n0 = atan2(n1, n2)

戻り値

対応するCのライブラリ関数と同じ値を返します。

- 114 -

Page 122: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

使用例

atan2(0,-1) → 3.141592653589793

8.3.3 cos

説明

cosは、数値のコサインを返す関数です。

構文

n0 = cos(n1)

戻り値

対応するCのライブラリ関数と同じ値を返します。

使用例

cos(0) → 1

8.3.4 exp

説明

expは、自然対数の底を指定し、数乗した値を返す関数です。

構文

n0 = exp(n1)

戻り値

対応するCのライブラリ関数と同じ値を返します。

使用例

exp(1) → 2.718281828459045

8.3.5 int

説明

intは、ある数値の整数部分を取り出す関数です。

構文

n0 = int(n1)

戻り値

n1 の整数部分を返します(0に向かっての切り捨てを行います)。

使用例

int(2.5) → 2

int(-3.2) → -3

- 115 -

Page 123: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

8.3.6 log

説明

logは、引数の自然対数値を返す関数です。

構文

n0 = log(n1)

戻り値

対応するCのライブラリ関数と同じ値を返します。

使用例

log(2.71828) → 0.999999327347282

8.3.7 pow

説明

powは、n1のn2 乗を返す関数です。

pow(n1, 0.0) の値は、すべてのn1 に対して1となります。

構文

n0 = pow(n1, n2)

戻り値

対応するCのライブラリ関数と同じ値を返します。

使用例

pow(2.0,3.0) → 8

8.3.8 rand

説明

randは、乱数を生成する関数です。

構文

n0 = rand(n1)

戻り値

0からn1までの範囲の乱数を発生させ、発生させた値を返します。

使用例

rand(1) → 0.341234993

この値は、実行するたびに異なります。

- 116 -

Page 124: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

注意

乱数の系列を初期化するためには、関数srandを使用してください。

8.3.9 sin

説明

sinは、数値のサインを返す関数です。

構文

n0 = sin(n1)

戻り値

対応するCのライブラリ関数と同じ値を返します。

使用例

sin(1.570796) → 0.9999999999999466

8.3.10 sqrt

説明

sqrtは、数値の正の平方根を返す関数です。

構文

n0 = sqrt(n1)

戻り値

対応するCのライブラリ関数と同じ値を返します。

使用例

sqrt(2) → 1.414213562373095

8.3.11 srand

説明

srandは、指定されたパラメタをseedとして乱数の系列を初期化する関数です。

構文

n0 = srand(n1)

戻り値

常に0を返します。

使用例

srand(time()) → 0

- 117 -

Page 125: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

8.4 リスト関数

リスト関数について説明します。

8.4.1 join

説明

joinは、リストの要素の間に指定された文字列を挿入し、1つの文字列を作成する関数です。

a2 の各要素は文字列コンテキストで解釈されます。

構文

s0 = join(s1,a2)

戻り値

リストa2 の各要素の間に文字列s1 を挿入してつなげた、1つの文字列を返します。

a2 の要素数が0の場合は、空文字列を返します。

使用例

join(":", ("abc", "def")) → "abc:def"

join("", ("a", "b", "c")) → "abc"

8.4.2 key

説明

keyは、リストの添字に対応するキーを取得する関数です。

構文

s0 = key(a1, n2)

戻り値

リストa1 の添字n2 に対応するキーを返します。

対応するキーがない場合は、空文字列を返します。

使用例

<!SETVAR 'v0{foo}' 100>

<!SETVAR 'v0{bar}' 200>

<!REPLACE 'key(v0, 1)'> → bar

<!REPLACE 'key(v0, 2)'> → (空文字列)

<!DO "SELECT * FROM ..." RESULT=res>

<!FOREACH res t>

最初の列(列名<!HREPLACE 'key(t, 0)'>)の値は、<!HREPLACE 't[0]'> です。

<!/FOREACH>

8.4.3 listlen

説明

listlenは、リストの長さを取得する関数です。

- 118 -

Page 126: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

構文

n0 = listlen(a1)

戻り値

リストの長さを返します。

未定義の場合には0を返します。

使用例

<!REPLACE 'listlen(v)'> → 0

<!SETVAR v "abc">

<!REPLACE 'listlen(v)'> → 1

<!SETVAR v[1] "def">

<!REPLACE 'listlen(v)'> → 2

<!SETVAR v[99] "ghi">

<!REPLACE 'listlen(v)'> → 100

8.4.4 pop

説明

popは、リストから要素を取り出す関数です。

構文

x0 = pop(a1)

戻り値

popは、末尾から取り出した要素を返します。

使用例

<!SETVAR L0 '("ab", "cd", "ef")'>

<!SETVAR x 'shift(L0)'>

<!REPLACE x> → ab

<!REPLACE 'L0[0]'> → cd

<!SETVAR y 'pop(L0)'>

<!REPLACE y> → ef

注意

空のリストに対してこの関数を使用した場合、未定義オブジェクトが返され、a1の値は、空のリストのままになります。

8.4.5 push

説明

pushは、リストに要素を追加する関数です。要素は末尾に追加されます。

構文

n0 = push(a1, a2)

パラメタ

a1:

- 119 -

Page 127: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・ 要素を追加するリストを指定してください。

a2:

・ 追加される要素のリストを指定してください。

戻り値

要素数を返します。

使用例

<!SETVAR L0 '("ab", "cd")'>

<!SETVAR L1 '("ef", "gh")'>

<!SETVAR dummy 'push(L0,L1)'> → L0が("ab","cd","ef","gh")になる

<!SETVAR dummy 'push(L0,"ij")'> → L0が("ab","cd","ef","gh","ij")になる

8.4.6 reverse

説明

reverseは、指定されたリストを逆順に並べ替えてできるリストを作成する関数です。

構文

a0 = reverse(a1)

戻り値

リストa1 の逆順のリストを返します。

使用例

reverse((1, 2, 3)) → (3, 2, 1)

8.4.7 shift

説明

shiftは、リストから要素を取り出す関数です。

構文

x0 = shift(a1)

戻り値

shiftは、先頭から取り出した要素を返します。

必要な要素を取り出したあと、残りの要素は1つずつ前に詰められます。

使用例

<!SETVAR L0 '("ab", "cd", "ef")'>

<!SETVAR x 'shift(L0)'>

<!REPLACE x> → ab

<!REPLACE 'L0[0]'> → cd

<!SETVAR y 'pop(L0)'>

<!REPLACE y> → ef

- 120 -

Page 128: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

注意

空のリストに対してこの関数を使用した場合、未定義オブジェクトが返され、a1の値は空のリストのままになります。

8.4.8 sort

説明

sortは、ソートを行う関数です。

構文

a0 = sort(a1 [, s2 [, s3 ] ])

パラメタ

a1:

・ ソート対象となる値を指定してください。

s2:

・ 要素の比較方式を指定してください。

・ "STRING":文字列として比較します。

・ "STRING_IGNORECASE":文字列としての比較です。大文字と小文字の違いは無視します。

・ "NUMBER":数値として比較します。

・ s2 パラメタが省略された場合は、"STRING"が指定されます。

n3:

・ ソート順を指定してください。

・ 昇順の場合は0を、降順の場合は1を指定してください。

・ 省略された場合は、0が指定されます。

戻り値

ソート結果を返します。

使用例

sort((10, 1, 2)) → (1, 10, 2)

sort((10, 1, 2),"NUMBER") → (1, 2, 10)

8.4.9 split

説明

splitは、指定されたセパレータ用文字で文字列を分割し、分割した文字列からなるリストを作成する関数です。

構文

a0 = split(s1, s2 [, n3])

パラメタ

s1:

・ セパレータ用の文字を指定してください。

- 121 -

Page 129: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

s2:

・ 分割する文字列を指定してください。

n3:

・ 大要素数を指定してください。

・ 0または負の数を指定した場合は、省略されたものとみなされます。

戻り値

s1 をセパレータとして、文字列s2 を分割したリストを返します。

n3 が指定された場合は、 大要素数をn3 とするリストを返します。

使用例

split(" ", "ab cd ef") → ("ab", "cd", "ef")

split(":", "ab:cdef::g") → ("ab", "cdef", "", "g")

split("xxy", "abcxxydefxxy") → ("abc", "def", "")

split(" ", "ab cd ef", 2) → ("ab", "cd ef")

split(":", "abcdef") → ("abcdef")

8.4.10 subscr

説明

subscrは、リストのキーに対応する添字を取得する関数です。

構文

n0 = subscr(a1, s2)

戻り値

リストa1 のキーs2 に対応する添字を返します。

対応するキーがない場合は、-1を返します。

使用例

<!VAR v0>

<!SETVAR 'v0{foo}' 100>

<!SETVAR 'v0{bar}' 200>

<!REPLACE 'subscr(v0, "foo")'> → 0

<!REPLACE 'subscr(v0, "quux")'> → -1

8.4.11 unshift

説明

unshiftは、リストに要素を追加する関数です。要素は先頭に追加されます。

構文

n0 = unshift(a1, a2)

パラメタ

a1:

・ 要素を追加するリストを指定してください。

- 122 -

Page 130: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

a2:

・ 追加される要素のリストを指定してください。

戻り値

要素数を返します。

使用例

<!SETVAR L0 '("ab", "cd")'>

<!SETVAR L1 '("ef", "gh")'>

<!SETVAR dummy 'unshift(L0, L1)'> → L0が("ef", "gh", "ab", "cd")になる

<!SETVAR dummy 'unshift(L0, "ij")'> → L0が("ij", "ef", "gh", "ab", "cd")になる

8.5 時刻関数

時刻関数について説明します。

8.5.1 gmtime

説明

gmtimeは、与えられた数をUTCの1970年1月1日0時0分0秒からの通算秒数とみなし、その時刻をUTCの年・月・日など

の各項目に分割し、リストに設定する関数です。

構文

a0 = gmtime(n1)

パラメタ

n1:

・ 年・月・日などの各項目に分割するための数を指定してください。

・ 負の値が指定された場合は、0が指定されます。

・ 小数部分があった場合は、小数部分は無視されます。

戻り値

変換した時刻を格納したリストを返します。

リストは9つの要素からなり、すべてにキーが定義されています。

リストの内容を、以下に示します。

添字番号 キー 内 容

0 sec 秒

1 min 分

2 hour 時

3 mday 日; 1日は1, 2日は2, ...

4 mon 月; 1月は1, 2月は2, ...

5 year 年; 西暦の年数そのまま

6 wday 曜日; 日曜は0, ..., 土曜は6

7 yday その年の1月1日からの日数; 1月1日は0, 1月2日は1, ...

8 isdst 常に0

- 123 -

Page 131: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

対応するCのライブラリ関数で設定されるものと、ほとんど変わりませんが、monとyearが異なります。

使用例

<!SETVAR tx 'gmtime(time())'>

現在、グリニッジ標準時では、<!REPLACE 'tx{hour}'>時です。

8.5.2 localtime

説明

localtimeは、与えられた数をUTCの1970年1月1日0時0分0秒からの通算秒数とみなし、その時刻を現地時刻の年・月・

日などの各項目に分割し、リストにセットする関数です。

構文

a0 = localtime(n1)

パラメタ

n1:

・ 年・月・日などの各項目に分割するための数を、指定してください。

・ 負の値が指定された場合は、0が指定されます。

・ 小数部分があった場合は、小数部分は無視されます。

戻り値

変換した時刻を、格納したリストを返します。

リストは9つの要素からなり、すべてにキーが定義されています。

リストの内容を以下に示します。

添字番号 キー 内 容

0 sec 秒

1 min 分

2 hour 時

3 mday 日; 1日は1, 2日は2, ...

4 mon 月; 1月は1, 2月は2, ...

5 year 年; 西暦の年数そのまま

6 wday 曜日; 日曜は0, ..., 土曜は6

7 yday その年の1月1日からの日数; 1月1日は0, 1月2日は1, ...

8 isdst 夏時間実施中なら1; そうでなければ0

対応するCのライブラリ関数で設定されるものと、ほとんど変わりませんが、monとyearが異なります。

使用例

<!SETVAR t 'localtime(time())'>

今日は

<!REPLACE 't{year}'>年

<!REPLACE 't{mon}'>月

<!REPLACE 't{mday}'>日です。

- 124 -

Page 132: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

8.5.3 time

説明

timeは、現在時刻を取得する関数です。

構文

n0 = time()

戻り値

現在時刻を秒数で返します。(起点は、UTCの1970年1月1日0時0分0秒です)

使用例

<!SETVAR t 'time()'>

1970年1月1日からの経過時間は、<!REPLACE 't'>秒です。

8.6 定義関数

定義関数について説明します。

8.6.1 defined

説明

definedは、値が定義されているかどうかをチェックする関数です。

構文

n0 = defined(x1)

戻り値

値が定義されている場合は、1を返します。

値が定義されていない場合は、0を返します。

使用例

<!VAR v>

<!SETVAR v[1] "aaa">

<!IF 'defined(v)'>

v is defined

<!/IF>

<!IF 'defined(v[0])'>

v[0] is <!HREPLACE 'v[0]'>

<!ELSE>

v[0] is undefined

<!/IF>

8.6.2 undef

説明

undefは、定義されていない値を返す関数です。

構文

x0 = undef()

- 125 -

Page 133: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

戻り値

未定義値を返します。

使用例

<!DO "SELECT..." RESULT=dbr[3]>

<!FOREACH dbr[3] x>

<!IF ...> <!BREAK> <!/IF>

<!/FOREACH>

<!SETVAR dbr[3] undef()>

備考

WebScriptの言語では、オブジェクトは、変数またはリスト要素によって参照されなくなると、解放されます。特に、データ

ベース検索結果のような大きなメモリを消費するオブジェクトは、使用しなくなったら解放することを推奨します。

対象データベースによっては、メモリだけでなく、実行速度にも影響する場合があります。

オブジェクトを解放するには、参照を解除します。オブジェクトを参照している変数またはリスト要素に対し、以下のどちら

かの操作を行います。

・ <!UNDEFVAR>タグを実行する

・ ほかのオブジェクトを代入する

ただし、<!UNDEFVAR>タグは、リスト要素に対して実行できません。「ほかのオブジェクトを代入する」は、空文字列など

でも構いませんが、関数undefの戻り値である未定義オブジェクトを用いると、ソースの可読性を高めることができます。

「使用例」では、<!DO>文を実行してデータベースの検索結果を、リスト要素dbr[3]で参照されるようにしています。<!FOREACH>ループを抜けたあと、この検索結果は必要ありません。このため、dbr[3]にundefの戻り値である未定義値を

代入することで、検索結果のオブジェクトを解放しています。

8.7 置換関数

置換関数について説明します。

8.7.1 html

説明

htmlは、<!REPLACE>タグでSTYLE=HTMLパラメタが指定された場合と同じ変換を行う関数です。

本関数では、以下の表のような変換を行います。

変換前 変換後

& &amp;

< &lt;

> &gt;

" &quot;

\r <BR>

\n <BR>

また、以下の3つの表現は、同じ内容を示しています。

・ <!REPLACE var STYLE=HTML>

・ <!HREPLACE var>

- 126 -

Page 134: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・ <!REPLACE 'html(var)'>

構文

s0 = html(s1)

戻り値

文字列s1 をhtml変換した結果を返します。

使用例

html("<>") → "&lt;&gt;"

8.7.2 literal

説明

literalは、literal関数のパラメタを、HTMLタグのパラメタの値として指定するのに、便利なように変換する関数です。

本関数では、以下の変換が行われます。

・ パラメタ中の各文字に対して、以下の表の変換を行います。

変換前 変換後

\t &#9;

\n &#10;

\r &#13;

(半角空白) &#32;

" &#34;

& &#38;

< &#60;

> &#62;

構文

s0 = literal(s1)

戻り値

文字列s1 をliteral変換した結果を返します。

使用例

フォーム中のテキストフィールドの初期値として、変数varの値を指定したい場合は、以下のようになります。

<FORM ...>

<!SETVAR converted 'literal(var)'>

<INPUT NAME="textfield1" TYPE="text" VALUE="$converted">

</FORM>

varの値が「<The "Queen">」のとき、これは以下のように展開されます。

<FORM ...>

<INPUT NAME="textfield1" TYPE="text"

VALUE="&#60;The&#32;&#34;Queen&#34;&#62;">

</FORM>

- 127 -

Page 135: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

8.7.3 URLencode

説明

URLencodeは、文字列をURLの一部としての表現形式に変換する関数です。

日本語文字列は、WebScriptセションが動作するロケールを用いて変換します。

構文

s0 = URLencode(s1)

戻り値

文字列s1 を、URLの一部としての表現形式に変換した文字列を返します。

使用例

URLencode(" ") → "++"

URLencode("%^+") → "%25%5E%2B"

URLencode("あ") → "%82%A0"(シフトJISコード)

“%A4%A2”(EUCコード)

- 128 -

Page 136: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

第9章 環境パラメタ

本章では、環境パラメタについて説明します。

9.1 環境パラメタ

環境パラメタには、WebScriptサーバの動作環境を指定するサーバ環境パラメタおよびWebScriptコマンドの動作環境を

指定するアプリケーション環境パラメタがあります。環境パラメタは、環境パラメタファイルに指定します。

環境パラメタの種類

サーバ環境パラメタは、1つですが、アプリケーション環境パラメタは、WebScriptセションの種類またはアプリケーションの

種類ごとに指定します。

Solaris/Linuxの場合

サーバ環境パラメタは、サーバ環境パラメタファイルに指定します。アプリケーション環境パラメタは、アプリケーション環

境パラメタファイルに指定しますが、アプリケーション間で共通のパラメタは、サーバ環境パラメタファイルに指定できるパ

ラメタもあります。

環境パラメタファイルは、/opt/FJSVsymwd/libに格納します。

/opt/FJSVsyswd/lib ディレクトリは、WebScriptサーバの動作環境の指定、またはデータベースのユーザに関する情報の

指定をするための重要なファイルを配置します。このため、ディレクトリの参照および更新は、スーパユーザが行います。

アプリケーション環境パラメタを配置するディレクトリを変更するには、サーバ環境パラメタファイルのenvDirに配置先ディ

レクトリを指定します。

以下に環境パラメタファイルの種類およびファイル名の関係を示します。

種類 ファイル名 備考

サーバ環境パラメタファイル server.envインストール時に作

成されます。

必要に応じて修正

してください。アプリケーション環

境パラメタファイル

共有セション public.env

個別セション:デフォルト default.env

個別セション:WebDBtools用 WebDBtools.env

個別セション:ユーザ任意 任意.env 必要に応じて作成

してください。

Windowsの場合

サーバ環境パラメタは、WebScript環境エディタの[サーバ環境編集]画面で設定します。アプリケーション環境パラメタ

は、環境エディタの[アプリケーション環境編集]画面で設定しますが、アプリケーション間で共通のパラメタは、サーバ環

境パラメタに指定できるものもあります。

以下に環境パラメタの種類および環境名の関係を示します。

種類 環境名 備考

サーバ環境パラメタ serverインストール時に

作成されます。

必要に応じて修正

してください。アプリケーション環

境パラメタ

共有セション public

個別セション:デフォルト default

個別セション:WebDBtools用 WebDBtools

個別セション:ユーザ任意 任意 必要に応じて作成

してください。

- 129 -

Page 137: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

個別セションの環境パラメタの関係

個別セションでの、環境パラメタの関係について説明します。ここでは、SolarisおよびLinuxの場合を例にとって説明しま

す。Windows(R)の場合も同じ考え方です。

個別セションで、任意のアプリケーション環境パラメタファイルに指定したパラメタは、その値が採用されます。wit_gwdコマンドのWIT_envパラメタを省略した場合は、デフォルトの環境パラメタファイルが採用されます。

個別セションにおける環境パラメタファイルの関係図を以下に示します。

図9.1 個別セションの環境パラメタの解釈

任意のアプリケーション環境パラメタ指定時

- サーバ環境パラメタファイルに指定し、任意のアプリケーション環境パラメタファイルに指定されないパラメタ(S1)は、サーバ環境パラメタファイルの値が有効となります。

- サーバ環境パラメタファイルにパラメタ(S2)を指定し、任意のアプリケーション環境パラメタファイルにもパラメタ

(Pa)を指定した場合は、任意のアプリケーション環境パラメタファイルに指定された値(Pa)が有効となります。

- 任意のアプリケーション環境パラメタファイルだけ、パラメタ(Pb)を指定した場合は、その値(Pb)が有効となりま

す。

任意のアプリケーション環境パラメタ省略時

- サーバ環境パラメタファイルに指定し、デフォルトのアプリケーション環境パラメタファイルに指定されないパラメタ

(S1)は、サーバ環境パラメタファイルの値が有効となります。

- サーバ環境パラメタファイルにパラメタ(S2)を指定し、デフォルトのアプリケーション環境パラメタファイルにもパラメタ

(Px)を指定した場合は、デフォルトのアプリケーション環境パラメタファイルに指定された値(Px)が有効となりま

す。

- デフォルトのアプリケーション環境パラメタファイルにだけ、パラメタ(Py)を指定した場合は、その値(Py)が有効と

なります。

共有セションの環境パラメタの関係

共有セションでの、環境パラメタの関係について説明します。ここでは、SolarisおよびLinuxの場合を例にとって説明しま

す。Windows(R)の場合も同じ考え方です。

共有セションで、共有セションのアプリケーション環境パラメタファイルに指定したパラメタは、その値が採用されます。共

有セションのアプリケーション環境パラメタファイルは、1個だけです。

- 130 -

Page 138: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

環境パラメタの指定に関して、サーバ環境パラメタファイル、共有セションのアプリケーション環境パラメタファイルの関係

図を以下に示します。

図9.2 共有セションの環境パラメタの解釈

・ サーバ環境パラメタファイルに指定し、共有セションのアプリケーション環境パラメタファイルに指定されないパラメタ

(S1)は、サーバ環境パラメタファイルの値が有効となります。

・ サーバ環境パラメタファイルにパラメタ(S2)を指定し、共有セションのアプリケーション環境パラメタファイルにもパラメタ

(Pa)を指定した場合は、共有セションのアプリケーション環境パラメタファイルに指定された値(Pa)が有効となりま

す。

・ 共有セションのアプリケーション環境パラメタファイルにだけ、パラメタ(Pb)を指定した場合は、その値(Pb)が有効と

なります。

環境パラメタの関係

環境パラメタには、サーバ環境パラメタ、アプリケーション環境パラメタがあり、パラメタにより、共有セションまたは個別セ

ションのパラメタもあります。これらの関係を以下に示します。

パラメタ名

サーバ環

パラメタ

アプリケーション環境パラメタ

個別セション:デフォルト

個別セション:WebDBtools用個別セション:任意

共有セション

maxConnection ○ - -

serverLog ○ - -

envDir ○ - -

serverLogLevel ○ - -

NumberPublicSessions ○ - -

protocolVersion × ● ●

systemName ○ ○ ○

DBName ○ ○ ○

userid ○ ○ ◎

passwd ○ ○ ◎

homePage ○ ◎ ×

- 131 -

Page 139: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

formatDir ○ ○ ○

dataDir ○ ○ ○

idleTimeout ○ ○ ×

busyTimeout × × ○

DBErrorHandle ○ ○ ○

WLErrorHandle ○ ○ ○

logoutFormat ○ ○ ×

WLCommandPath ○ ○ ○

workDir ○ ○ ○

acsLog ○ ○ ○

acsLogLevel ○ ○ ○

errorLog ○ ○ ○

errorLogLevel ○ ○ ○

●:指定必須

◎:アプリケーション環境パラメタを省略した場合、サーバ環境パラメタは、指定必須。

○:指定可能(省略可能)

×:指定不可

9.2 環境パラメタの設定

ここでは、環境パラメタの設定方法について説明します。

SolarisまたはLinuxの場合、および、Windows(R)の場合に分けて説明します。

9.2.1 Solaris(TM)またはLinuxの場合の設定方法

環境パラメタファイルの記述方法を以下に示します。

~.env

#コメント <改行>

パラメタ = 値1 <改行>

パラメタ = 値2 <改行>

...

環境パラメタの記述形式は、等号の左辺にパラメタ名を記述し、右辺にパラメタの値を記述します。環境パラメタを複数

記述する場合は、改行して記述します。パラメタ名は、英大文字と英小文字を区別しません。

9.2.2 Windows(R)の場合の設定方法

環境パラメタは、環境エディタから設定します。指定方法は、サーバ環境パラメタとアプリケーション環境パラメタで異なり

ます。

環境エディタの起動は、以下の手順で行います。

・ Windows(R) 2000の場合

[スタート]メニューの[プログラム]の[Symfoware Server Enterprise Edition]または[Symfoware Server Standard Edition]の[Webツールのセットアップ]から、[WebDBtools環境エディタ]を選択します。

・ Windows Server(R) 2003、Windows Server(R) 2008またはWindows Server(R) 2008 R2の場合

[スタート]メニューの[すべてのプログラム]の[Symfoware Server Enterprise Edition]または[Symfoware Server StandardEdition]の[Webツールのセットアップ]から、[WebDBtools環境エディタ]を選択します。

“3.6 拡張タグの使用例”の環境パラメタの設定を例として、以下に指定方法を説明します。

- 132 -

Page 140: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

個別セション利用のための設定

アプリケーション環境の追加

1. [WebDBtools環境エディタ]画面の[application]フォルダの配下に新規フォルダを作成し、新しくアプリケーショ

ン環境名を指定します。

2. 作成したアプリケーション環境名のフォルダを選択し、[アプリケーション環境編集]画面を表示します。

3. 必要な環境パラメタを指定します。

4. [保存]ボタンをクリックし、設定値を保存します。設定を無効にするには、[キャンセル]ボタンをクリックします。

- 133 -

Page 141: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

ポイント

保存した環境パラメタの設定値を変更する場合は、“2”から“4”の手順で変更します。

アプリケーション環境名の変更

1. 変更するアプリケーション環境名のフォルダを選択し、[編集]の[名前の変更]をクリックします。

2. 新しい環境名を設定します。

アプリケーション環境の複写

1. 複写するアプリケーション環境名のフォルダを選択し、[アプリケーション環境編集]画面を表示します。

2. [環境名]テキストボックスのアプリケーション環境名を変更します。

3. [保存]ボタンをクリックし、設定値を保存します。複写を無効にするには、[キャンセル]ボタンをクリックします。

アプリケーション環境の削除

1. 削除するアプリケーション環境名のフォルダを選択し、[編集]の[削除]をクリックします。

2. 削除の確認メッセージが表示されます。[はい]ボタンをクリックし、アプリケーション環境パラメタを削除します。

削除を中止する場合は、[いいえ]ボタンをクリックします。

- 134 -

Page 142: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

デフォルトのアプリケーション環境パラメタの設定

デフォルトのアプリケーション環境パラメタは、個別セションのログインパラメタに、“WIT_envパラメタ”を指定しない場

合に使用されます。

1. [WebDBtools環境エディタ]画面の[default]フォルダを選択し、デフォルトの[アプリケーション環境編集]画面を

表示します。

2. 必要な環境パラメタを指定します。

3. [保存]ボタンをクリックし、設定値を保存します。設定を無効にするには、[キャンセル]ボタンをクリックします。

共有セション利用のための設定

アプリケーション環境パラメタの設定

1. [WebDBtools環境エディタ]画面の[public]フォルダを選択し、[アプリケーション環境編集]画面を表示します。

- 135 -

Page 143: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

2. 必要な環境パラメタを指定します。

3. [保存]ボタンをクリックし、設定値を保存します。設定を無効にするには、[キャンセル]ボタンをクリックします。

サーバ環境パラメタの設定

1. [WebDBtools環境エディタ]画面の[server]フォルダを選択し、[サーバ環境編集]画面を表示します。

- 136 -

Page 144: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

2. 必要な環境パラメタを指定します。

3. [保存]ボタンをクリックし、設定値を保存します。設定を無効にするには、[キャンセル]ボタンをクリックします。

注意

共有セションを利用する場合は、サーバ環境パラメタのnumberPublicsessionの値を1以上に設定する必要があります。

9.3 環境パラメタの詳細

サーバ環境パラメタの詳細

サーバ環境パラメタの詳細について、以下に説明します。

maxConnection

- 同時に開く個別セション、共有セションの数を指定してください。

- 省略した場合または0が指定された場合は、セションの数に制限はなくなります。この場合、WebScriptサーバは

物理的に可能な限りセションを開きます。

numberPublicSessions

- WebScriptサーバの起動時に開く共有セション数を指定してください。

- 省略した場合または0が指定された場合は、共有セションは開かれません。

- 137 -

Page 145: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

- maxConnectionより大きな値を指定した場合は、maxConnectionの数が指定されたものとみなされます。したがっ

て、個別セションを開くことはできません。

envDir(Solaris/Linuxの場合)

- アプリケーション環境パラメタファイルを格納するディレクトリを、絶対パスで指定してください。

- 省略した場合は、WebScriptインストールディレクトリのlibサブディレクトリに設定されます。

serverLog

Solaris/Linuxの場合

- WebScriptサーバの情報を出力するサーバログファイルを、絶対パスで指定してください。

- 省略した場合

- システムログ(syslog)を使用します。syslogを使用するためには、syslog設定ファイルでファシリティに

daemon、レベルにinfoを指定してください。

Windowsの場合

- WebScriptサーバの情報を出力するサーバログファイルを、絶対パスで指定してください。

- 省略した場合

- イベントログを使用します。

serverLogLevel

- サーバログファイルに出力する情報の出力レベルを指定してください。

- ログを出力する場合は1を、出力しない場合は0を指定してください。

- 省略した場合は、1となります。

アプリケーション環境パラメタの詳細

アプリケーション環境パラメタの詳細について、以下に説明します。

protocolVersion(Solaris/Linuxの場合)

- 2.0を指定してください。

このパラメタの指定は必須です。

systemName

- データベースをアクセスするRDBシステム名を指定してください。

- wit_gwdコマンドのパラメタで、WIT_system が指定されている場合は、本パラメタの値は無視されます。

- 省略した場合は、デフォルトRDBシステムとなります。

DBName

- アクセスするデータベース名を指定してください。データベース名が半角英字の場合、大文字で指定してくださ

い。

- 作成されていないデータベース名を指定することもできます。

- wit_gwdコマンドのパラメタで、WIT_database が指定されている場合は、本パラメタの値は無視されます。

- 省略した場合は、 RDBII_DICTIONARY(RDBディクショナリ)となります。

userid

- Symfoware/RDBにアクセスできるユーザIDを指定してください。

- wit_gwdコマンドのパラメタで、WIT_useridが指定されている場合は、本パラメタの値は無視されます。

- 個別セションの場合、セキュリティ上の関係のため、ユーザIDを本パラメタでは指定しないで、ログイン時にブラウ

ザから指定することをお勧めします。

- 138 -

Page 146: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

passwd

- Symfoware/RDBにアクセスできるユーザIDのパスワードを指定してください。

- wit_gwdコマンドのパラメタでWIT_passwdが指定されている場合は、本パラメタの値は無視されます。

- 個別セションの場合、セキュリティ上の関係のため、パスワードを本パラメタでは、指定しないでログイン時にブラ

ウザから指定することをお勧めします。

homePage

Solaris/Linuxの場合

- wit_gwdコマンドでログイン時に表示されるHTML文書を指定します。

- Webサーバで登録した仮想ディレクトリで指定してください。

Windowsの場合

- wit_gwdコマンドでログイン時に表示されるHTML文書を指定します。

- 以下のように指定してください。

「*」には、Webサーバで指定したディレクトリを、絶対パスで指定してください。

file:// *

formatDir

- フォーマットファイルが存在するディレクトリを、絶対パスで指定してください。

- 指定したディレクトリには、WebScriptシステムに対する書込み権が必要です。書込み権がないと、正常な動作が

保証されません。

- 省略した場合は、WebDBtoolsインストールディレクトリ直下のディレクトリformatが指定されます。

dataDir

- ファイル定数に指定するファイルが存在するディレクトリを、絶対パスで指定してください。

- 省略した場合は、WebDBtoolsインストールディレクトリ直下のディレクトリdataが指定されます。

idleTimeout

- 個別セションに一定期間アクセスがないときに、個別セションを強制終了させる時間(タイムアウト)を、分で指定

してください。

- 省略した場合は、20分となります。180分以上を指定しても180分となります。

busyTimeout

- 共有セションに一定期間内で処理が終了しないときに、共有セションを強制終了させる時間(タイムアウト)を、分

で指定してください。

- 省略した場合は、2分となります。180分以上を指定しても180分となります。

- 共有セションが強制終了したときは、代わりの共有セションが起動されます。

DBErrorHandle

- フォーマットファイルの処理で、ユーザがエラー処理を行うかどうかを指定してください。

- on を 指 定 し た 場 合 、 ユ ー ザ が エ ラ ー 処 理 を 行 う こ と が で き ま す 。 フ ォ ー マ ッ ト フ ァ イ ル 内

で、“SYSTEM::DB_ERRORCODE”、“SYSTEM::DB_ERRORMSG”を参照することにより、エラー情報を得るこ

とができます。

- offを指定した場合、WebScriptがデータベースからのエラーメッセージを出力して、フォーマットファイルの処理を

中断します。この場合、エラーが発生した時点までの処理結果は、ブラウザに表示されます。

- 省略した場合は、offとなります。

- 139 -

Page 147: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

WLErrorHandle

- フォーマットファイルの処理で、ユーザがエラー処理を行うかどうかを指定してください。

- onを指定した場合、SQL文の実行エラー以外のエラーに対して、ユーザがエラー処理を行うことができます。フォー

マットファイル内で、“SYSTEM::WL_ERRORCODE”を参照することにより、エラー情報を得ることができます。

- offを指定した場合、WebScriptが適切なエラーメッセージを出力して、フォーマットファイルの処理を中断します。

- 省略した場合は、offとなります。

logoutFormat

- フォーマットファイルのファイル名を指定してください。指定されたフォーマットファイルは、以下の状況で使用さ

れます。

- wit_logoutコマンドのパラメタWIT_htmlとWIT_urlpathの両方が省略された場合は、このフォーマットファイル

が処理され、結果がブラウザに表示されます。

- タイムアウトが発生した場合は、セション終了直前に、本パラメタで指定されたフォーマットファイルが処理さ

れます。これにより、セションが自動的に中断されたことを補うための処理が行えます。

- フォーマットファイルの中で、“SYSTEM::TIMEOUT”を参照することにより、タイムアウトによって処理されるのか、

またはフォーマットファイルがwit_logoutコマンドによって処理されるのかを識別することができます。タイムアウト

によって処理される場合は、SYSTEM::TIMEOUTに1が、そうでない場合は0が設定されます。

WLCommandPath

- WebScriptコマンドを格納したディレクトリの仮想ディレクトリ名を指定してください。

- フ ォ ー マ ッ ト フ ァ イ ル 内

で、“SYSTEM::GWD”、“SYSTEM::LOGOUT”、“SYSTEM::FMTR”、“SYSTEM::MEDIA”を参照した場合に、

本パラメタの値を使用します。

- 省略した場合は、"/cgi-bin"となります。

workDir

Solaris/Linuxの場合

- WebScriptが一時的に作成するファイルを格納するためのディレクトリを、絶対パスで指定してください。

- 指定するディレクトリには、Webサーバの実効IDで書き込む権利があるパスを指定してください。

- 省略した場合は、WebDBtoolsインストールディレクトリ直下のディレクトリが指定されます。

- tmp

Windowsの場合

- WebScriptが一時的に作成するファイルを格納するためのディレクトリを、絶対パスで指定してください。

- 指定するディレクトリには、Webサーバの実効IDで書き込む権利があるパスを指定してください。

- 省略した場合は、WebDBtoolsインストールディレクトリ直下のディレクトリが指定されます。

- temp

acsLog

Solaris/Linuxの場合

- 各種アクセス情報を出力するアクセスログファイルを、絶対パスで指定してください。

- 指定するパスには、Webサーバの実効IDで書き込む権利があるパスを指定してください。

- 省略した場合

- システムログ(syslog)を使用します。syslogを使用するためには、syslog設定ファイルでファシリティに

daemon、レベルにinfoを指定してください。

Windowsの場合

- 140 -

Page 148: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

- 各種アクセス情報を出力するアクセスログファイルを、絶対パスで指定してください。

- 指定するパスには、Webサーバの実効IDで書き込む権利があるパスを指定してください。

- 省略した場合

- イベントログを使用します。

errorLog

Solaris/Linuxの場合

- WebScriptが検出したエラー情報を出力するエラーログファイルを、絶対パスで指定してください。

- 指定するパスには、Webサーバの実効IDで書き込む権利があるパスを指定してください。

- 省略した場合

- システムログ(syslog)を使用します。syslogを使用するためには、syslog設定ファイルでファシリティに

daemon、レベルにinfoを指定してください。

Windowsの場合

- WebScriptが検出したエラー情報を出力するエラーログファイルを、絶対パスで指定してください。

- 指定するパスには、Webサーバの実効IDで書き込む権利があるパスを指定してください。

- 省略した場合

- イベントログを使用します。

acsLogLevel

- アクセスログファイルに出力する情報の出力レベルを指定してください。

- 0:アクセス情報は、出力しません。

- 1:WebScriptセションの開始/終了の情報が出力されます。

- 2:WebScriptセションの開始/終了の情報とそのほかのアクセス情報が出力されます。

- 省略した場合は、1となります。

errorLogLevel

- エラーログファイルに出力する情報の出力レベルを指定してください。

- 0:エラー情報は、出力しません。

- 1:エラー情報が出力されます。

- 省略した場合は、0となります。

- 141 -

Page 149: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

第10章 ログ情報

本章では、ログ情報について説明します。

10.1 WebScriptが生成するログ情報

WebScriptシステムは、以下の3種類のログ情報を生成します。

・ サーバログ

WebScriptサーバが生成するログです。サーバの起動および終了などを記録します。

・ アクセスログ

WebScriptセションが生成するログです。WebScriptコマンドが実行されるたびに記録されます。

・ エラーログ

WebScriptセションが生成するログです。エラーが発生した場合に記録されます。

これらのログは、環境パラメタを設定することによって、以下のどちらかに記録されます。

Solaris/Linuxの場合

・ 環境パラメタで指定されたファイル

・ システムロギング

ここでのシステムロギングは、以下を指します。

- :syslog

Windowsの場合

・ 環境パラメタで指定されたファイル

・ システムロギング

ここでのシステムロギングは、以下を指します。

- :イベントログ

これらのログ情報は、生成しないようにすることもできます。

10.2 サーバログ

サーバログは、WebScriptサーバによって生成されるログです。WebScriptサーバの起動および終了などの情報を記録し

ます。

指定方法

サーバログの出力の有無の指定または出力先の指定は、サーバ環境パラメタserverLog、serverLogLevelで行います。

フォーマット

サーバログの出力フォーマットを以下に示します。

25 Jan 2007 19:33:32 [450]: WebScript server has started.

-------------------- --- -----------------------------

(1) (2) (3)

(1) 実行時刻 :このメッセージが生成された時刻

(2) プロセス番号 :WebScriptサーバのプロセス番号

(3) メッセージ :出力されたメッセージ

メッセージ形式

Message

- 142 -

Page 150: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

内容 意味

WebScript server has started. WebScriptサーバが起動されたことを示します。

WebScript server has ended. WebScriptサーバが終了したことを示します。

Address already in use. WebScriptサーバを起動しようとしましたが、すでに

WebScriptサーバが起動済みであったことを示します。

Cannot create new process. WebScriptサーバ環境設定が、整っていないため、内

部プロセスを起動できなかったことを示します。

ログサイズ

ログレベル 動作 ログサイズ概算値(バイト)

0 0

1 サーバ起動時 60

サーバ停止時 60

サンプル

(1) 25 Jan 2007 19:33:32 [450]: WebScript Server has started.

(2) 25 Jan 2007 19:35:10 [450]: WebScript Server has ended.

(3) 25 Jan 2007 19:33:44 [452]: Address already in use.

・ (1)では、WebScriptサーバを起動したことがわかります。

・ (2)では、WebScriptサーバを終了したことがわかります。

・ (3)では、WebScriptサーバを起動しようとしましたが、すでにほかのWebScriptサーバが起動済みであったために失

敗したことがわかります。

10.3 アクセスログ

アクセスログは、WebScriptセションによって生成されるログです。Webクライアントからアクセスが行われたときの情報を記

録します。

指定方法

アクセスログの出力の有無の指定または出力先の指定は、サーバ環境パラメタ、アプリケーション環境パラメタ acsLog、acsLogLevelで行います。

フォーマット

アクセスログの出力フォーマットを以下に示します。

25 Jan 2007 18:00:23 [431]: Login:ok user=suzuki host=Host01

-------------------- --- --------------------------------

(1) (2) (3)

(1) 実行時刻 :このメッセージが生成された時刻

(例:wit_gwdコマンドを実行した時刻)

(2) プロセス番号 :WebScriptセションのプロセス番号

(3) メッセージ :出力されたメッセージ

メッセージ形式

command:result user=userid host=hostname query=querystring

- 143 -

Page 151: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

Command

result userid hostname querystring

Login ok ユーザID ホスト名 ―

error(database)

Logout ok

error(database)

Fmtr―

ユーザID ホスト名 <!DO>タグで実行した

文Media

Exit idleTimeout ユーザID ホスト名 ―

busyTimeout

記号の意味

記号 意味 備考

Login wit_gwdコマンド

Logout wit_logoutコマンド

Fmtr wit_fmtrコマンド

Media wit_mediaコマンド

Exit ― タイムアウト時

ok 正常

error(database) 異常 異常時の原因は、エラーログを参照

ユーザID ― アプリケーション環境パラメタまたは

WIT_useridに指定したデータベースの

ユーザID

ホスト名 Webクライアントのマシン名 DNSに登録されていない場合はIPアドレ

ログサイズ

ログレベル 動作 ログサイズ概算値(バイト)

0 0

1 ログイン時 70

ログアウト時 70

2 ログイン時 70

ログアウト時 70

<!DO>タグ実行

70+SQL文、RDBコマンドまたは

データベース処理文の長さ

サンプル

(1) 25 Jan 2007 17:58:34 [361]: Login:ok user=suzuki host=WebScriptPublicSession

(2) 25 Jan 2007 17:59:49 [389]: Login:error(database) user=suzuki

host=WebScriptPublicSession

(3) 25 Jan 2007 18:00:23 [431]: Login:ok user=suzuki host=Host01

(4) 25 Jan 2007 18:04:12 [431]: Fmtr: user=suzuki host=Host01 query=SELECT 製品名,

カテゴリ,機能,型番 FROM WL_SCHEMA.製品表 WHERE

製品名 LIKE '%プレーヤー%'

(5) 25 Jan 2007 18:13:50 [431]: Media: user=suzuki host=Host01 query=SELECT 写真

- 144 -

Page 152: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

FROM WL_SCHEMA.製品表 WHERE 製品名 LIKE '%DVD%

'

(6) 25 Jan 2007 17:17:43 [431]: Logout:ok user=suzuki host=Host01

(7) 25 Jan 2007 18:27:01 [445]: Exit:idleTimeout user=suzuki host=Host01

(8) 25 Jan 2007 21:05:38 [448]: Login:error(database) user=suzuki host=Host01

・ (1)では、ユーザsuzukiとして共有セションが起動されたことが分かります。

・ (2)では、ユーザsuzukiとして共有セションを起動し、ログインしようとしましたが、データベースの接続中にエラーが発

生し、ログインできなかったことが分かります。

・ (3)では、ユーザsuzukiでマシンがHost01からログインしたことが分かります。

・ (4)では、ユーザsuzukiがマシンHost01からデータの取得を実行したことが分かります。

・ (5)では、ユーザsuzukiがマシンHost01からイメージデータの取得を実行したことが分かります。

・ (6)では、マシンHost01上のユーザsuzukiがログアウトしたことが分かります。

・ (7)では、マシンHost01上のユーザsuzukiでタイムアウトが発生したことが分かります。

・ (8)では、ユーザsuzukiでマシンがHost01からログインしようとして、失敗したことが分かります。

10.4 エラーログ

エラーログは、WebScriptセションによって生成されるログです。エラーが発生したときの情報を記録します。

指定方法

エラーログの出力の有無の指定または出力先の指定は、サーバ環境パラメタ、アプリケーション環境パラメタ errorLog、errorLogLevelで行います。

フォーマット

エラーログの出力フォーマットを以下に示します。

25 Jan 2007 18:13:50 [442]: WDT2006 タイムアウトが発生しました。

-------------------- --- ------------------------------------

(1) (2) (3)

(1) 実行時刻 :このメッセージが生成された時刻

(例:wit_fmtrコマンドを実行した時刻)

(2) プロセス番号 :WebScriptセションのプロセス番号

(3) メッセージ :出力されたメッセージ

メッセージ形式

id message

id message

メッセージID メッセージの内容 (注)

注)メッセージ内容については、以下のURLを参照してください。

http://Webサーバ名/WebDBtools/WebDBtools_ErrorMessages.html

ログサイズ

ログレベル 動作 ログサイズ概算値(バイト)

0 0

1 エラー発生時 30+エラーメッセージ長

- 145 -

Page 153: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

サンプル

25 Jan 2007 18:03:07 [438]: WDT3047 タグ <!VAR> のパラメタ NAME で指定された変数

(NAME)は、すでに定義されています。

25 Jan 2007 18:04:10 [439]: WDT2069 wit_media コマンドの必須引数(WIT_statement)

が指定されていません。

25 Jan 2007 18:06:46 [440]: WDT2051 フォーマットファイル

(/opt/FJSVsymwd/format/Test.html)のオープンに失敗

しました。(理由:No such file or directory)

25 Jan 2007 18:13:50 [442]: WDT2006 タイムアウトまたは通信量が大量のため、セッシ

ョンを終了しました。再ログインしてください。

- 146 -

Page 154: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

第11章 WebDBtools画面のカスタマイズ

本章では、WebDBtools画面のカスタマイズについて説明します。

11.1 WebDBtools画面のカスタマイズについて

WebDBtoolsの画面は、WebScriptのフォーマットファイルとして提供されています。利用者は、このフォーマットファイル

の内容を変更することにより、WebScriptの画面や処理内容をカスタマイズすることができます。

WebDBtoolsの画面のカスタマイズを行う場合は、以下のことに注意してください。

・ カスタマイズを行う場合は、カスタマイズする内容にも依存しますが、以下の前提知識が必要です。これらの前提知

識がない場合、カスタマイズを行うことはできません。

- HTMLおよびJavaScriptに関する知識

- WebScript拡張タグに関する知識

- データベースのSQL文に関する知識

- Symfowareのデータベースに関する知識

・ カスタマイズは、利用者自身の責任で実施してください。カスタマイズした結果は、試験の実施などにより動作を保証

してください。

・ カスタマイズを行う前に、元のフォーマットファイルの内容を必ずバックアップしてください。

・ 標準で提供されているWebDBtoolsのフォーマットファイルは、機能の拡張または改善時には、新規バージョンとして

新しいものが提供されます。新規バージョンでも、カスタマイズを有効にするには、新規バージョンのフォーマットファ

イルに再度カスタマイズを行う必要があります。

・ カスタマイズしたフォーマットファイルを、再配布または別の製品、商品に組み込むことはできません。

11.2 WebDBtools画面の構成

WebDBtoolsの画面には、以下の4種類があります。それぞれの種類に応じたフォーマットファイルから構成されていま

す。

・ 詳細処理画面の色の設定スタイルシート

・ 共通画面

・ 各機能の共通画面

・ 各機能の詳細処理画面

各画面の構成を、以下に説明します。

- 147 -

Page 155: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

詳細処理画面の色の設定スタイルシート

WebDBtoolsのスタイルシートです。各機能の背景および表の色を設定します。

共通画面

ログイン、定義操作、定義表示、データ操作、直接実行の機能を選択する画面、および各機能で共通に利用する画面

です。また、各機能を選択後、各機能の共通画面と詳細画面で左フレームのデータベースの資源を選択する画面も共

通画面です。これらの共通処理を行うフォーマットファイルから構成されます。

各機能の共通画面

各機能内で詳細な機能を選択する詳細選択メニューです。共通画面の機能選択により新しいウィンドウが作成され、フ

レーム画面となります。詳細選択メニューが右フレームに表示されます。これらの機能内の共通処理を行うフォーマット

ファイルから構成されます。

各機能の詳細処理画面

各機能内で詳細な機能を実行するための画面です。右フレームに表示されます。これらの各機能詳細を実行するフォー

マットファイルから構成されます。

機能詳細画面は、一連のフォーム画面の組合せにより、1つの処理を完結する構成のものがあります。これらのフォーム

間で、画面のデータの受渡しは、WebScriptのグローバル変数により行われています。グローバル変数によって、直前の

画面に戻った場合に、利用者が入力したフォームデータが記憶されています。

11.3 WebDBtoolsの画面処理

WebDBtoolsの画面処理の各フォーマットファイルについて説明します。

フォーマットファイルの規約

WebDBtoolsのフォーマットファイルは、以下の命名規約により、ファイル名が決定されます。また、先頭には、すべ

て“WebDBtools_”のプレフィックスが付加されます。

プレフィックス 機能名/処理内容 機能操作ID 追番

“WebDBtools_” 機能名:以下の1つ

・ PropertyDisplay

操作名

資源名

資源名+操作名

数値

例:01

- 148 -

Page 156: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

プレフィックス 機能名/処理内容 機能操作ID 追番

・ DefinitionOperation

・ DataOperation

・ DirectOperation

・ 処理内容:一例

・ MenuExec

操作動詞+資源

例:AddDatabase

変数名の規約

WebDBtoolsのフォーマットファイルでは、WebScriptのグローバル変数を利用しています。変数名については、以下の規

約を利用しています。

機能名/処理内容 グローバル変数プレフィックス 名前

定義表示 Pro_ 任意の名前

定義操作 Def_

データ操作 Dat_

直接操作 Dir_

各ファイルの処理

WebDBtoolsのHTMLおよびフォーマットファイルの処理について以下に示します。

機能部 詳細操作ID 処理

共通画

Start - WebDBtools画面生成

Login - ログイン

Menu - メニュー表示の呼出し

MenuExec - メニュー表示

TreeServer - RDBシステム内データベース

検索

TreeDatabase

- データベース内スキーマ検索

TreeSchema - スキーマ内表、ビュー表検索

定義表

PropertyDisplay

定義表示

共通

Init 初期画面

Tree 資源選択呼出し

定義表示

機能詳細

Server RDBシステム情報の表示

Database データベース情報の表示

DatabaseSpaceList データベーススペース一覧の

表示

DatabaseSpace データベーススペース情報の

表示

Schema スキーマ情報の表示

Table 表情報の表示

View ビュー表情報の表示

ProcedureList ルーチン一覧の表示

Procedure ルーチン情報の表示

- 149 -

Page 157: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

機能部 詳細操作ID 処理

SequenceList 順序一覧の表示

Sequence 順序情報の表示

TriggerList トリガ一覧の表示

Trigger トリガ情報の表示

DSODSIList DSO・DSIの一覧の表示

DSO DSO情報の表示

DSI DSI情報の表示

XMLGroupList XMLグループ一覧の表示

XMLGroup XMLグループ情報の表示

IndexList 一時表のインデックス一覧の

表示

Index 一時表のインデックス情報の

表示

GrantDatabaseSpace データベーススペース権限情

報の表示

GrantSchema スキーマ権限情報の表示

GrantTable 表権限情報の表示

GrantView ビュー表権限情報の表示

GrantProcedure ルーチン権限情報の表示

GrantSequence 順序権限情報の表示

GrantTrigger トリガ権限情報の表示

UserList 利用者一覧の表示

User 利用者情報の表示

GrantUser 利用者権限情報の表示

GrantUserRole 利用者ロール情報の表示

RoleList ロール一覧の表示

Role ロール情報の表示

GrantRole ロール権限情報の表示

GrantRoleUser ロール利用者情報の表示

定義操

DefinitionOperation

定義操作

共通

Init 初期画面

Tree 資源選択呼出し

定義操作

詳細選択

ServerSelect RDBシステム操作メニュー

DatabaseSelect データベース操作メニュー

SchemaSelect スキーマ操作メニュー

TableSelect 表操作メニュー

ViewSelect ビュー表操作メニュー

定義操作

機能詳細

ChangeUserControl01 利用者登録の使用宣言(1/1画面)

ChangeUserControl02 利用者登録の使用宣言の実

行・確認

AddDatabase01 データベース定義(1/1画面)

- 150 -

Page 158: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

機能部 詳細操作ID 処理

AddDatabase02 データベース定義実行

AddDatabaseSpace01 データベーススペース定義

(1/1画面)

AddDatabaseSpace02 データベーススペース定義の

実行・確認

AddSchema01 スキーマ定義(1/1画面)

AddSchema02 スキーマ定義の実行・確認

AddTable01 表定義(1/2画面)

AddTable02 表定義(2/2画面)

AddTable03 表定義の実行・確認

AddView01 ビュー表定義(1/2画面)

AddView02 ビュー表定義(2/2画面)

AddView03 ビュー表定義の実行・確認

AddProcedure01 ルーチン定義(1/2画面)

AddProcedure02 ルーチン定義(2/2画面)

AddProcedure03 ルーチン定義の実行・確認

AddSequence01 順序定義(1/1画面)

AddSequence02 順序定義の実行・確認

AddTrigger01 トリガ定義(1/1画面)

AddTrigger02 トリガ定義の実行・確認

AddDSO01 表のDSO定義(1/2画面)

AddDSO02 表のDSO定義(2/2画面)

AddDSO03 表のDSO定義の実行・確認

AddDSOIdx01 インデックスのDSO定義(1/1画面)

AddDSOIdx02 インデックスのDSO定義の実

行・確認

AddXMLGroup01 XMLグループ定義(1/2画面)

AddXMLGroup02 XMLグループ定義(2/2画面)

AddXMLGroup03 XMLグループ定義の実行・

確認

AddIndex01 一時表のインデックス定義

(1/1画面)

AddIndex02 一時表のインデックス定義の

実行・確認

AddDSI01 表のDSI定義(1/1画面)

AddDSI02 表のDSI定義の実行・確認

AddDSIIdx01 インデックスのDSI定義(1/1画面)

AddDSIIdx02 インデックスのDSI定義の実

行・確認

- 151 -

Page 159: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

機能部 詳細操作ID 処理

InitDSI01 DSI初期化(1/2画面)

InitDSI02 DSI初期化(2/2画面)

InitDSI03 DSI初期化の実行・確認

LoadData01 データロード(1/2画面)

LoadData02 データロード(2/2画面)

LoadData03 データロードの実行・確認

DropDatabase01 データベース削除(1/1画面)

DropDatabase02 データベース削除の実行・確

DropDatabaseSpace01

データベーススペース削除

(1/2画面)

DropDatabaseSpace02

データベーススペース削除

(2/2画面)

DropDatabaseSpace03

データベーススペース削除の

実行・確認

DropSchema01 スキーマ削除(1/2画面)

DropSchema02 スキーマ削除(2/2画面)

DropSchema03 スキーマ削除の実行・確認

DropTable01 表削除(1/2画面)

DropTable02 表削除(2/2画面)

DropTable03 表削除の実行・確認

DropView01 ビュー表削除(1/2画面)

DropView02 ビュー表削除の実行・確認

DropProcedure01 ルーチン削除(1/2画面)

DropProcedure02 ルーチン削除(2/2画面)

DropProcedure03 ルーチン削除の実行・確認

DropSequence01 順序削除(1/2画面)

DropSequence02 順序削除(2/2画面)

DropSequence03 順序削除の実行・確認

DropTrigger01 トリガ削除(1/2画面)

DropTrigger02 トリガ削除(2/2画面)

DropTrigger03 トリガ削除の実行・確認

DropDSO01 DSO削除(1/2画面)

DropDSO02 DSO削除(2/2画面)

DropDSO03 DSO削除の実行・確認

DropXMLGroup01 XMLグループ削除(1/2画面)

DropXMLGroup02 XMLグループ削除(2/2画面)

DropXMLGroup03 XMLグループ削除の実行・

確認

- 152 -

Page 160: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

機能部 詳細操作ID 処理

DropIndex01 一時表のインデックス削除

(1/2画面)

DropIndex02 一時表のインデックス削除

(2/2画面)

DropIndex03 一時表のインデックス削除の

実行・確認

DropDSI01 DSI削除(1/2画面)

DropDSI02 DSI削除(2/2画面)

DropDSI03 DSI削除の実行・確認

Grant01 データベーススペース権限定

義(1/1画面)

Grant02 データベーススペース権限定

義の実行・確認

Grant01 スキーマ権限定義(1/1画面)

Grant02 スキーマ権限定義の実行・確

Grant01 表権限定義(1/1画面)

Grant02 表権限定義の実行・確認

Grant01 ビュー表権限定義(1/1画面)

Grant02 ビュー表権限定義の実行・確

Grant01 ルーチン権限定義(1/1画面)

Grant02 ルーチン権限定義の実行・確

Grant01 トリガ権限定義(1/1画面)

Grant02 トリガ権限定義実行・確認

Revoke01 データベーススペース権限削

除(1/2画面)

Revoke02 データベーススペース権限削

除(2/2画面)

Revoke03 データベーススペース権限削

除の実行・確認

Revoke01 スキーマ権限削除(1/2画面)

Revoke02 スキーマ権限削除(2/2画面)

Revoke03 スキーマ権限削除の実行・確

Revoke01 表権限削除(1/2画面)

Revoke02 表権限削除(2/2画面)

Revoke03 表権限削除の実行・確認

Revoke01 ビュー表権限削除(1/2画面)

Revoke02 ビュー表権限削除(2/2画面)

Revoke03 ビュー表削除の実行・確認

Revoke01 ルーチン権限削除(1/2画面)

- 153 -

Page 161: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

機能部 詳細操作ID 処理

Revoke02 ルーチン権限削除(2/2画面)

Revoke03 ルーチン権限削除の実行・確

Revoke01 トリガ権限削除(1/2画面)

Revoke02 トリガ権限削除(2/2画面)

Revoke03 トリガ権限表削除の実行・確

AddUser01 利用者定義(1/1画面)

AddUser02 利用者定義の実行・確認

AddRole01 ロール定義(1/1画面)

AddRole02 ロール定義の実行・確認

DropUser01 利用者削除(1/2画面)

DropUser02 利用者削除(2/2画面)

DropUser03 利用者削除の実行・確認

DropRole01 ロール削除(1/2画面)

DropRole02 ロール削除(2/2画面)

DropRole03 ロール削除の実行・確認

AlterUser01 利用者変更(1/2画面)

AlterUser02 利用者変更(2/2画面)

AlterUser03 利用者変更の実行・確認

GrantRoleUser01 ロール利用者定義(1/1画面)

GrantRoleUser02 ロール利用者定義の実行・確

RevokeRoleUser01 ロール利用者削除(1/2画面)

RevokeRoleUser02 ロール利用者削除(2/2画面)

RevokeRoleUser03 ロール利用者削除の実行・確

データ

操作

DataOperation

データ操

共通

Init 初期画面

Tree 資源選択呼出し

データ操

詳細選択

ServerSelect RDBシステム操作メニュー

DatabaseSelect データベース操作メニュー

SchemaSelect スキーマ操作メニュー

TableSelect 表・ビュー表操作メニュー

データ操

機能詳細

Select01 検索(1/1画面)

Select02 検索の実行・確認

UpdateDelete01.html 更新削除(1/1画面)

UpdateDelete02.html 更新削除の実行・確認

DisplayPicture.hmtl 画面表示

DisplayPictureError.html

画面表示エラー

- 154 -

Page 162: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

機能部 詳細操作ID 処理

Insert01 挿入(1/1画面)

直接実

DirectOperation

直接操作

入力

Input 直接操作入力

11.4 カスタマイズ例

WebDBtoolsの画面のカスタマイズ例を説明します。

例1:表定義デフォルト値の変更

表定義画面のデフォルトの値である以下の値を変更します。

カスタマイズ項目

- プライマリキーを“あり”から“なし”に変更します。

- 列数を10から20に変更します。

手順

1. 表定義のフォーマットファイルを処理概要から検索します。

対象フォーマットファイル:WebDBtools_DefinitionOperationAddTable01.html

2. 対象フォーマットファイルを調査します。

3. 元のフォーマットファイルをバックアップします。

4. プライマリキーを“あり”から“なし”に変更します。

<!VAR PrimaryKey scope="LOCAL" VALUE="yes">

<!VAR PrimaryKey scope="LOCAL" VALUE="no">

5. 列数を10から20に変更します。

<!VAR ColumnNum scope="LOCAL" VALUE="10">

<!VAR ColumnNum scope="LOCAL" VALUE="20">

例2:データ操作で一度に検索する件数を変更

データ操作のデフォルトの値である以下の値を変更します。

カスタマイズ項目

- 一度に表示する検索件数の上限値を変更します。

手順

1. データ操作のフォーマットファイルを処理概要から検索します。

対象フォーマットファイル:WebDBtools_DataOperationSelect02.html

2. 対象フォーマットファイルを調査します。

3. 元のフォーマットファイルをバックアップします。

4. 一度に表示する件数の上限値を50から100件に変更します。

<!SETVAR breakcontrol '50'>

<!SETVAR breakcontrol '100'>

例3:データ操作の検索結果画面の変更

データ操作の検索での画面の表示方法を変更します。

- 155 -

Page 163: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

カスタマイズ項目

- 標準画面では、一画面ごとに検索したデータを表形式で表示しています。検索したすべてのデータを記憶して

おき、検索行の指定に従って一件をカード形式で表示するように変更します。なお、簡単な処理にするために、

BLOB型の列は表示しません。

手順

1. データ操作の検索結果のフォーマットファイルを処理概要から探します。

対象フォーマットファイル:WebDBtools_DataOperationSelect02.html

2. 対象フォーマットファイルの処理内容を調査します。一画面ごとに検索したデータを表形式で表示しています。

一画面に表示できない場合は、[次ページ]ボタンをクリックしたときに、再検索したデータを表形式で表示して

います。

- 156 -

Page 164: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

3. 変更後の処理を検討します。

検索したデータを記憶させておき、表示したい行を指定することにより、対象の一件をカード形式で表示させる

よう変更します。

4. 元のフォーマットファイルをバックアップします。

5. フォーマットファイルを変更します。

初回のみ検索させるために、フラグの設定と判定を変更します。

<!elseif '(formmode eq "initial" && execoption eq "submit") || (formmode eq "action" && execoption

eq "confirm")'>

・・・

<!setvar execoption "submit"> <!-- ← 修正前(1) -->

<!else>

<!setvar rslt "success">

<!/if>

<!if 'execoption eq "submit"'> <!-- ← 修正前(2) -->

<!elseif '(formmode eq "initial" && execoption eq "submit") || (formmode eq "action" && execoption

eq "confirm")'>

・・・

<!setvar execoption "select"> <!-- ← 修正後(1) -->

<!else>

<!setvar rslt "success">

<!/if>

<!if 'execoption eq "select"'> <!-- ← 修正後(2) -->

データを表形式で表示させる処理を削除し、データを記憶させる処理を追加します。

<!-- ↓ 修正前(3) -->

&nbsp;&nbsp;<B>結果</B>

<BR>

<!-- ↑ 修正前(3) -->

<!if 'rslt eq "success"'>

- 157 -

Page 165: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<!-- ↓ 修正前(4) -->

&nbsp;&nbsp;<!hreplace totalcount>件 検索されました。<BR><BR>

<TABLE BORDER="0" CELLSPACING="1" CELLPADDING="1">

・・・

</TABLE>

<!-- ↑ 修正前(4) -->

<!do "COMMIT WORK">

<!if 'SYSTEM::DB_ERRORCODE ne "00000"'>

・・・

<!else>

<!-- ↓ 修正前(5) -->

<!setvar rslt "success">

<!if 'nextpage ne "" && nextpage ne "none"'>

<TABLE BORDER="0">

・・・

</TABLE>

<!/if>

<BR><BR>

<TABLE BORDER="0">

・・・

</TABLE>

<!-- ↑ 修正前(5) -->

<!/if>

<!-- 修正後(3) 処理なし -->

<!if 'rslt eq "success"'>

<!-- ↓ 修正後(4) -->

<!if 'defined(Dat_SelectData)'>

<!undefvar Dat_SelectData>

<!/if>

<!if 'defined(Dat_SelectCol)'>

<!undefvar Dat_SelectCol>

<!/if>

<!var Dat_SelectData scope="GLOBAL">

<!var Dat_SelectCol scope="GLOBAL">

<!setvar Dat_SelectData SelResult>

<!for lcnt 0 'listlen(SelResult[0])-1'>

<!setvar Dat_SelectCol[lcnt] key(SelResult[0],lcnt)>

<!/for>

<!-- ↑ 修正後(4) -->

<!do "COMMIT WORK">

<!if 'SYSTEM::DB_ERRORCODE ne "00000"'>

・・・

<!else>

<!-- ↓ 修正後(5) -->

<!setvar rslt "success">

<!setvar line '1'>

<!setvar execoption "display">

<!-- ↑ 修正後(5) -->

<!/if>

データをカード形式で表示させる処理を追加します。

- 158 -

Page 166: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<!elseif 'execoption eq "confirm"'>

・・・

<!-- 修正前(6) 処理なし -->

<!/if>

<!-- 修正前(7) 処理なし -->

<!elseif 'execoption eq "confirm"'>

・・・

<!-- ↓ 修正後(6) -->

<!elseif 'execoption eq "submit"'>

<!setvar line 'QUERY::PrintLine'>

<!setvar execoption "display">

<!-- ↑ 修正後(6) -->

<!/if>

<!-- ↓ 修正後(7) -->

<!if 'execoption eq "display"'>

<!setvar lineMax 'listlen(Dat_SelectData)'>

<!if '1 > line || line > lineMax'>

<TABLE BORDER="0">

<TR>

<TD>&nbsp;</TD>

<TD>(<!replace line>/<!replace lineMax>) 範囲外です。</TD>

</TR>

</TABLE>

<!else>

<TABLE BORDER="0" CELLSPACING="1" CELLPADDING="1">

<TR>

<TD>&nbsp</TD>

<TD>(<!replace line>/<!replace lineMax>)</TD>

</TR>

<!for lcnt 0 'listlen(Dat_SelectData[line-1])-1'>

<!setvar col Dat_SelectCol[lcnt]>

<!if 'col eq "ROW_ID"'>

<!continue>

<!/if>

<TR>

<TD>&nbsp</TD>

<TD CLASS="DatTableColor5" NOWRAP><B><!hreplace

col></B></TD>

<TD CLASS="DatTableColor7" NOWRAP><!hreplace

Dat_SelectData[line-1][lcnt]></TD>

</TR>

<!/for>

</TABLE>

<!/if>

<TABLE BORDER="0">

<TR>

<TD>&nbsp;</TD>

<TD>

<INPUT TYPE="text" NAME="PrintLine" VALUE="$line" SIZE="5">

<INPUT TYPE="submit" VALUE="表示" WIDTH="62" HEIGHT="26">&nbsp;&nbsp;

<!setvar prevLine 'line-1'>

<!setvar nextLine 'line+1'>

<INPUT TYPE="submit" VALUE="<<" CLASS="ButtonSize4" WIDTH="62"

HEIGHT="26" OnClick="PrintLine.value='$prevLine'">

- 159 -

Page 167: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<INPUT TYPE="submit" VALUE=">>" CLASS="ButtonSize4" WIDTH="62"

HEIGHT="26" OnClick="PrintLine.value='$nextLine'">

</TD>

</TR>

</TABLE>

<BR>

<TABLE BORDER="0">

<TR>

<TD>&nbsp;</TD>

<TD><INPUT TYPE="submit" VALUE="終了" CLASS="ButtonSize1"

WIDTH="62" HEIGHT="26" onClick="SetCloseForm()"></TD>

</TR>

</TABLE>

<!/if>

<!-- ↑ 修正後(7) -->

- 160 -

Page 168: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

付録A WebScriptヒント集

WebScriptを利用する場合に、ヒントとなる項目について説明します。

A.1 WebScriptヒント集

WebScriptを利用する際に、ヒントとなる以下の項目について説明します。

・ 変数の値の埋込みについて

・ 大きなメモリ領域の代入

・ 共有セションでの情報の受け渡し

・ 日本語文字列の受渡し

・ 検索結果数の取得

・ <!FOREACH>と<!FOR>について

・ パッケージについて

・ 可変キー値について

変数の値の埋込みについて

WebScriptでは、変数の埋込みの手段として、以下の2つを提供しています。

ドル記号($)による置き換え

タグのパラメタまたはその一部として、変数の値を使用したい場合は、ドル記号で置き換えます。

<A HREF="$myURL">

<!REPLACE>タグ、<!HREPLACE>タグ

タグ以外の場所に、変数の値を使用する場合は、<!REPLACE>タグまたは<!HREPLACE>タグを用います。

<!SETVAR cost 5000>

宿舎までの交通費は<!HREPLACE cost>円です。

<!HREPLACE>タグは、STYLE=HTMLを指定した<!REPLACE>タグと同等です。通常の使用では、<!HREPLACE>タグを使用すれば十分で、<!REPLACE>タグを使用する必要はほとんどありません。

なお、タグ自身またはタグのパラメタ名の部分を、変数の値で置き換えることはできません。

大きなメモリ領域の代入

大きなメモリ領域を、2つ以上の変数で参照したい場合があります。メモリの参照方法により、性能が変わります。以下に

例を示します。

<!DO "SELECT * FROM SCM.TBL1 WHERE ..." RESULT=rslt>

この3番目のデータ (先頭のデータを0番目と数えるものとします) を変数xに入れる場合、以下の2種類の方法がありま

す。

(1) <!SETVAR x rslt[3]>

(2) <!SETVAR x rslt[3] REF>

(1)では、3件目のデータ全体が、xにコピーされます。各データのサイズが大きい場合は、性能が悪くなります。

(2)のようにREFパラメタを使用すると、データがコピーされません。xがrslt[3]の指しているデータを指すだけです。

したがって、(2)の方法が、よいことがわかります。

- 161 -

Page 169: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

共有セションでの情報の受け渡し

共有セションでは、グローバル変数の参照はできません。共有セションで、あるアクセスから次のアクセスへ情報を受け

渡したい場合には、別の方法を用いることが必要です。このために、便利な方法が、Cookieを用いることです。

Cookieを使用する例は、“3.6.11 共有セション”を参照してください。

日本語文字列の受渡し

正しく動作させるために、以下の指針に従ってください。

・ <A>タグのパラメタHREFにWebScriptコマンドを指定し、パラメタを指定した場合、そのパラメタの値をURLencode関数にて変換してください。

・ <FORM>タグのパラメタMETHODにPOSTを指定した場合のパラメタの値は、ブラウザが自動的にエンコードを行い

ます。

検索結果数の取得

<!DO>タグを使用して検索する場合、検索結果数を取得するには、取得した結果のリストに対し、listlen関数を実行して

ください。

<!DO "SELECT * FROM SCM.TBL1 WHERE ..." RESULT=rslt>

全部で<!HREPLACE 'listlen(rslt)'>件のデータが検索されました。

<!FOREACH>と<!FOR>について

リストの全要素をループする方法は、以下の2つです。

【方法1】

<!FOREACH list x>

... xを使った処理 ...

<!/FOREACH>

【方法2】

<!FOR i 0 'listlen(list)-1'>

... list[i]を使った処理 ...

<!/FOR>

2つの方法は、ほとんど変わりませんが、方法1の場合、ループの中でxの値を変更すると、対応するlistの要素の値も変

更されます。

<!FOREACH>タグは、リストのループに対する 適化処理を行っています。リストのサイズが大きい場合は、方法1の方

が速く処理できることがあります。

パッケージについて

WebScriptでは、グローバル変数はパッケージに属しています。明示的にパッケージを指定しなくても、デフォルトのパッ

ケージ("")に属しますが、できるだけアプリケーションを表すパッケージを使用するようにしてください。

たとえば、エンドユーザが、個別セション内で2つのアプリケーション「appA」と「appB」を共に使うことを考えます。両方の

アプリケーションで、デフォルトのパッケージを使用している場合、2つのアプリケーションで同じグローバル変数名を使用

すると、変数が衝突して、予期しない動作を引き起こす可能性があります。

アプリケーションappAでは、すべてのフォーマットファイルのヘッダ部分で

<!PACKAGE "appA">と宣言し、アプリケーションappBでは

<!PACKAGE "appB">と宣言しておけば、同じグローバル変数名が使われた場合も、衝突する心配はありません。

- 162 -

Page 170: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

可変キー値について

WebScript言語では、リストのキーの値に、定数文字列しか指定できません。大抵のアプリケーションでは、この定数文字

列の指定で十分です。もし、キー値を可変にする必要がある場合は、$を使用して変数を置き換えます。

<!DO "SELECT * FROM SCM.TBL1 WHERE ..." RESULT=rslt>

列 $QUERY::cNameの値は以下のとおりです。

<UL>

<!FOREACH rslt t>

<LI><!REPLACE 't{$QUERY::cName}'></LI>

<!/FOREACH>

</UL>

- 163 -

Page 171: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

付録B WebScriptフォーマットファイル解釈の詳細

WebScriptフォーマットファイルの解釈の詳細について、説明します。

B.1 WebScriptフォーマットファイル解釈の詳細

フォーマットファイルには、通常のHTMLタグに加えて、WebScriptが提供する検索結果出力用タグなどを使用することが

できます。

HTMLタグとWebScriptタグの評価順序を、以下に示します。

1. タグとそのパラメタへの分割

2. 変数/リスト要素の値による置き換え($の処理)

3. 値の解釈

タグとそのパラメタへの分割

タグとそのパラメタへの分割について、説明します。

タグの記述

- タグとは、以下の形式で記述されたものです。

< タグ名 [パラメタ1 [パラメタ2 ...] ] >

- タグは、フォーマットファイルが解釈されるときに、 初に認識されます。

- タグはネストしないため、タグをパラメタとして指定することはできません。したがって、<!SETVAR x <!HREPLACEa> >のような記述はできません。

パラメタの形式

- 各パラメタは、以下に示すどれかの形式をしています。

- パラメタ名

- パラメタ値

- パラメタ名 = パラメタ値

- HTMLタグのパラメタは、「パラメタ名」または「パラメタ名 = パラメタ値」の形式で指定してください。

- WebScriptタグは、タグごとに、省略不可能なパラメタの数が決まっています。

省略不可能なパラメタは、省略可能なパラメタより前に指定します。

省略不可能なパラメタは、「パラメタ値」の形式で指定してください。

- WebScriptタグの省略可能なパラメタは、「パラメタ名」または「パラメタ名 = パラメタ値」の形式で指定してくださ

い。どちらの形式かは、パラメタごとに決まっています。

省略可能なパラメタを指定する順序は任意です。

パラメタの分割

- タグ名および各パラメタの分割には、空白文字を使用します。ただし、対応する引用符で囲まれた部分の中にあ

る空白文字は、分割対象となりません。

例1

<!SETVAR>タグは、省略不可能なパラメタを2つと、省略可能なパラメタREFをもっています。REFは「パラメタ名」

の形式で指定してください。

<!SETVAR varName "The Value" REF>

例2

<!DO>タグには、省略可能なパラメタRESULTとONERRORがあります。以下に示す記述の内容は同じです。

<!DO "SELECT CLM FROM SCM.TBL1" RESULT=rslt ONERROR=ERR1>

<!DO "SELECT CLM FROM SCM.TBL1" ONERROR=ERR1 RESULT=rslt>

- 164 -

Page 172: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

特殊なパラメタ

- パラメタ値の中の「\」に続く文字は、特別な意味をもつことがあります。

\\ → 「\」が1つとして扱われます。

\' → 「'」が1つとして扱われます。

引用符で囲まれた部分の終了とはなりません。

\" → 「"」が1つとして扱われます。

引用符で囲まれた部分の終了とはなりません。

\$ → 「$」が1つとして扱われます。

\半角英字 →「\」が1つと半角英字1つの2文字を意味します。

- 上に示した以外の円記号+文字(日本語を含む)は、不定な値となります。

<!DO "SELECT * FROM SCM.TBL1 WHERE C1=\'A\' AND C2=\'B\'" RESULT=rslt>

↓ (SELECT文は以下のようになる)

SELECT * FROM SCM.TBL1 WHERE C1='A' AND C2='B'

- 引用符文字自体をパラメタ値の中に含める場合は、以下のどちらかの方法で指定してください。

- パラメタ値を、別の引用符で囲む (例:'abc"def')

- 「\」でエスケープする (例:"abc\"def")

- パラメタ値が英字、数字、「-」または「.」以外の文字を含む場合は、パラメタ値を引用符で囲みます。

【正しい例】 <!IF 'a == b'>

【誤った例】 <!IF a == b>

変数/リスト要素の値による置き換え($の処理)

変数/リスト要素の値による置き換えについて、説明します。

変数/リスト要素の置換

- パラメタ値の文字列の一部分に、WebScript変数またはリスト要素の値を使用する場合、その変数またはリスト要素を

「$(」と「)」で囲むことで、置き換えることができます。

- 「$(」の直後および「)」の直前に、空白を入れてはいけません。ただし、リスト要素の場合、[ ]の中に書くことができ

るのは数値定数だけです。

- 「$()」は、ネストすることはできません。

例1

変数xがabcで、パラメタ値が"ABC $(x) xyz"の場合

"ABC abc xyz"と同じ意味になります。

例2

リスト要素y[3] {column4}がAAAで、パラメタ値が"xxx $(y[3]{column4}) ttt"の場合

"xxx AAA ttt"と同じ意味になります。

「(」と「)」の省略

- 置き換えるものがリスト要素ではなく、「)」を置くべき場所の直後が、「_」、英字または数字のどれでもない場合、

「(」と「)」を省略することができます。

例1

変数x → abc

パラメタ値 → "ABC $x xyz"

$xの後ろが「_」、英字または数字ではないため(この場合「空白」)、"ABC abc xyz"と同じ意味になります。

- 165 -

Page 173: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

例2

変数x → abc

パラメタ値 → "$x?xyz"

$xの後ろが「_」、英字または数字ではないため(この場合「?」)、"abc?xyz"と同じ意味になります。

注意

フォーマットファイルでは、パラメタ分割が確定したあとに、変数の置換が解釈されます。したがって、以下の例のよう

な場合に注意してください。

変数z → value1 BAR=value2

<!TAG1 F00=$z>と<!TAG1 F00=value1 BAR=value2>とは異なりますので、注意してください。

置き換え対象はパラメタ値だけです。<!TAG2 $paramName=value>のような記述はできません。

値の解釈

変数/リスト要素の置き換えが行われた後の値の解釈について説明します。

HTMLタグの場合

- HTMLタグの場合、指定された値をもつタグが、フォーマットファイルを処理してできる結果のHTML文書に書き

込まれます。以下のような変換が行われます。

- パラメタ値に含まれる「"」は、「&#34;」で置き換えられます。

- パラメタ値に含まれる「'」は、「&#39;」で置き換えられます。

<!SETVAR x "a'b c">

<INPUT VALUE="$x">

<INPUT VALUE="a'b c">

WebScriptタグの場合

- パラメタの解釈は、各パラメタによって決まっていますが、&#ddや&lt;などによる表現は、HTML文書とは異なり、

解釈されません。

- 解釈方法の種類を、以下に示します。

- 【定数文字列】

引用符の種類にかかわらず、指定されたままの文字列の値

- 【左辺値】

引用符の種類にかかわらず、指定された文字列が表す変数/リスト要素

- 【そのほか】

[STEP1]

- パラメタ値が二重引用符で囲まれている場合は、その文字列自体をSTEP1の値とします。--- (a)

- パラメタ値が二重引用符で囲まれていない場合(引用符で囲まれている場合を含む)は、文字列をWebScript言語によって解釈したものをSTEP1とします。--- (b)

- パラメタ値を二重引用符で囲むかどうかは、パラメタへ分割した時点で決まります。

- 166 -

Page 174: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

<!SETVAR aaa '"foo"'>

<!REPLACE $aaa>

ここで、<!REPLACE>の第一パラメタは、パラメタ分割の時点で「二重引用符で囲まれていない」と判断されるので、変数

/リスト要素の値による置き換え後に"foo"となっても、STEP1では、(b)として扱われます。

[STEP2]

- パラメタによって指定されているコンテキストによって、STEP1の値を変換します。

- 文字列コンテキスト:STEP1の値を文字列に変換します。

- 数値コンテキスト:STEP1の値を数値に変換します。

- 一般コンテキスト:STEP1の値はそのままです。

値の評価例

以下に示す例は、上から順に評価されます。

<!UNDEFVAR abc>

<!SETVAR foo "abc">

・ abcという変数は定義されていません。

・ fooの値は、"abc"という文字列です。

<!SETVAR bar foo>

・ <!SETVAR>の第二パラメタは、一般コンテキストとして解釈されます。

・ STEP1は、(b)であるからWebScript言語によって解釈されます。この場合、fooは変数なので、その値が評価されて、

文字列"abc"となります。

・ STEP2は何もしないので、第二パラメタの評価結果は文字列"abc"となります。

・ barの値は、文字列"abc"となります。

<!SETVAR bar "foo">

・ STEP1では(a)が適用されるので、値は文字列"foo"です。

・ barの値は、文字列"foo"となります。

<!SETVAR bar "$foo">

・ 変数/リスト要素の値による置き換えにより、第二パラメタは"abc"となります。

・ barの値は、文字列"abc"となります。

<!SETVAR bar $foo>

・ 変数/リスト要素の値による置き換えにより、第二パラメタはabcとなります。

・ STEP1で(b)が適用され、abcはWebScript言語で評価されます。変数として定義されていないので、値は未定義値と

なります。STEP2でもそのままです。

・ barの値は未定義値となります。

<!SETVAR tbl "MYTABLE">

<!DO "SELECT CLM1 FROM SCM.$tbl">

・ 変数/リスト要素の値による置き換えにより、<!DO>の第一パラメタは "SELECT CLM1 FROM MYTABLE"となりま

す。

・ 値の解釈の評価での<!DO>の第一パラメタは、文字列コンテキストと指定されています。

- 167 -

Page 175: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・ STEP1で文字列になります。STEP2でも変わりません。

<!DO 'SELECT CLM1 FROM SCM.$tbl'>

・ 変数/リスト要素の値による置き換えにより、<!DO>の第一パラメタは 'SELECT CLM1 FROM MYTABLE'となりま

す。

・ 値の解釈のSTEP1では(b)が適用されるので、WebScript言語での文法エラーとなります。

<!SETVAR x "abc">

<!REPLACE "$x def">

・ 変数/リスト要素の値による置き換えにより、<!REPLACE>の第一パラメタは"abc def"となります。

・ 値の解釈の評価の場合、このパラメタの指定は、文字列コンテキストなので、評価結果は文字列"abc def"となります。

<!REPLACE "$( x )def">

・ 「$(」の後ろおよび「)」の前に、空白があるので、エラーとなります。

<!REPLACE "$xdef">

・ xdefという変数は定義されていないため、未定義値を文字列とになり、空文字列となります。

<!SETVAR y 123>

<!SETVAR ya "abc">

<!REPLACE "$ya">

・ yaが評価されて、文字列"abc"となります。

<!REPLACE "$(y)a">

・ yが評価されて、文字列"123a"となります。

<!REPLACE "$(x$y)">

・ x$yは、変数でもリスト要素でもないため、エラーとなります。

- 168 -

Page 176: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

付録C WebScriptエラーコード一覧

WebScriptのエラーコードについて説明します。

C.1 WebScriptエラーコード一覧

WebScriptのエラー発生時に、“SYSTEM::WL_ERRORCODE”に設定されるエラーコードについてその内容と利用者の

対処を以下に説明します。

エラーコード エラー内容と利用者の対処

00 内容 正常です。

01 内容 タグの構文にエラーがあります。

対処 フォーマットファイル中のタグの記述を正しく修正してください。

02 内容 タグのパラメタ値が不当です。

対処 フォーマットファイル中のタグのパラメタ値を正しく修正してください。

03 内容 タグおよび関数の処理中にコード変換エラーが発生しました。

対処 フォーマットファイル中のタグや関数の引数に記述したデータを正しく修正

してください。

04 内容 タグの処理中に無限ループが発生しました。

対処 フォーマットファイル中のループの終了条件を正しく修正してください。

05 内容 タグの処理中にメモリ不足が発生しました。

対処 サーバ内の割当てメモリ量を適切に増加してください。

07 内容 パッケージ名が不当です。

対処 フォーマットファイル中のパッケージ変数名を正しく指定してください。

08 内容 共有セションでグローバル変数は使用できません。

対処 フォーマットファイルで使用しているグローバル変数を除くか、個別セション

を利用してください。

09 内容 指定された変数は、更新できません。

対処 フォーマットファイル中の更新不可変数の更新処理を削除してください。

10 内容 ループのネストが深すぎます。

対処 フォーマットファイル中のループのネストの深さを100以下にしてください。

11 内容 WebScript言語の文法に誤りがあります。

対処 フォーマットファイル中のWebScriptの拡張タグの構文を正しく修正してくだ

さい。

12 内容 存在しない関数名が指定されました。

対処 フォーマットファイル中の関数名を正しく修正してください。

13 内容 リストの添字の値が不当です。

対処 フォーマットファイル中のリストの添字の値を正しく修正しください。

14 内容 関数の引数が不当です。

対処 フォーマットファイル中の関数に渡している引数を正しく修正してください。

15 内容 関数の演算でオーバフローが発生しました。

対処 フォーマットファイル中の関数への引数の値を正しく修正してください。

16 内容 関数の演算でアンダーフローが発生しました。

- 169 -

Page 177: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

エラーコード エラー内容と利用者の対処

対処 フォーマットファイル中の関数への引数の値を正しく修正してください。

17 内容 関数の演算で有効桁数がすべて失われました。

対処 フォーマットファイル中の関数への引数の値を正しく修正してください。

18 内容 関数の演算で有効桁数の一部が失われました。

対処 フォーマットファイル中の関数への引数の値を正しく修正してください。

19 内容 リスト変数データに異常が発生しました。

対処 フォーマットファイル中のリスト変数に対する誤った操作を正しく修正してく

ださい。

- 170 -

Page 178: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

付録D 格納構造情報

格納構造情報について説明します。

D.1 格納構造情報取得

<!DO>拡張タグの格納構造取得文の構文の詳細および取得される格納構造情報について、以下に説明します。

<!DO>拡張タグの格納構造情報取得文を実行すると、結果は、表をSQLの動的SELECT文から取得したように、結果変

数に設定されます。すなわち、結果リストには、列名のキーが設定された行として出力されます。また、結果が複数行に

なる場合は、行のリストで結果を返します。複数行は、リストの配列または<!FOREACH>拡張タグにより、取り出すことが

できます。

DSO一覧:GET DSO_LIST

・ 機能

表に含まれるすべてのDSO基本情報の一覧を取得します。

・ 構文

GET DSO_LIST データベース名 スキーマ名 表名

・ 返却情報

列名 属性 NULL有無 意味

DSO_TYPE CHAR(1) なし DSO種別

’B’:表のDSO’I’:インデックスのDSO

UNIQUE_OPTION CHAR(1) なし 一意性制約オプション

(表のDSOのみ)

’N’:なし

’Y’:あり

CONSTRAINT_CODE

INTEGER なし 制約コード

DSO_NAME CHARVARYING(128)

なし DSO名

DSO情報:GET DSO_INF

・ 機能

特定のDSOの詳細情報を取得します。

・ 構文

GET DSO_INF データベース名 { 表のDSO名 | インデックスのDSO名 }

・ 返却情報

列名 属性 NULL有無 意味

DSO_CODE INTEGER なし DSOコード

DSO_TYPE CHAR(1) なし DSO種別

’B’:表のDSO’I’:インデックスのDSO

STRUCTURE_TYPE

CHAR(1) なし 格納構造種別

’R’:RANDOM

- 171 -

Page 179: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

列名 属性 NULL有無 意味

’S’:SEQUENTIAL’B’:BTREE’O’:OBJECT’X’:XML

DIVIDE_OPTION CHAR(1) あり 分割オプション(表のDSOのみ)

’N’:分割なし

’Y’:分割あり

ORDER_TYPE CHAR(1) あり 格納順種別(SEQUENTIALのみ)

’0’:ORDER(0)’1’:ORDER(1)

BASE_TYPE CHAR(1) あり ベース種別(インデックスDSOの

み)

’K’:KEY’A’:ADDRESS

NOT_UNIQUE_OPTION

CHAR(1) あり 一意性制約なしオプション

(RANDOMのみ)

’N’:NOT UNIQUEなし

’Y’:NOT UNIQUEあり

DEGENERATE_OPTION

CHAR(1) あり 縮退オプション

(インデックスDSOのみ)

’N’:縮退なし

’Y’:縮退あり

’R’:再配置あり

PAGE_SIZE_1 INTEGER なし RANDOMのプライム部ページ

SEQUENTIALのデータ部ページ

BTREEのデータ部ページ長

OBJECTのデータ部ページ長

XMLのデータ部ページ長

PAGE_SIZE_2 INTEGER なし RANDOMのオーバフロー部ペー

ジ長

BTREEのインデックス部ページ

XMLのインデックス部ページ長

REUSE_PAGE_RATE

SMALLINT なし ページ再利用契機

KEY_NUM INTEGER なし キー構成列数(インデックスの

DSO,またはRANDOM のみ)

DIVIDE_KEY_NUM

INTEGER なし 分割キー構成列数

(表のDSOで分割ありのみ)

DIVIDE_DATA_LENGTH

INTEGER なし 分割値データ長

(表のDSOで分割ありのみ)

DSI_NUM INTEGER なし 当DSOのDSI数

TABLE_DSI_NUM INTEGER なし 表のDSI数

TABLE_NAME CHARVARYING(128)

なし 表名

- 172 -

Page 180: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

格納キー列一覧:GET DSO_STR_KEY_LIST

・ 機能

特定のDSOのキーを構成する列に関する情報を取得します。

・ 構文

GET DSO_STR_KEY_LIST データベース名 { 表のDSO名 | インデックスのDSO名 }

・ 返却情報

列名 属性 NULL有無 意味

UNIQUE_OPTION

CHAR(1) なし 一意性制約オプション

’N’:なし

’Y’:あり

ORDINAL_POSITION

INTEGER なし 定義順番号

COLUMN_CODE

INTEGER なし 列コード

分割キー列一覧:GET DSO_PAT_KEY_LIST

・ 機能

特定のDSOが分割格納を行っている場合の分割キーを構成する列に関する情報を取得します。

・ 構文

GET DSO_PAT_KEY_LIST データベース名 表のDSO名

・ 返却情報

列名 属性 NULL有無 意味

DIVIDE_RULE_TYPE

CHAR(1) なし 分割ルール種別

’C’:等値

’B’:範囲

ORDINAL_POSITION

INTEGER なし 定義順番号

COLUMN_CODE

INTEGER なし 列コード

DSI一覧:GET DSI_LIST

・ 機能

特定のDSOに含まれるすべてのDSIの基本情報の一覧を取得します。

・ 構文

GET DSI_LIST データベース名 { 表のDSO名 | インデックスのDSO名 }

・ 返却情報

列名 属性 NULL有無 意味

DSI_TYPE CHAR(1) なし DSI種別

’B’:表のDSI’I’:インデックスのDSI

TABLE_DSI_NAME

CHARVARYING(128)

なし 表のDSI名

- 173 -

Page 181: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

列名 属性 NULL有無 意味

INDEX_DSI_NAME

CHARVARYING(128)

なし インデックスのDSI名(イン

デックスDSOのみ)

DSI情報:GET DSI_INF

・ 機能

特定のDSIの詳細情報を取得します。

・ 構文

GET DSI_INF データベース名 { 表のDSI名 | インデックスのDSI名 }

・ 返却情報

列名 属性 NULL有無

意味

DSI_CODE INTEGER なし DSIコード

DSI_TYPE CHAR(1) なし DSI種別

’B’:表のDSI’I’:インデックスのDSI

ALARM_POINT_OPTION

CHAR(1) なし アラームポイントオプション

’N’:アラームポイントなし

’Y’:アラームポイントあり

EXTEND_TYPE CHAR(1) なし 自動容量拡張種別

’N’:自動容量拡張なし

’Y’:自動容量拡張あり

’A’:自動算出

DEGENERATE_OPTION

CHAR(1) あり 縮退オプション

(インデックスDSIのみ)

’N’:縮退なし

’Y’:縮退あり

’R’:再配置あり

REUSE_PAGE_RATE

SMALLINT なし ページ再利用契機

DSO_NAME CHARVARYING(128)

なし DSO名

DSI分割値一覧:GET DSI_PAT_DATA_LIST

・ 機能

特定のDSIが分割格納されたDSIの場合に、DSIに定義された分割キーの値の一覧を取得します。

・ 構文

GET DSI_PAT_DATA_LIST データベース名 表のDSO名 表のDSI名

・ 返却情報

列名 属性 NULL有無 意味

DIVIDE_VALUE

CHARVARYING(1000)

なし 分割値

- 174 -

Page 182: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

CREATE DSI ~ DSO ~ USING ( 7, ’E’, 8, ’F’ ), ( 4, ’C’, 5, ’D’ ) ALLOCATE ~

GET DSI_PAT_DATA_LIST ~

DIVIDE_VALUE

7

’E’

8

’F’

4

’C’

5

’D’

DSI割当て情報:GET DSI_ALLOC_INF

・ 機能

特定のDSIの格納構造の要素単位にスペース割当て情報を取得します。

・ 構文

GET DSI_ALLOC_INF データベース名 { 表のDSI名 | インデックスのDSI名 }

{ RAND_PRIME | RAND_OVER | SEQ_DATA | BTREE_DATA | BTREE_INDEX | OBJ_DATA

| XML_DATA | XML_INDEX }

・ パラメタの意味

RAND_PRIME:RANDOMのプライム部

RAND_OVER:RANDOMのオーバフロー部

SEQ_DATA:SEQUENTIALのデータ部

BTREE_DATA:BTREEのデータ部

BTREE_INDEX:BTREEのインデックス部

OBJ_DATA:OBJECTのデータ部

XML_DATA:XMLのデータ部

XML_INDEX:XMLのインデックス部

・ 返却情報

列名 属性 NULL有無 意味

ELEMENT_TYPE SMALLINT なし 要素種別

1:RANDOMのプライム部

2:RANDOMのオーバフ

ロー部

3:SEQUENTIALのデータ

4:BTREEのデータ部

5:BTREEのインデックス部

6:OBJECTのデータ部

10:XMLのデータ部

11:XMLのインデックス部

ALARM_POINT_OPTION

CHAR(1) なし アラームポイントオプション

’N’:アラームポイントなし

’Y’:アラームポイントあり

- 175 -

Page 183: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

列名 属性 NULL有無 意味

EXTEND_TYPE CHAR(1) なし 自動容量拡張種別

’N’:自動容量拡張なし

’Y’:自動容量拡張あり

’A’:自動算出

FIRST_ALLOC_SIZE

INTEGER なし 一次割当て量[キロ]

SECOND_ALLOC_SIZE

INTEGER なし 二次割当て量[キロ]

PAGE_NUM INTEGER なし ページ数

PAGE_LENGTH INTEGER なし ページ長

MANAGE_PAGE_NUM

INTEGER なし 管理ページ数

ALARM_POINT INTEGER なし アラームポイント[キロ]

(RANDOMのオーバフロー

部、

SEQUENTIALのデータ

部、

BTREEのデータ部、

またはOBJECTのデータ部

のみ、または、XMLのデー

タ部のみ)

EXTEND_POINT INTEGER なし 自動容量拡張契機[キロ]

EXTEND_SIZE INTEGER なし 自動容量拡張量[キロ]

DSI割当てデータベーススペース一覧:GET DSI_DBSPC_LIST

・ 機能

特定のDSIの格納構造の要素単位に、データベーススペースへ領域の割当て情報を取得します。

・ 構文

GET DSI_DBSPC_LIST データベース名 { 表のDSI名 | インデックスのDSI名 }

{RAND_PRIME | RAND_OVER | SEQ_DATA | BTREE_DATA | BTREE_INDEX | OBJ_DATA

| XML_DATA | XML_INDEX }

・ パラメタの意味

RAND_PRIME:RANDOMのプライム部

RAND_OVER:RANDOMのオーバフロー部

SEQ_DATA:SEQUENTIALのデータ部

BTREE_DATA:BTREEのデータ部

BTREE_INDEX:BTREEのインデックス部

OBJ_DATA:OBJECTのデータ部

XML_DATA:XMLのデータ部

XML_INDEX:XMLのインデックス部

・ 返却情報

列名 属性 NULL有無 意味

ELEMENT_TYPE

SMALLINT なし 要素種別

1:RANDOMのプライム部

2:RANDOMのオーバフロー

3:SEQUENTIALのデータ部

- 176 -

Page 184: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

列名 属性 NULL有無 意味

4:BTREEのデータ部

5:BTREEのインデックス部

6:OBJECTのデータ部

10:XMLのデータ部

11:XMLのインデックス部

ALLOC_TYPE CHAR(1) なし 割当て種別

’S’:静的割当て

’D’:自動容量拡張で割当て

ALLOC_SIZE INTEGER なし 割当て量[キロ]

DBSPC_NAME CHARVARYING(128)

なし データベーススペース名

データベーススペース一覧:GET DBSPC_LIST

・ 機能

データベースが含まれるすべてのデータベーススペースの基本情報の一覧を取得します。

・ 構文

GET DBSPC_LIST データベース名

・ 返却情報

列名 属性 NULL有無 意味

DEVICE_TYPE CHAR(1) なし デバイス種別

’L’:ローデバイス

’F’:ファイル

’N’:ネットワークファイル

ALLOC_SIZE INTEGER なし 割当て量[キロ]

STATIC_ALLOC_SIZE

INTEGER なし 静的割当て量[キロ]

EXTEND_SIZE INTEGER なし 自動容量拡張量[キロ]

DBSPC_CODE INTEGER なし データベーススペースコード

DBSPC_NAME CHARVARYING(128)

なし データベーススペース名

DEVICE_NAME CHARVARYING(256)

なし デバイス名

データベーススペース権限一覧:GET DBSPC_PRIV_LIST

・ 機能

特定のデータベーススペースの権限情報を取得します。

・ 構文

GET DBSPC_PRIV_LIST データベース名 データベーススペース名

- 177 -

Page 185: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・ 返却情報

列名 属性 NULL有無 意味

GRANTEE_NAME

CHARVARYING(128)

なし 権限受領ユーザ名

GRANTEE_KIND_CODE

INTEGER なし 権限コード

1:ALLOCATE権あり、付与権な

2:ALLOCATE権あり、付与権あ

一時表データベーススペース一覧:GET TEMP_TABLE_DBSPC_LIST

・ 機能

特定の一時表のデータベースへの領域の割り当て情報を取得します。

・ 構文

GET TEMP_TABLE_DBSPC_LIST データベース名 スキーマ名 一時表名

・ 返却情報

列名 属性 NULL有無 意味

DBSPC_NAME

CHARVARYING(128)

なし データベーススペース名

USER_NUM

INTEGER なし 利用者数

インデックス一覧:GET INDEX_LIST

・ 機能

特定の表のインデックス情報を取得します。

・ 構文

GET INDEX_LIST データベース名 スキーマ名 表名

・ 返却情報

列名 属性 NULL有無 意味

INDEX_NAME CHARVARYING(128)

なし インデックス名

INDEX_DSO_NAME

CHARVARYING(128)

なし インデックスのDSO名

利用者-データベーススペース権限一覧:GET USER_DBSPC_PRIV_LIST

・ 機能

特定の認可識別子のデータベーススペース権限情報を取得します。

・ 構文

GET USER_DBSPC_PRIV_LIST 認可識別子

- 178 -

Page 186: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

・ 返却情報

列名 属性 NULL有無 意味

DB_NAME CHARVARYING(128)

なし データベース名

DBSPC_NAME CHARVARYING(128)

なし データベーススペース名

PRIV_CODE INTEGER なし 権限コード

1:ALLOCATE権あり、付与権な

2:ALLOCATE権あり、付与権あり

ロール-データベーススペース権限一覧:GET ROLE_DBSPC_PRIV_LIST

・ 機能

特定のロールのデータベーススペース権限情報を取得します。

・ 構文

GET ROLE_DBSPC_PRIV_LIST ロール名

・ 返却情報

列名 属性 NULL有無 意味

DB_NAME CHARVARYING(128)

なし データベース名

DBSPC_NAME CHARVARYING(128)

なし データベーススペース名

PRIV_CODE INTEGER なし 権限コード

1:ALLOCATE権あり、付与権なし

2:ALLOCATE権あり、付与権あり

データベーススペース権限-ロール一覧:GET DBSPC_PRIV_ROLE_LIST

・ 機能

特定のデータベーススペースのロール情報を取得します。

・ 構文

GET DBSPC_PRIV_ROLE_LIST データベース名 データベーススペース名

・ 返却情報

列名 属性 NULL有無 意味

ROLE_NAME CHARVARYING(128)

なし ロール名

PRIV_CODE INTEGER なし 権限コード

1:ALLOCATE権あり、付与権な

2:ALLOCATE権あり、付与権あ

- 179 -

Page 187: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

D.2 検索情報取得

<!DO>拡張タグの検索情報取得文の構文の詳細および取得される検索情報について、以下に説明します。

<!DO>拡張タグの検索情報取得文を実行すると、結果は、表をSQLの動的SELECT文から取得したように、結果変数に

設定されます。すなわち、結果リストには、列名のキーが設定された行として出力されます。また、結果が複数行になる場

合は、行のリストで結果を返します。複数行は、リストの配列または<!FOREACH>拡張タグにより、取り出すことができま

す。

検索情報:GET DESCRIBE_OUTPUT

・ 構文

GET DESCRIBE_OUTPUT 問合せ式

・ 返却情報

列名 属性 NULL有無 意味

SQL_LEN INTEGER なし 長さ

SQL_TYPE SMALLINT なし 1:CHAR2:NUMERIC3:DECIMAL4:INTEGER5:SMALLINT7:REAL8:DOUBLE PRECISION9:DATE、TIMEまたはTIMESTAMP10:INTERVAL11:NCHAR12:CHAR VARYING13:NCHAR VARYING30:BLOB50:ROW_ID

SQL_SCALE SMALLINT なし 精度

SQL_PRECISION

SMALLINT なし 位取り

SQL_DT_SCALE

SMALLINT なし INTERVALの場合、

DATE_TIME_INTERVAL_CODE1:YEAR2:MONTH3:DAY4:HOUR5:MINUTE6:SECOND7:YEAR TO MONTH8:DAY TO HOUR9:DAY TO MINUTE10:DAY TO SECOND11:HOUR TO MINUTE12:HOUR TO SECOND13:MINUTE TO SECONDDATE、TIME、TIMESTAMPの場合、

1:DATE2:TIME3:TIMESTAMP以外の場合、0

- 180 -

Page 188: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

列名 属性 NULL有無 意味

SQL_DT_PRECISION

SMALLINT なし INTERVALの場合、

DATE_TIME_INTERVAL_PRECISION以外の場合、0

SQL_NULLABLE

SMALLINT なし 0:NULLなし

1:NULLあり

SQL_NAME CHARVARYING(128)

なし 列名

D.3 RDBコマンド用ファイル作成

<!DO>拡張タグのRDBコマンド用ファイル作成文の構文の詳細および取得されるファイル情報について、以下に説明し

ます。

<!DO>拡張タグのRDBコマンド用ファイル作成文を実行すると、結果は、表をSQLの動的SELECT文から取得したよう

に、結果変数に設定されます。すなわち、結果リストには、列名のキーが設定された行として出力されます。行は、リスト

の配列または<!FOREACH>拡張タグにより、取り出すことができます。

RDBコマンド用ファイル作成:CREATE FILE

・ 構文

CREATE FILE ファイル出力文字列

・ 返却情報

列名 属性 NULL有無 意味

FILE_NAME

CHARVARYING(255)

なし 作成したファイルの絶対パス名

- 181 -

Page 189: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

付録E メッセージの対処

Symfoware/RDBが出力するメッセージの対処方法について説明します。

E.1 Symfoware/RDBが出力するメッセージ

Symfoware/RDBが出力する以下のメッセージに対する利用者の対処は、以下で参照することができます。

・ WebDBtoolsでRDBコマンドの実行時に出力されるメッセージ

・ WebDBtoolsでSQL実行時に表示されるメッセージ

Solaris/Linuxの場合

rdbprtmsgコマンドまたは“メッセージ集”で参照することができます。

Windowsの場合

“メッセージ集”で参照することができます。

WebDBtoolsでRDBコマンドの実行時に、出力されるメッセージ

WebDBtoolsでRDBコマンド実行時に出力される以下のメッセージの説明を表示します。

Solaris/Linuxの場合

WDT4012 コマンドが異常終了しました。

rdb: ERROR: qdg12001u: 必要なオペランドが指定されていません

(システム名=rdbsys1)

Windowsの場合

WDT4012 コマンドが異常終了しました。

qdg12001u: 必要なオペランドが指定されていません (システム名=rdbsys1)

メッセージの説明の参照方法

Solaris/Linuxの場合

rdbprtmsg -qdg 12001

Windowsの場合

メッセージ番号をもとに、“メッセージ集”を参照してください。

メッセージの説明

qdg12001u

必要なオペランドが指定されていません s*

[メッセージの意味]

必要なオペランドが指定されていません。

[パラメタの意味]

s*:RDBシステム名

RDBシステム名はマルチRDBの場合のみ出力されます。

[システムの処理]

このコマンドの処理を中止します。

[利用者の処置]

必要なオペランドを指定し、再実行してください。

- 182 -

Page 190: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

WebDBtoolsでSQL実行時に、表示されるメッセージ

WebDBtoolsでSQL文実行時に出力される以下のメッセージの説明を表示します。

WDT4029 SQL アクセスでエラーが発生しました。

JYP5002E スキーマ“STOCKS”の表“高額発注表”内に定義されている

DSI“高額発注表DSI”の初期化が完了していません.

メッセージの説明の参照方法

Solaris/Linuxの場合

rdbprtmsg -jyp 5002

Windowsの場合

メッセージ番号をもとに、“メッセージ集”を参照してください。

メッセージの説明

JYP5002E

スキーマ“@1@”の表“@2@”内に定義されているDSI“@3@”の初期化が完了していません.

[状態コード]

71220

[メッセージの意味]

スキーマ“@1@”の表“@2@”内に定義されているDSI“@3@”の初期化が完了していません。

[パラメタの意味]

@1@: スキーマ名

@2@: 表名

@3@: DSI名

[システムの処理]

この文の処理を中止します。

[利用者の処置]

表のDSIの場合はDSIを初期化をしてください。インデックスのDSIの場合はインデックスのDSIを創成してください。

- 183 -

Page 191: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

索 引[]

環境パラメタ...........................................................................129

[A]<!ABORT>...............................................................................78abs...........................................................................................114atan2........................................................................................114

[B]<!BREAK>...............................................................................75

[C]<!CATCH>...............................................................................72chr...........................................................................................109COMMIT..................................................................................84<!CONTINUE>........................................................................76Cookie.......................................................................................28COOKIEパッケージ変数..................................................23,100Cookie名...................................................................................70cos...........................................................................................115CREATE FILE.......................................................................181

[D]DB_CODE..............................................................................104DB_ERRORCODE................................................................101DB_ERRORMSG...................................................................101defined....................................................................................125<!DO>.......................................................................................79DSI一覧..................................................................................173DSI情報..................................................................................174DSI分割値一覧......................................................................174DSI割当て情報......................................................................175DSI割当てデータベーススペース一覧.................................176DSO一覧................................................................................171DSO情報................................................................................171

[E]<!ELSE>...................................................................................77<!ELSEIF>...............................................................................77<!ERRORHANDLE>...............................................................93exp..........................................................................................115

[F]FMTR.....................................................................................103<!FOR>.....................................................................................73<!FOREACH>..........................................................................72<!FOREACH>と<!FOR>について........................................162format......................................................................................109

[G]GET DBSPC_LIST................................................................177GET DBSPC_PRIV_LIST.....................................................177GET DBSPC_PRIV_ROLE_LIST.........................................179GET DESCRIBE_OUTPUT..................................................180GET DSI_ALLOC_INF.........................................................175GET DSI_DBSPC_LIST........................................................176GET DSI_INF.........................................................................174

GET DSI_LIST.......................................................................173GET DSI_PAT_DATA_LIST................................................174GET DSO_INF.......................................................................171GET DSO_LIST.....................................................................171GET DSO_PAT_KEY_LIST.................................................173GET DSO_STR_KEY_LIST.................................................173GET INDEX_LIST.................................................................178GET ROLE_DBSPC_PRIV_LIST.........................................179GET TEMP_TABLE_DBSPC_LIST.....................................178GET USER_DBSPC_PRIV_LIST.........................................178gmtime....................................................................................123GWD.......................................................................................103

[H]<!HREPLACE>........................................................................88html.........................................................................................126

[I]<!IF>.........................................................................................77index.......................................................................................111int............................................................................................115

[J]join..........................................................................................118

[K]key..........................................................................................118

[L]LAST_DB_ERRORCODE....................................................101LAST_DB_ERRORMSG.......................................................102length......................................................................................112listlen......................................................................................118literal.......................................................................................127localtime.................................................................................124log...........................................................................................116LOGIN_DATABASE............................................................102LOGIN_NAME......................................................................102LOGIN_SCHEMA.................................................................102LOGIN_SYSTEM..................................................................102LOGOUT................................................................................103

[M]MAX_RESULTNUM............................................................103MEDIA...................................................................................103

[O]ord...........................................................................................112OS...........................................................................................104

[P]<!PACKAGE>.........................................................................94pop..........................................................................................119pow.........................................................................................116push.........................................................................................119

[Q]QUERYパッケージ変数...................................................23,100

- 184 -

Page 192: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

[R]rand.........................................................................................116rdbfmtコマンド.....................................................................29,80rdbprtmsgコマンド...................................................................182rdbsloaderコマンド....................................................................80RDBコマンド用ファイル作成.................................................181RDBシステム名..........................................................................6<!REPLACE>...........................................................................88reverse.....................................................................................120ROLLBACK.............................................................................84

[S]SCRIPT_CODE......................................................................104<!SETCOOKIE>......................................................................93<!SETVAR>.............................................................................90shift.........................................................................................120sin............................................................................................117Solaris(TM)またはLinuxの場合の設定方法........................132sort..........................................................................................121split.........................................................................................121sqrt..........................................................................................117srand........................................................................................117subscr......................................................................................122substr.......................................................................................112SYMFOWARE_EDITION....................................................104Symfoware/RDBが出力するメッセージ................................182SYSTEMパッケージ変数.................................................23,101

[T]<!THROW>..............................................................................71time.........................................................................................125TIMEOUT..............................................................................103tolower....................................................................................113toupper....................................................................................113<!TRANSACTION>................................................................87

[U]undef.......................................................................................125<!UNDEFVAR>.......................................................................92unshift.....................................................................................122URLencode.............................................................................128URLの指定..............................................................................69

[V]<!VAR>....................................................................................89

[W]WebDBtools画面のカスタマイズについて............................147WebDBtools画面の構成.......................................................147WebDBtools操作概要...............................................................5WebDBtoolsでRDBコマンドの実行時に、出力されるメッセージ

................................................................................................182WebDBtoolsでSQL実行時に、表示されるメッセージ..........183WebDBtoolsとは.........................................................................1WebDBtoolsのHTML............................................................149WebDBtoolsの概要...................................................................1WebDBtoolsの画面処理.......................................................148WebDBtoolsの起動URL...........................................................5WebDBtoolsの機能...................................................................2

WebDBtoolsの構成...................................................................1WebDBtoolsの目的...................................................................1WebDBtoolsの利用効果...........................................................3WebDBtoolsのログイン..............................................................5WebScript..............................................................................2,10WebScriptエラーコード一覧..................................................169WebScript拡張タグ..................................................................70WebScript拡張タグのパラメタ..................................................67WebScript拡張タグの表記.......................................................67WebScriptが生成するログ情報.............................................142WebScript言語.........................................................................96WebScriptコマンド...............................................................12,58WebScriptコマンドの種類........................................................58WebScriptセション....................................................................67WebScriptの定数、変数...........................................................23WebScriptヒント集...................................................................161WebScriptフォーマットファイル解釈の詳細..........................164Webセキュリティ.......................................................................32Webを利用した簡易なデータベースツール.............................3<!WHILE>...............................................................................74Windows(R)の場合の設定方法............................................132WIT_ctype................................................................................64WIT_database...........................................................................60WIT_env...................................................................................59WIT_error.................................................................................60wit_fmtr....................................................................................61wit_gwd....................................................................................59WIT_html............................................................................62,65wit_logout.................................................................................65wit_media.................................................................................63WIT_onerror.............................................................................64WIT_passwd.............................................................................60WIT_statement.........................................................................63WIT_system..............................................................................59WIT_urlpath.............................................................................65WIT_userid...............................................................................60WL_ERRORCODE................................................................102

[あ]アクセス環境の指定.................................................................11アクセスログ............................................................................143値の種類..................................................................................25値の評価例............................................................................167アプリケーション環境の削除..................................................134アプリケーション環境の追加..................................................133アプリケーション環境の複写..................................................134アプリケーション環境パラメタの詳細.....................................138アプリケーション環境パラメタの設定.....................................135アプリケーション環境名の変更..............................................134アプリケーション環境パラメタ.................................................129一時表データベーススペース一覧.......................................178一般数値..................................................................................71一般データ...............................................................................71一般文字列..............................................................................71イメージデータの検索..............................................................29イメージ表示.............................................................................51インデックス一覧....................................................................178エラー処理..........................................................................28,53

- 185 -

Page 193: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

エラーログ...............................................................................145演算..........................................................................................26演算子....................................................................................105演算子の一覧........................................................................105演算子の意味........................................................................106大きなメモリ領域の代入.........................................................161

[か]各機能の共通画面................................................................148各機能の詳細処理画面........................................................148各機能の操作画面....................................................................8拡張タグ...............................................................................10,67拡張タグ使用例........................................................................33拡張タグによるデータベース処理...........................................28拡張タグの基本要素................................................................21拡張タグの規約........................................................................70格納キー列一覧.....................................................................173格納構造情報........................................................................171格納構造情報取得文..............................................................84各ファイルの処理...................................................................149カスタマイズ例........................................................................155可変キー値について.............................................................163カレントパッケージ....................................................................98簡易にデータベース連携業務を作成.......................................4環境パラメタ...........................................................................129環境パラメタの関係................................................................131環境パラメタの種類................................................................129環境パラメタの詳細................................................................137環境パラメタの設定................................................................132関数.................................................................................108,109機能選択画面............................................................................7基本要素の種類......................................................................22共通画面................................................................................148共有セション........................................................................17,55共有セションでの情報の受け渡し.........................................162共有セションの環境パラメタの関係.......................................130共有セション利用のための設定............................................135組込み関数..............................................................................26クライアントのメンテナンス負荷を軽減......................................3グローバル変数...................................................................23,98検索結果数の取得................................................................162検索情報取得........................................................................180個別セション........................................................................13,34個別セションの環境パラメタの関係.......................................130個別セション利用のための設定............................................133コンテキスト........................................................................25,105

[さ]左辺値......................................................................................71サーバ環境パラメタの詳細....................................................137サーバ環境パラメタの設定....................................................136サーバログ..............................................................................142サーバ環境パラメタ................................................................129時刻関数................................................................................123システム表検索文....................................................................85システム変数.......................................................................23,98実行制御タグ............................................................................71詳細処理画面の色の設定スタイルシート.............................148

数学関数................................................................................114数値から文字列.....................................................................105数値定数..................................................................................97数値・文字データ検索.............................................................28制御構造..................................................................................26セション管理.............................................................................13操作画面について.....................................................................7そのほかのタグ.........................................................................93

[た]タグとそのパラメタへの分割...................................................164単純変数名..............................................................................70単値.....................................................................................25,96単値からリスト.........................................................................105置換関数................................................................................126直接実行....................................................................................7定義関数................................................................................125定義操作....................................................................................7定義表示....................................................................................7定数..........................................................................................97定数文字列..............................................................................71デフォルトのアプリケーション環境パラメタの設定................135データ.......................................................................................96データ検索:絞込み検索.........................................................42データ検索:全件検索.............................................................36データ検索:範囲指定検索.....................................................40データ検索:複数検索.............................................................39データ更新:データ更新..........................................................46データ更新:データ削除..........................................................48データ更新:データ追加..........................................................44データ操作.................................................................................7データ操作で一度に検索する件数を変更...........................155データ操作の検索結果画面の変更.....................................155データの分類...........................................................................96データベース............................................................................26データベースアクセス業務......................................................31データベースアクセスタグ........................................................79データベースアクセスの流れ..................................................12データベース構築ツールの拡張性...........................................3データベースサーバへのログイン.............................................6データベース処理のための拡張タグの処理..........................29データベース処理文................................................................81データベーススペース一覧...................................................177データベーススペース権限一覧...........................................177データベーススペース権限-ロール一覧............................179データベースのアクセス機構..................................................11データベースの格納情報検索拡張タグ.................................30データベースの検索と拡張タグ..............................................11データベースの定義とデータの操作........................................2データベース名..........................................................................6データベース連携業務の構築..................................................2データベース連携の機能........................................................10データベース連携の利用形態................................................31特殊文字のエスケープ............................................................68

[な]名前..........................................................................................70日本語文字列の受渡し.........................................................162

- 186 -

Page 194: © 2 w ûZ ßT h#âÒ ý© /' Fåö Lݵà+ - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X... · 2016-09-19 · フォーマットファイルについて説明しています。

[は]パスワード...................................................................................7パッケージ................................................................................98パッケージ参照の例................................................................99パッケージに属する変数の指定.............................................98パッケージについて...............................................................162パッケージ名............................................................................70パラメタの評価..........................................................................70凡例........................................................................................109表示タグ....................................................................................88表定義デフォルト値の変更...................................................155フォーマットファイル.................................................................67フォーマットファイルに記述できる関数.................................108フォーマットファイルの規約...................................................148フォーマットファイルの処理...................................................149フォーマットファイルのタグ形式と拡張タグの操作規則.........21フォーマットファイルの注意事項.............................................68分割キー列一覧.....................................................................173変更可能性..............................................................................96変数..........................................................................................98変数タグ....................................................................................89変数のHTML置換...................................................................25変数のHTML変換...................................................................25変数の値の埋込みについて.................................................161変数の参照..............................................................................68変数の種類..............................................................................68変数の置換..............................................................................68変数の置換と値の解釈............................................................24変数の置換方法......................................................................68変数の特定方法......................................................................98変数の分類..............................................................................98変数名......................................................................................70変数名の規約........................................................................149変数/リスト要素の値による置き換え...................................165

[ま]未定義値...........................................................................96,105命名規約..................................................................................70メッセージの対処...................................................................182文字列から数値.....................................................................105文字列操作関数....................................................................109文字列定数..............................................................................97

[や]ユーザID....................................................................................6ユーザ変数...............................................................................98

[ら]ラベル名...................................................................................70リスト..........................................................................................96リストから単値.........................................................................105リスト関数................................................................................118リスト要素を参照する演算子....................................................96利用者-データベーススペース権限一覧...........................178利用の種類とセキュリティ........................................................31ログ情報..................................................................................142ローカル変数.......................................................................23,98ロール-データベーススペース権限一覧............................179

- 187 -