5.2.2 outputToNodeメソッド
入出力プラグインを配置したノードに遷移するときに,遷移先ノードに情報を出力する処理を実行します。
ノード遷移時に,遷移先ノードに外部システムから取得したデータを反映するなど,データ参照系の処理をこのメソッドで実装すると効果的です。
合流ノードが遷移した経路ごとに入出力プラグインの処理を切り替えたい場合は,入出力プラグインのoutputToNodeメソッドで遷移した経路を遷移元ノードから判断し,処理を切り替えるようにしてください。
outputToNodeメソッドの注意事項
-
遷移元ノードに入出力プラグインが配置されていて,かつ,先に実行したinputFromNodeメソッドの実行結果がエラーの場合,すべての入出力プラグインの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パラメタは更新しないでください。
項番 |
キー名 |
値 |
説明 |
---|---|---|---|
1 |
ucnp.next.params.map |
Map<String,String> |
入出力プラグインの実行時に,次に示すキーと値を対にしたMapとして渡されます。
ガイドに関連づけられていないパラメタはキーに含めません。 ガイドパーツのキャッシュ値については「5.2.1(5) ガイドパーツのキャッシュ値」を参照してください。 |
2 |
ucnp.button.type |
String 次のどれか
|
クリックされたボタンの種別,または遷移の種別を示します。
|
3 |
ucnp.isdirectjump |
String 次のどちらか
|
遷移の種別が直接遷移かどうかを示します。
|
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 次のどちらか
|
業務コンテンツを実行している画面がプレビュー画面かどうかを示します。
|
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で返されます。詳細を次の表に示します。これ以外の値は無視されます。
項番 |
キー名 |
値 |
説明 |
---|---|---|---|
1 |
ucnp.next.params.map |
Map<String, String> |
入出力プラグインの実行時に,次に示すキーと値を対にしたMapとして渡されます。
|
2 |
ucnp.error.message |
String |
outputToNodeメソッドを実行したあとに利用者にメッセージを表示したい場合,このキーを設定してください。 遷移先ノードに関連づけられている入出力プラグインが,次のどちらかの結果で終了したとき,このキーに設定した文字列がメッセージダイアログに表示されます。
このキーを設定するときは,次の点に注意してください。
|
3 |
ucnp.error.type |
String 次のどちらか
|
ucnp.error.messageに指定したメッセージがダイアログに表示されたあとに,ノード遷移を抑止するかどうかを設定してください。指定できる文字列を次に示します。
次の場合,このキーに指定した値は無視されます。
次の場合,"NG"が仮定されます。
複数の入出力プラグインの実行時は,設定によって次のように動作が異なります。
|
outputToNodeメソッドの戻り値と遷移先ノードに関連づけた入出力プラグイン実行後の動作を次の表に示します。
項番 |
ucnp.error.messageの指定値 |
ucnp.error.typeの指定値 |
メソッドの実行結果 |
ダイアログの表示の有無 |
ノード遷移の有無 |
---|---|---|---|---|---|
1 |
指定なし,またはnull |
NG |
正常 |
無 |
無 |
2 |
WARNING |
正常 |
無 |
無 |
|
3 |
NGおよびWARNING以外 |
正常 |
無 |
無 |
|
4 |
指定あり(null以外) |
NG |
エラー |
有 |
有 |
5 |
WARNING |
警告 |
有 |
無 |
|
6 |
NGおよびWARNING以外 |
エラー |
有 |
有 |
(4) 例外
なし