Hitachi

JP1 Version 12 JP1/Navigation Platform ナビゲーション プラットフォーム 開発ガイド


5.2.1 inputFromNodeメソッド

入出力プラグインを配置したノードからほかのノードに遷移するときに,遷移元ノードの情報を取得して入力する処理を実行します。

ノード遷移時に,遷移元ノードの情報を取得して外部システムと連携するなどの,データ更新系の処理をこのメソッドで実装すると効果的です。

inputFromNodeメソッドの注意事項

〈この項の構成〉

(1) 形式

public Map<String, Object> inputFromNode(HttpSession session, Map<String, Object> param);

(2) 引数

(a) session

現在のセッションが格納されます。プラグインの中で取得したHttpSessionオブジェクトに対してsetAttribute()メソッドを実行する場合,setAttribute()メソッドの引数nameに次の名前を指定しないでください。

  • "ucnp"で始まる名前

  • "java."で始まる名前

  • "javax."で始まる名前

  • "javax.portlet."で始まる名前

  • "hptl"で始まる名前

  • "com.cosminexus"で始まる名前

  • "jp.co.hitachi.soft.portal"で始まる名前

また,URLのリクエストパラメタを利用することもできます。URLのリクエストパラメタを利用する場合は,ucnp.request.optionsキーでucnpOptionsパラメタを取得する必要があります。

ucnpOptionsパラメタは,セッション単位または画面ID単位で取得できます。ucnpOptionsパラメタの値は画面ID単位で取得することを推奨します。画面ID単位で取得する方法については,「(b) param」を参照してください。

セッション単位の取得を推奨しない理由

同一セッションでナビゲーション プラットフォームの画面を複数表示した場合,あとから操作した画面のucnpOptionsパラメタの値がHTTPセッションに上書きされ,前に操作した画面のucnpOptionsパラメタの情報が削除されるためです。

ucnp.request.optionsキー

セッションから,URLに指定したucnpOptionsパラメタの値を取得するためのキーです。HttpSession.getAttribute()メソッドにこのキーを指定することで,URLデコードされたucnpOptionsパラメタの値を取得できます。URLにucnpOptionsパラメタを指定していない場合は,nullを返します。

  • ucnp.request.optionsキーの指定例(セッション単位)(非推奨)

public class IoPluginController implements IIoPluginController {
 
    /**
     * 入出力プラグインのサーバ処理を実行します。
     * 
     * @param session
     *            現在のセッションです。
     * @param param
     *            クライアントから送信されるパラメタです。
     */
    public Map<String, Object> inputFromNode(HttpSession session, Map<String, Object> param){
 
        /* 現在のセッションからucnpOptionsパラメタの値を取得します。 */
        String ucnpOptions = (String) session.getAttribute("ucnp.request.options");
        if (ucnpOptions != null) {
            /* ucnpOptionsパラメタが指定されていたら,その値に対する処理を記述します。 */
            ・・・
        }
    }
}

(b) param

入出力プラグインの実行時に,クライアントから送信される情報が格納されます。詳細を次の表に示します。paramパラメタは更新しないでください。

表5‒2 paramに格納されるキー(inputFromNodeメソッド)

項番

キー名

説明

1

ucnp.current.params.map

Map<String,String>

  • キー:1文字以上の文字列

  • 値:0文字以上の文字列

入出力プラグインの実行時に,次に示すキーと値を対にしたMapとして渡されます。

  • キー

    入出力プラグインの入力パラメタ名

  • 入力パラメタに関連づけられたガイドのキャッシュ値

ガイドに関連づけられていないパラメタはキーに含まれません。

ガイドパーツのキャッシュ値については「(5) ガイドパーツのキャッシュ値」を参照してください。

2

ucnp.current.params.type.map

Map<String,String>

  • キー:1文字以上の文字列

  • 値:0文字以上の文字列

入出力プラグインの実行時に,次に示すキーと値を対にしたMapとして渡されます。

  • キー

    入出力プラグインの入力パラメタ名

  • 入力パラメタに関連づけられたガイドの型名

ガイドに関連づけられていないパラメタはキーに含まれません。

ガイドパーツの型名については「(6) ガイドパーツの型名」を参照してください。

3

ucnp.button.type

String

次のどれか

  • "start"

  • "show_next_page"

  • "show_previous_page"

  • "show_complete_page"

