Cosminexus V9 ナビゲーション プラットフォーム 開発ガイド

[目次][用語][索引][前へ][次へ]

5.3.1 inputFromNodeメソッド

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

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

inputFromNodeメソッドの注意事項

<この項の構成>
(1) 形式
(2) 引数
(3) 戻り値
(4) 例外

(1) 形式

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

(2) 引数

(a) session

現在のセッションが格納されます。このセッションに対してsetAttribute()メソッドを実行する場合,setAttribute()メソッドの引数nameに次の名前を指定しないでください。

また,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-6 paramに格納されるキー(inputFromNodeメソッド)

項番 キー名 説明
1 ucnp.current.params.map Map<String,String>
  • キー:1文字以上の文字列
  • 値:0文字以上の文字列
入出力プラグインの実行時に,次に示すキーと値を対にした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.current.node.name String
0文字以上の文字列
遷移元のガイドに対応したノードの名称が渡されます。
名称が設定されていないノードの場合は,空文字が渡されます。
4 ucnp.next.node.name String
0文字以上の文字列
遷移先のガイドに対応したノードの名称が渡されます。
名称が設定されていないノードの場合は,空文字が渡されます。
5 ucnp.current.node.id String
0文字以上の文字列
遷移元のガイドに対応したノードIDが渡されます。
ノードIDが設定されていない場合は,空文字が渡されます。
6 ucnp.next.node.id String
0文字以上の文字列
遷移先のガイドに対応したノードIDが渡されます。
ノードIDが設定されていない場合は空文字が渡されます。
7 ucnp.flow.contents.id String
1文字以上の文字列
選択中の業務コンテンツの業務コンテンツIDが渡されます。
8 ucnp.flow.contents.name String
1文字以上の文字列
選択中の業務コンテンツの業務名が渡されます。
9 ucnp.screen.id String
1文字以上の文字列
業務コンテンツを実行している画面を一意に識別するID(画面ID)が渡されます。
10 ucnp.screen.ispreview String
次のどちらか
  • "true"
  • "false"
業務コンテンツを実行している画面がプレビュー画面かどうかを示します。
  • "true"
    プレビュー画面
  • "false"
    業務実行画面
11 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-7 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プロパティで変更できます。
ユーザプロパティファイルについては,マニュアル「Cosminexus V9 ナビゲーション プラットフォーム 導入から運用まで」を参照してください。
このキーは,ucnp.error.messageキーと一緒に戻り値のMapに設定してください。ucnp.error.messageキーを設定していない場合は,このキーを設定しても,強調表示されません。
ノード遷移が抑止されていないときは,このキーに指定した値は無視されます。

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

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

項番 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) 例外

なし