Command Tagsの実行可否制御(when)
多くのTagsで実行可否判定のための属性を使用することができます。
when属性を用いると、数式として複合的な条件を判定することができます。
(例)(FLAG eq 0 OR FLAG eq 1) AND {@attribute:MAX_AMOUNT} lt {@resource:AMOUNT}
※比較の左辺はDataBean項目名またはCommand Textを指定し、
右辺は固定値またはCommand Textを指定します。
💡FLAG eq FLAG_0のように右辺・左辺共にBean項目名を記載した場合は
DataBean項目:FLAGの値と文字列「FLAG_0」の比較となってしまいますが、
{}囲みを使用することで右辺/左辺を気にする必要がなくなります(推奨)。
Command Text
下記のコマンド・テキストを使用することで様々な数式を定義することができます。
コマンド・テキストは、when属性やJSPなどのテキスト中に記載する場合は{}で囲み
val属性など単一で使用する場合は{}を付けずに使用します。
- {@parameter:項目名}
- Rule実行時のパラメータ・コンテナの値を参照
@parameter:USER_CODE
- {@response:項目名}
- Rule実行時のレスポンス・コンテナの値を参照
※current属性にてリストを指定した場合、
処理結果の参照は対象行の指定が必要です。
(例)selectタグのid="Sample"で単一検索(fill)された
レコードの値"code"を参照
@response:@RowIndex$Sample$ID
- {@resource:DataBean項目名}
- DataBeanの値を参照 ※左辺の項目指定において@resource:は省略可
- {@val:固定値}
- 固定値を明示的に指定(左辺に固定値を指定したい場合などに使用)
- {@context:SESSION項目名}
- SESSIONの値を参照(*1)
Contextの予約語
CORPORATE_CODE :法人ID
CORPORATE_NAME :法人名
GROUP_CODE :所属部門ID(兼務の場合は先頭)
GROUP _NAME :所属部門名(兼務の場合は先頭)
USER_CODE :ユーザーID
USER _NAME :ユーザー名
USER_EMAIL :メールアドレス
USER_PHONE :電話番号
その他 :指定キーでSESSION(*1)に保存された値
(*1) SESSIONはUSAX-WEBパッケージ利用時のみ使用可能です。
以下の実装にて取得したMap内にsessionで管理したい値を管理します。
// session情報
final Map<String, Object> session
= super.getUserIO().getSessionAttributeDataMap();
- {@attribute: アトリビュートID}
- アトリビュート定義の名称を参照
- {@message: メッセージID}
- メッセージ定義の値を参照
比較演算子
比較演算子 |
効果 |
比較演算子 |
効果 |
eq |
左辺と右辺は等しい |
ne |
左辺と右辺は異なる |
ge |
左辺は右辺以下 |
le |
右辺は左辺以下 |
gt |
左辺は右辺未満 |
lt |
右辺は左辺未満 |
like |
左辺に右辺が含まれる |
not like |
左辺に右辺が含まれない |
like% |
左辺の先頭が右辺で始まる |
not like% |
左辺の先頭が右辺で始まらない |
%like |
左辺の後尾が右辺で終わる |
%not like |
左辺の後尾が右辺で終わらない |
結合条件
結合条件 |
効果 |
結合条件 |
効果 |
AND |
左辺に適合 かつ 右辺に適合 |
OR |
左辺に適合 または 右辺に適合 |