クリックされたボタンの種別,または遷移の種別を示します。

  • "start"

    ターミナルノード(開始)からプロセスノードに遷移する。

    または,ターミナルノード(開始)に接続されていない先頭のプロセスノードを表示する。

  • "show_next_page"

    ボタンをクリックする,もしくは直接ノードを選択することで次のノードに遷移する。

    または,遷移先のノードが存在しているプロセスノード,もしくは[戻る]ボタンが表示になっているプロセスノードに遷移する。

  • "show_previous_page"

    ボタンをクリックする,または直接ノードを選択することで前のノードに遷移する。

  • "show_complete_page"

    [完了]ボタンが表示されているノードに遷移する。

    または,遷移先ノードが存在しない,かつ[戻る]ボタンが非表示になっているプロセスノードに遷移する。

4

ucnp.isdirectjump

String

次のどちらか

  • "true"

  • "false"

遷移の種別が直接遷移かどうかを示します。

  • "true"

    直接遷移の場合

  • "false"

    直接遷移ではない場合

5

ucnp.current.node.name

String

0文字以上の文字列

遷移元のガイドに対応したノードの名称が渡されます。

名称が設定されていないノードの場合は,空文字が渡されます。

6

ucnp.next.node.name

String

0文字以上の文字列

遷移先のガイドに対応したノードの名称が渡されます。

名称が設定されていないノードの場合は,空文字が渡されます。

7

ucnp.current.node.id

String

0文字以上の文字列

遷移元のガイドに対応したノードIDが渡されます。

ノードIDが設定されていない場合は,空文字が渡されます。

8

ucnp.next.node.id

String

0文字以上の文字列

遷移先のガイドに対応したノードIDが渡されます。

ノードIDが設定されていない場合は空文字が渡されます。

9

ucnp.flow.contents.id

String

1文字以上の文字列

選択中の業務コンテンツの業務コンテンツIDが渡されます。

10

ucnp.flow.contents.name

String

1文字以上の文字列

選択中の業務コンテンツの業務名が渡されます。

11

ucnp.flow.contents.execute.id

String

業務コンテンツの実行時に割り当てられるID(業務実行ID)です。

12

ucnp.flow.contents.version.id

String

実行中の業務コンテンツのバージョンIDです。

13

ucnp.screen.id

String

1文字以上の文字列

業務コンテンツを実行している画面を一意に識別するID(画面ID)が渡されます。

14

ucnp.screen.ispreview

String

次のどちらか

  • "true"

  • "false"

業務コンテンツを実行している画面がプレビュー画面かどうかを示します。

  • "true"

    プレビュー画面

  • "false"

    業務実行画面

15

ucnp.options.param

String

画面ID単位で取得したucnpOptionsパラメタのURLデコードした値を示します。

ucnpOptionsパラメタが指定されていない場合,このキーは設定されません。

注※

URLに指定したucnpOptionsパラメタの値を画面ID単位で取得するためのキーです。引数paramにこのキーを指定することで,URLデコードされたucnpOptionsパラメタの値を取得できます。URLにucnpOptionsパラメタを指定していない場合は,nullが返されます。

  • ucnp.options.paramキーの指定例(画面ID単位)(推奨)

public class IoPluginController implements IIoPluginController {
    /**
     * 入出力プラグインのサーバ処理を実行します。
     *
     * @param session
     *            現在のセッションです。
     * @param param
     *            クライアントから送信されるパラメタです。
     */
   public Map<String, Object> inputFromNode(HttpSession session,Map<String, Object> param) {
        /* 引数からucnpOptionsパラメタの値を取得します。 */
        String ucnpOptions = (String) param.get("ucnp.options.param");
        if (ucnpOptions != null) {
            /* ucnpOptionsパラメタが指定されていたら,その値に対する処理を記述します。 */
        }
    }
}

(3) 戻り値

入出力プラグインの実行結果がMapで返されます。詳細を次の表に示します。これ以外の値は無視されます。

表5‒3 inputFromNodeメソッドの戻り値

項番

キー名

説明

1

ucnp.error.message

String

0文字以上の文字列

inputFromNodeメソッドを実行したあとに利用者にメッセージを表示したい場合,このキーを設定してください。

遷移元のノードに関連づけられたすべての入出力プラグインのinputFromNodeメソッドを実行したあとに,このキーに設定した文字列がメッセージダイアログに表示されます。

