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 左辺に適合 または 右辺に適合

©Camel engineering LLP