スマートナビゲーションの設定方法について説明します。スマートナビゲーションを使用するための設定手順を次に示します。
(1) 連携するデータの型定義
スマートナビゲーションでは連携するサイトに送信するデータの型を定義します。製品出荷時にはいくつかのデータ型が定義されています。このデータ型以外のデータ型を定義する場合は,データ型定義ファイルに追加します。データ型定義ファイルは以下のファイルです。
{設定ファイル格納ディレクトリ}¥data_put_definition.xml
(a) データ型定義ファイルで使用するタグ一覧
タグの一覧を次の表に示します。
表5-26 データ型定義ファイルのタグ一覧
タグ名 | タグの出現回数 | 属性の出現回数 | 説明 | ||
---|---|---|---|---|---|
<definitions> | 1回 | - | データ型定義ファイルのルートタグです。 | ||
<data> | 0回以上 | 1回 | データ型の定義です。 属性typeにデータ型名を指定します。データ型名には半角英数字で64文字まで使用することができます。※1 | ||
<formatter> | 0または1回 | - | 抽出したデータを正規化する場合に使用するフォーマッタの定義です。フォーマッタには以下を定義することができます。
| ||
<parse> | 0回以上 | - | 抽出したデータを解析するための正規表現を指定します。指定した正規表現に一致した場合に,フォーマッタを呼び出します。複数の正規表現を記述した場合は,定義した順にデータを解析します。指定した正規表現に一致しない場合は,フォーマッタの呼び出しを行いません。データ解析を行わずにフォーマッタを呼び出す場合は定義しないでください。 | ||
<format> | 0または1回 | - | 解析したデータを変換する文字列を指定します。指定する文字列の形式についてはフォーマッタの仕様を参照してください。 | ||
</data> | 0回以上 | - | 終了タグです。 | ||
</definitions> | 1回 | - | 終了タグです。 |
(b) サンプルのデータ型定義ファイル
サンプルのデータ型埋め込み定義ファイルを次に示します。サンプルでは,date1,date2,tel,time,string,place,およびnameの7種類のデータ型を定義しています。
<?xml version="1.0" encoding="UTF-8"?>
<definitions>
<data type="date1">
<formatter>java.text.SimpleDateFormat</formatter>
<parse>yyyy/MM/dd</parse>
<format>yyyy-MM-dd</format>
</data>
<data type="date2">
<formatter>java.text.SimpleDateFormat</formatter>
<parse>yyyy/MM/dd</parse>
<format>yyyyMMdd</format>
</data>
<data type="tel">
</data>
<data type="time">
<formatter>java.text.SimpleDateFormat</formatter>
<parse>HHmmss</parse>
<format>HH:mm:ss</format>
</data>
<data type="string">
</data>
<data type="place">
</data>
<data type="name">
</data>
</definitions>
(2) 連携するデータの埋め込み定義
ポートレット上のコンテンツから,連携するサイトに送信するデータの抽出ルールを定義するデータ埋め込み定義ファイルを作成します。定義ファイルの格納場所およびファイル名は任意ですが,{設定ファイル格納ディレクトリ}に作成することを推奨します。また,データ埋め込み定義ファイルは「(3) ポートレットフィルタの定義」で説明するポートレットフィルタ定義ファイルの<filter>要素ごとに作成することができ,<param-value>要素に作成した定義ファイルのパスを指定します。
(a) データ埋め込み定義ファイルで使用するタグ一覧
タグの一覧を次の表に示します。
表5-27 データ埋め込み定義ファイルのタグ一覧
タグ名 | タグの出現回数 | 属性の出現回数 | 説明 | ||||
---|---|---|---|---|---|---|---|
<dataPut> | 1回 | - | データ埋め込み定義ファイルのルートタグです。 | ||||
<trigger> | 0または1回 | 1回 | トリガーイベントについての定義です。 属性eventでトリガーイベントの種類を指定できます。
| ||||
<dataPutRange> | 0回以上 | - | データ埋め込みのついての定義です。 | ||||
<url> | 0回以上 | - | データ埋め込みを実施するURLパターンを指定します。複数定義した場合は,いずれかのパターンと一致した場合にデータ埋め込みを実施します。URLパターンが適用されるのは以下のポートレットの場合です。
| ||||
<dataRange> | 0回以上 | 0または1回 | データ埋め込みの実施範囲についての定義です。 属性start※2にデータ埋め込み実施範囲の開始位置をキーワードで指定します。属性startで指定したキーワード以降がデータ埋め込み実施範囲になります。省略した場合は,コンテンツの先頭がデータ埋め込み実施範囲の開始位置になります。 属性end※2にデータ埋め込み実施範囲の終了位置をキーワードで指定します。属性endで指定したキーワードまでがデータ埋め込み実施範囲になります。省略した場合は,コンテンツの最後がデータ埋め込み実施範囲の終了位置になります。 | ||||
<triggerRange> | 0回以上 | 0または1回 | トリガーイベント検知範囲についての定義です。※1 属性start※2にトリガーイベント検知範囲の開始位置をキーワードで指定します。属性startで指定したキーワード以降がトリガーイベント検知範囲になります。省略した場合は,データ埋め込み実施範囲の先頭がトリガーイベント検知範囲の開始位置になります。 属性end※2にトリガーイベント検知範囲の終了位置をキーワードで指定します。属性endで指定したキーワードまでがトリガーイベント検知範囲になります。省略した場合は,データ埋め込み実施範囲の最後がトリガーイベント検知範囲の終了位置になります。 | ||||
<ruleWithTrigger> | 0回以上 | 0または1回 | トリガーイベント検知範囲を指定する場合のデータ抽出ルール定義。 属性typeに抽出したデータのデータ型を指定します。この属性は必ず指定してください。 属性regexに抽出するデータの正規表現を指定します。 属性start※2に抽出するデータの開始位置をキーワードで指定します。省略した場合は,トリガーイベント検知範囲の先頭が開始位置となります。属性regexが指定されている場合は,この属性は使用されません。 属性end※2に抽出するデータの終了位置をキーワードで指定します。省略した場合は,トリガーイベント検知範囲の最後が終了位置となります。属性regexが指定されている場合は,この属性は使用されません。 | ||||
<ruleNoTrigger> | 0回以上 | 0または1回 | トリガーイベント検知範囲を指定しない場合のデータ抽出ルール定義です。※1 属性typeに抽出したデータのデータ型を指定します。この属性は必ず指定してください。 属性regexに抽出するデータの正規表現を指定します。 属性start※2に抽出するデータの開始位置をキーワードで指定します。省略した場合は,データ埋め込み実施範囲の先頭が開始位置となります。属性regexが指定されている場合は,この属性は使用されません。 属性end※2に抽出するデータの終了位置をキーワードで指定します。省略した場合は,データ埋め込み実施範囲の最後が終了位置となります。属性regexが指定されている場合は,この属性は使用されません。 | ||||
</dataPutRange> | 0回以上 | - | 終了タグです。 | ||||
</dataPut> | 1回 | - | 終了タグです。 |
(b) サンプルのデータ埋め込み定義ファイル
サンプルのデータ埋め込み定義ファイルを次に示します。サンプルでは次の二つのデータ埋め込み実施範囲を定義しています。
<?xml version="1.0" encoding="UTF-8"?>
<dataPut>
<trigger event="RCLICK"/>
<dataPutRange>
<dataRange start="<!--start1-->" end="<!--end1-->">
<triggerRange start="<!--trigger-->" end="<!--trigger-->">
<ruleWithTrigger type="place" start="<!--data-->" end="<!--data-->">
</ruleWithTrigger>
</triggerRange>
</dataRange>
<dataRange start="<!--start2-->" end="<!--end2-->">
<ruleNoTrigger type="date1" regex="[0-9]{1,4}/[0-9]{1,4}/[0-9]{1,4}">
</ruleNoTrigger>
</dataRange>
</dataPutRange>
</dataPut>
(3) ポートレットフィルタの定義
データ埋め込み定義を適用するポートレットを設定し,フィルタ機能を有効にします。定義ファイルは,以下のファイルです。
{設定ファイル格納ディレクトリ}¥portlet_filter.xml
(a) ポートレットフィルタ定義ファイルで使用するタグ一覧
タグの一覧を次の表に示します。
表5-28 ポートレットフィルタ定義ファイルのタグ一覧
タグ名 | タグの出現回数 | 属性の出現回数 | 説明 | |||
---|---|---|---|---|---|---|
<portlet-filter> | 1回 | - | ポートレットフィルタ定義ファイルのルートタグです。 | |||
<filter> | 0回以上 | - | ポートレットフィルタ定義情報の親タグです。 | |||
<filter-name> | 1回 | - | ポートレットフィルタ名を指定します。 | |||
<filter-class> | 1回 | - | ポートレットフィルタの実装クラスを指定します。スマートナビゲーション機能では以下のクラス名を指定してください。 jp.co.hitachi.soft.portal.portlet.filter.DataPutFilter | |||
<init-param> | 0回以上 | - | ポートレットフィルタのパラメタ(フィルタ固有の情報)についての定義です。 | |||
<param-name> | 0回以上 | - | パラメタのプロパティ名を指定します。 スマートナビゲーション機能では以下のプロパティ名を定義することができます。
| |||
<param-value> | 0回以上 | - | パラメタのプロパティ値を指定します。 <param-name>に指定したプロパティ名に対応する値を指定します。 プロパティ値は,ポートレットフィルタ単位で決められます。ただし,「hptl」で始まる値は予約語のため指定できません。スマートナビゲーション機能では以下のプロパティ値を指定することができます。
| |||
</init-param> | 0回以上 | - | 終了タグです。 | |||
</filter> | 0回以上 | - | 終了タグです。 | |||
<filter-mapping> | 0回以上 | - | ポートレットフィルタ定義情報の親タグです。 | |||
<filter-name> | 1回以上 | - | フィルタ名を指定します。複数指定することで,ポートレットに対して複数のフィルタを適用することができます。 | |||
<portlet-name> | 1回 | - | フィルタを適用するポートレット名を指定します。標準APIポートレットの場合は,ポートレットGUIDを指定します。 | |||
</filter-mapping> | 0回以上 | - | 終了タグです。 | |||
</portlet-app> | 1回 | - | 終了タグです。 |
(b) サンプルのポートレットフィルタ定義ファイル
サンプルのポートレットフィルタ定義ファイルを次に示します。サンプルでは,Sample1ポートレットにフィルタを定義しています。
<?xml version="1.0" encoding="UTF-8"?>
<portlet-filter>
<filter>
<filter-name>SampleFilter</filter-name>
<filter-class>jp.co.hitachi.soft.portal.portlet.filter.DataPutFilter</filter-class>
<init-param>
<param-name>conf_file</param-name>
<param-value>C:/Program Files/Hitachi/CosmiPortal/conf/data_mount.xml</param-value>
</init-param>
<init-param>
<param-name>reload</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SampleFilter</filter-name>
<portlet-name>Sample1</portlet-name>
</filter-mapping>
</portlet-filter>
(4) WebAPI定義
連携するサイトにアクセスするためのシナリオを定義します。定義ファイルは以下のファイルです。
{設定ファイル格納ディレクトリ}¥webapi.xml
(a) WebAPI定義ファイルで使用するタグ一覧
タグの一覧を次の表に示します。
表5-29 WebAPI定義ファイルのタグ一覧
タグ名 | タグの出現回数 | 属性の出現回数 | 説明 | ||||||
---|---|---|---|---|---|---|---|---|---|
<webapis> | 1回 | - | WebAPI定義ファイルのルートタグです。 | ||||||
<setting_menu_titles> | 1回 | 0または1回 | スマートナビゲーションの入力情報設定メニューの表示名の定義です。 属性iconにメニューに表示するアイコンを指定することができます。アイコンは,{PROJECT_HOME}からのパスを記述してください。 | ||||||
<setting_menu_title> | 1回以上 | 1回 | メニューに表示する文字列を指定します。 属性langに設定メニューの表示文字列の言語を指定します。 属性valueに属性langで指定した言語の表示名を指定します。スマートナビゲーションメニューに表示されるため文字数の多い表示名を指定するとメニュー幅が広がるため注意してください。 | ||||||
</setting_menu_titles> | 1回 | - | 終了タグです。 | ||||||
<webapi> | 1回以上 | 1回 | WebAPI定義のタグ。メニュー単位に作成します。 属性idにWebAPIのIDを指定します。IDは半角英数字64文字以内でWebAPI定義ファイル内で一意な値を指定してください。※1 | ||||||
<titles> | 1回 | 0または1回 | メニューに表示するタイトルの定義です。 属性iconにメニューに表示するアイコンを指定することができます。アイコンは,{PROJECT_HOME}からのパスを記述してください。指定したパスにアイコンが存在しない場合は,メニューが正しく表示されなくなる場合があります。 | ||||||
<title> | 1回以上 | 1回 | メニューに表示する言語別タイトルを指定します。 属性langにメニュータイトルの言語を指定します。 属性valueに属性langで指定した言語のタイトルを指定します。スマートナビゲーションメニューに表示されるため文字数の多いタイトルを指定するとメニュー幅が広がるため注意してください。 | ||||||
</titles> | 1回 | - | 終了タグです。 | ||||||
<user_permission> | 0または1回 | 1回 | メニューの表示制御を行うクラスの定義です。属性classNameに呼び出すクラス名を指定してください。 メニューの表示制御を行うクラスの作成方法については,「5.6.5 ユーザ編集クラスの作成方法」を参照してください。 | ||||||
<webapi_parameters> | 1回 | - | シナリオ実行時に使用するデータ格納変数定義のルートタグです。 | ||||||
<webapi_parameter> | 1回以上 | 1回 | シナリオ実行時に使用するデータ格納変数の定義です。 属性nameに変数名を指定してください。変数名には,半角英数字および'_'(アンダーバー)を使用することができます。※1 属性data_typeには変数に格納するデータ型を指定します。 | ||||||
</webapi_parameters> | 1回 | - | 終了タグです。 | ||||||
<uoc_parameters> | 0または1回 | - | シナリオ実行時に呼び出すクラス定義のルートタグです。 | ||||||
<uoc_parameter> | 1回以上 | - | シナリオ実行時に呼び出すユーザ編集クラスを指定します。 属性nameに呼び出したユーザ編集クラスの返却値を格納するデータ格納変数の変数名を指定してください。変数名には,半角英数字および'_'(アンダーバー)を使用することができます。※1 属性classNameに呼び出すユーザ編集クラスのクラス名を指定してください。 属性methodNameに呼び出すユーザ編集クラスのメソッド名を指定してください。 属性argDataNamesにメソッドに渡す引数指定します。複数指定する場合は,コンマ(,)区切りで指定してください。データ格納変数,予約変数および文字列を指定することができます。データ格納変数は<webapi_parameter>タグで定義してください。 | ||||||
</uoc_parameters> | 0または1回 | - | 終了タグです。 | ||||||
<scenario> | 1回 | - | シナリオ定義のルートタグです。 | ||||||
<new_window/> | 0または1回 | 0または1回 | メニューを選択した時に新しいウィンドウを開く場合に定義するタグです。 属性nameには新しく開くウィンドウのウィンドウ名を指定します。省略した場合は,"_blank"が指定された時と同じ動作をします。 属性optionには新しく開くウィンドウのスタイルを指定します。 | ||||||
<request> | 1回以上,20回以下 | 0または1回 | 送信するリクエストの定義です。 属性encodeに送信するリクエストをURLエンコードする際の文字コードを指定します。以下のエンコードを指定することができます。
| ||||||
<uri> | 1回 | 1回 | リクエストを送信するURLの定義です。 属性base_pathにURLの先頭部分またはすべての部分を指定します。子要素のpathが指定されている場合は,本属性の末尾にpathで指定した文字列が付加されます。 | ||||||
<path> | 0回以上 | 1回 | リクエストを送信するURLに付加する文字列を指定します。 属性segmentにURLの末尾に付加する文字列を指定します。 このタグを複数定義した場合は,定義した順にURLに付加します。 | ||||||
</uri> | - | 終了タグです。 | |||||||
<method> | 0または1回 | 1回 | 送信するリクエストのメソッドを指定します。 属性typeにメソッドを指定します。以下のメソッドが指定できます。
| ||||||
<request_parameters> | 0または1回 | - | 送信するリクエストのパラメタ定義です。 | ||||||
<user_input_titles> | 0または1回 | - | パラメタ入力画面に表示するタイトルの定義です。 | ||||||
<user_input_title> | 1回以上 | 1回 | パラメタ入力画面に表示する言語別タイトルを指定します。 属性langにタイトルの言語を指定します。 属性valueに属性langで指定した言語のタイトルを指定します。 | ||||||
</user_input_titles> | 0または1回 | - | 終了タグです。 | ||||||
<user_input_parameters> | 0または1回 | - | ユーザが入力するリクエストパラメタの定義です。 | ||||||
<user_input_parameter> | 1回以上 | 0または1回 | ユーザが入力するリクエストパラメタを指定します。 属性titleに入力項目名を指定します。 属性nameにリクエストパラメタ名を指定します。※1 属性valueに入力項目のデフォルト値を設定します。 属性typeに入力項目のタイプを指定します。以下のタイプを指定することができます。
| ||||||
</user_input_parameters> | 0または1回 | - | 終了タグです。 | ||||||
<ordinary_parameters> | 0または1回 | - | 送信するリクエストパラメタの定義です。 | ||||||
<ordinary_parameter> | 1回以上 | 1回 | 送信するリクエストパラメタの定義です。 属性nameにリクエストパラメタ名を指定します。※1 属性valueにパラメタ値を指定します。データ格納変数および文字列を指定することができます。データ格納変数は<webapi_parameter>タグで定義してください。 | ||||||
</ordinary_parameters> | 0または1回 | - | 終了タグです。 | ||||||
<response_checks> | 0または1回 | - | レスポンスチェックの定義です。 送信したリクエストに対するレスポンスのチェックを行う場合に定義します。 | ||||||
<response_check> | 1回以上 | 1回 | レスポンスチェックの定義です。 属性ng_key_wordにレスポンスに含まれていたらエラーとするキーワードを指定します。意図しないキーワードをエラーとしないため,2文字以上の文字列を指定してください。 属性error_messageにレスポンスにエラーとするキーワードが含まれている場合にエラー画面に表示するメッセージを指定します。 | ||||||
</response_checks> | 0または1回 | - | 終了タグです。 | ||||||
</request> | 1回以上,20回以下 | - | 終了タグです。 | ||||||
</scenario> | 1回 | - | 終了タグです。 | ||||||
</webapi> | 1回以上 | - | 終了タグです。 | ||||||
<webapis> | 1回 | - | 終了タグです。 |
(b) サンプルのWebAPI定義ファイル
サンプルのWebAPI定義ファイルを次に示します。サンプルでは,旅費を清算するメニューの定義をしています。
<?xml version="1.0" encoding="UTF-8"?>
<webapis>
<setting_menu_titles icon="images/ico_setting.gif">
<setting_menu_title lang="ja" value="設定情報変更" />
</setting_menu_titles>
<webapi id="ryohiohi01">
<titles>
<title lang="ja" value="旅費を精算する" />
</titles>
<webapi_parameters>
<webapi_parameter name="s" data_type="place" />
<webapi_parameter name="d" data_type="date1" />
</webapi_parameters>
<scenario>
<new_window />
<request encode="UTF-8">
<uri base_path="http://ryohi.co.jp/" >
<path segment="ryohi" />
</uri>
<method type="POST" />
<request_parameters>
<ordinary_parameters>
<ordinary_parameter name="date" value="$d" />
<ordinary_parameter name="to" value="$s" />
<ordinary_parameter name="ln" value="ja" />
</ordinary_parameters>
</request_parameters>
</request>
</scenario>
</webapi>
</webapis>