このキーを設定するときは,次の点に注意してください。

  • 改行は「\n」で指定してください。

  • 複数の入出力プラグインでこのキーを設定している場合,設定した文字列を改行で連結した値が一つのメッセージダイアログに表示されます。メッセージが長過ぎると一部が画面に表示されないときがあります。メッセージは画面に表示できる長さにしてください。

2

ucnp.error.type

String

次のどちらか

  • "NG"

  • "WARNING"

ucnp.error.messageで設定したメッセージダイアログが表示されたあとに,ノード遷移を抑止するかどうかを設定してください。

  • "NG"

    遷移が抑止される

  • "WARNING"

    遷移が抑止されない

次の場合このキーに指定した値は無視されます。

  • ucnp.error.messageに値を設定していない

  • ucnp.error.messageにnullを指定している

次の場合"NG"が仮定されます。

  • "NG"および"WARNING"以外の文字列を指定した

  • nullを指定した

  • 値を指定していない

複数の入出力プラグインの実行時は,設定によって次のように動作が異なります。

  • すべての入出力プラグインで"WARNING"を指定している

    遷移が抑止されない

  • 入出力プラグインに"WARNING"が一つも指定されていない

    遷移が抑止される

3

ucnp.error.params.list

List<String>

1文字以上の文字列

ノード遷移が抑止されているガイドパーツを強調表示したい場合,そのパーツに関連づけた入力パラメタのリストを,このキーの値に設定してください。色の付いた枠で強調表示されます。

強調表示時の枠の色のデフォルトは赤色です。この枠の色はユーザプロパティファイル(ucnp_user.properties)のucnp.base.client.erroritem.emphasis.border.colorプロパティで変更できます。

ユーザプロパティファイルについては,マニュアル「ナビゲーション プラットフォーム 導入から運用まで」を参照してください。

このキーは,ucnp.error.messageキーと一緒に戻り値のMapに設定してください。ucnp.error.messageキーを設定していない場合は,このキーを設定しても,強調表示されません。

ノード遷移が抑止されていないときは,このキーに指定した値は無視されます。

4

ucnp.next.nodes.active.list

List<String>

遷移先ノードを指定してください。

リストに含まれるプロセスノードIDに該当する[次へ]ボタンを活性化し,リストに含まれないボタンを非活性化します。

全ボタンを活性化する場合はnullを指定してください。

全ボタンを非活性化する場合は空のリストを指定してください。

複数のプラグインから同時にこのキーが指定された場合,1つでも活性化が指定されていれば,ボタンを活性化します。

JavaScriptプラグインから遷移先ノード指定をする場合,デフォルトでは「戻る」場合には実行されず全ボタンが活性化します。

「戻る」場合にも遷移先ノード指定する場合は「戻る」ときに,実行チェックボックスを有効にした上でこの指定をしてください。

この指定によって遷移できないノードとなったノードは,直接遷移不可能となりチェックマークも削除されます。

直接遷移先ノードが経路上のプラグインの指定によって遷移不可能となった場合は,KDCZ00362-Eのエラーとなります。エラー後の動作はucnp.error.typeに"NG"を指定した場合と同様です。

inputFromNodeメソッドの戻り値と遷移元ノードに関連づけた入出力プラグイン実行後の動作を次の表に示します。

表5‒4 戻り値と遷移元ノードに関連づけた入出力プラグイン実行後の動作

項番

ucnp.error.messageの指定値

ucnp.error.typeの指定値

ucnp.error.params.listの指定値

メソッドの実行結果

ダイアログの表示の有無

ノード遷移の有無

強調表示の有無

1

指定なし,またはnull

NG

指定あり(null以外)

正常

2

指定なし,またはnull

正常

3

WARNING

指定あり(null以外)

正常

4

指定なし,またはnull

正常

5

NGおよびWARNING以外

指定あり(null以外)

正常

6

指定なし,またはnull

正常

7

指定あり(null以外)

NG

指定あり(null以外)

エラー

8

指定なし,またはnull

エラー

9

WARNING

指定あり(null以外)

警告

10

指定なし,またはnull

警告

11

NGおよびWARNING以外

指定あり(null以外)

エラー

12

指定なし,またはnull

エラー

(4) 例外

なし

