Hitachi

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


5.2.2 outputToNodeメソッド

入出力プラグインを配置したノードに遷移するときに,遷移先ノードに情報を出力する処理を実行します。

ノード遷移時に,遷移先ノードに外部システムから取得したデータを反映するなど,データ参照系の処理をこのメソッドで実装すると効果的です。

合流ノードが遷移した経路ごとに入出力プラグインの処理を切り替えたい場合は,入出力プラグインのoutputToNodeメソッドで遷移した経路を遷移元ノードから判断し,処理を切り替えるようにしてください。

outputToNodeメソッドの注意事項

なお,メソッドの実行結果はエラーのほかに,正常,警告があります。

〈この項の構成〉

(1) 形式

public Map<String, Object> outputToNode(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キーの指定例については,「5.2 IIoPluginController(サーバ処理実装インタフェース)」のinputFromNodeメソッドの指定例を参照してください。

(b) param

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

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

項番

キー名

説明

1

ucnp.next.params.map

Map<String,String>

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

  • キー

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

  • 出力パラメタに関連づけられたガイドの,遷移前の時点のキャッシュ値

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

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

2

ucnp.button.type

String

次のどれか

  • "start"

  • "show_next_page"

  • "show_previous_page"

  • "show_complete_page"

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

  • "start"

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

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

  • "show_next_page"

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

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

  • "show_previous_page"

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

  • "show_complete_page"

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

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

3

ucnp.isdirectjump

String

次のどちらか

  • "true"

  • "false"

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

  • "true"

    直接遷移の場合

  • "false"

    直接遷移ではない場合

4

ucnp.current.node.name

String

0文字以上の文字列

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

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

5

ucnp.next.node.name

String

0文字以上の文字列

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

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

6

ucnp.current.node.id

String

0文字以上の文字列

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

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

7

ucnp.next.node.id

String

0文字以上の文字列

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

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

8

ucnp.flow.contents.id

String

1文字以上の文字列

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

9

ucnp.flow.contents.name

String

1文字以上の文字列

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

10

ucnp.flow.contents.execute.id

String

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

11

ucnp.flow.contents.version.id

String

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

12

ucnp.screen.id

String

1文字以上の文字列

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

13

ucnp.screen.ispreview

String

次のどちらか

  • "true"

  • "false"

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

  • "true"

    プレビュー画面

  • "false"

    業務実行画面

14

ucnp.options.param

String

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

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

注※

URLに指定したucnpOptionsパラメタの値を画面ID単位で取得するためのキーです。引数paramにこのキーを指定することで,URLデコードされたucnpOptionsパラメタの値を取得できます。URLにucnpOptionsパラメタを指定していない場合は,nullが返されます。ucnp.options.paramキーの指定例については,「5.2 IIoPluginController(サーバ処理実装インタフェース)」のinputFromNodeメソッドの指定例を参照してください。

(3) 戻り値

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

表5‒8 outputToNodeメソッドの戻り値

項番

キー名

説明

1

ucnp.next.params.map

Map<String, String>

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

  • キー

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

  • 出力パラメタに関連づけられているガイドのキャッシュ値

2

ucnp.error.message

String

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

遷移先ノードに関連づけられている入出力プラグインが,次のどちらかの結果で終了したとき,このキーに設定した文字列がメッセージダイアログに表示されます。

  • どれかの入出力プラグインのoutputToNodeメソッドの実行結果の種別がエラー

  • すべての入出力プラグインのoutputToNodeメソッドの実行結果種別が正常,または警告

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

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

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

3

ucnp.error.type

String

次のどちらか

  • "NG"

  • "WARNING"

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

  • "NG"

    遷移が抑止される

  • "WARNING"

    遷移が抑止されない

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

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

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

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

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

  • nullを指定した

  • 値を指定していない

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

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

    遷移が抑止されない

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

    遷移が抑止される

4

ucnp.next.nodes.active.list

List<String>

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

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

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

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

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

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

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

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

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

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

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

項番

ucnp.error.messageの指定値

ucnp.error.typeの指定値

メソッドの実行結果

ダイアログの表示の有無

ノード遷移の有無

1

指定なし,またはnull

NG

正常

2

WARNING

正常

3

NGおよびWARNING以外

正常

4

指定あり(null以外)

NG

エラー

5

WARNING

警告

6

NGおよびWARNING以外

エラー

(4) 例外

なし