(5) ガイドパーツのキャッシュ値

プラグインで保持されるガイドパーツのキャッシュ値を次の表に示します。

表5‒5 各ガイドパーツのキャッシュ値

項番

ガイドパーツの種類

キャッシュ値

初期値

1

固定テキスト

表示文字列

[属性の設定]画面の[表示文字列]テキストボックスに指定した値

2

画像

URLとツールチップの属性値を改行で連結した文字列

(ツールチップが空文字の場合でも,改行コードはキャッシュ値に含まれます。)

[属性の設定]画面の[URL]テキストボックスに指定した値と[ツールチップ]テキストボックスに指定した値を改行で連結した値

3

テキストボックス

テキストボックスに入力されている値

[属性の設定]画面の[初期値]テキストボックスに指定した値

4

テキストエリア

テキストエリアに入力されている値

[属性の設定]画面の[初期値]テキストエリアに指定した値

5

ラジオボタン

■[ラベル情報も格納]が未チェック状態の場合

選択されているラジオボタンの[値]テキストボックスに指定した値

■[ラベル情報も格納]がチェック状態の場合

選択されているラジオボタンの[属性の設定]画面の[表示文字列]テキストボックスに指定した値と[値]テキストボックスに指定した値を改行で連結した文字列

(ラジオボタンが選択されていない場合は空文字)

空文字

6

チェックボックス

■[ラベル情報も格納]が未チェック状態の場合

  • true:チェック状態の場合

  • false:チェック状態でない場合

(どちらの場合も,文字列で半角小文字)

■[ラベル情報も格納]がチェック状態の場合

[属性の設定]画面の[表示文字列]テキストボックスに指定した値と次の値を改行で連結した文字列

  • true:チェック状態の場合

  • false:チェック状態でない場合

(どちらの場合も,文字列で半角小文字)

■[ラベル情報も格納]が未チェック状態の場合

  • true:[初期値をチェック状態にする]チェックボックスがチェック状態の場合

  • false:[初期値をチェック状態にする]チェックボックスがチェック状態でない場合

■[ラベル情報も格納]がチェック状態の場合

[属性の設定]画面の[表示文字列]テキストボックスに指定した値と次の値を改行で連結した文字列

  • true:[初期値をチェック状態にする]チェックボックスがチェック状態の場合

  • false:[初期値をチェック状態にする]チェックボックスがチェック状態でない場合

7

ドロップダウン

選択されている[選択項目一覧]の値

(値にコンマや引用符(")が含まれている場合でも,CSVのエスケープはしないで,そのままの値を指定します。例えば,「神"奈川"」という値をキャッシュ値とする場合も,「"神""奈川"""」にはなりません。)

  • [属性の設定]画面の[選択項目一覧]の値のうち,[親の値]に対応する最初の値(対応する[親の値]がない場合は,空文字)

  • 親ドロップダウンがない場合は,[属性の設定]画面の[選択項目一覧]の値のうち,[親の値]が空文字となっている最初の値

8

ハイパーリンク

アンカーの文字列とURLに指定した値を改行で連結した文字列

(ツールチップは文字列に含まれません。)

  • アンカーの文字列とURLに指定した値を改行で連結した文字列

  • [属性の設定]画面の[アンカー文字列]テキストボックスと[URL]テキストボックスに指定した値

9

インラインフレーム

表示されているページのURL

(フレーム枠の有無は含まれません。)

[属性の設定]画面の[URL]テキストボックスに指定した値

10

HTMLパーツ

表示されているHTMLコンテンツ

[属性の設定]画面の[HTMLソース文字列]テキストボックスに指定した値

全パーツ共通の注意事項

テキストボックスの注意事項

ラジオボタンとチェックボックスの注意事項

ドロップダウンの注意事項

ハイパーリンクの注意事項

(6) ガイドパーツの型名

プラグインで保持されるガイドパーツの型名を次の表に示します。

表5‒6 各ガイドパーツの型名

項番

ガイドパーツの種類

ガイドパーツの型名

1

固定テキスト

Label

2

画像

Image

3

テキストボックス

TextBox

4

テキストエリア

TextArea

5

ラジオボタン

RadioButton

6

チェックボックス

CheckBox

7

ドロップダウン

DropDown

8

ハイパーリンク

HyperLink

9

インラインフレーム

Iframe