Processing Tagsの実行可否制御(condition)
Processing Tags(check/run/mapping)の実行有無を制御するための実行条件を判定します。
また、データベース操作コマンドのwhere, group, orderでも使用可能です。
- 使用可能箇所
- check, run, mapping, where, group, order
- Sub Tags
- case, else
(記述例)
DataBeanの「FLAG」が0であればrunを実行
<run>
<condition>
<case key="FLAG" val="0" />
</condition>
… 省略
</run>
真の条件判定(case)
conditionタグの中で使用されるSub Tag。条件が「真」の判定を行います。
複数記述することでcase文(OR条件)が表現できます。
- 使用可能箇所
- condition
- 関連タグ
- else
(記述例)
DataBeanの「FLAG」が0、または1であればrunを実行
<run>
<condition>
<case key="FLAG" val="0" type="eq" />
<case key="FLAG" val="1" type="eq" />
</condition>
</run>
属性
- key
- DataBeanの項目名を指定することで、Beanが保有する当該の項目の値を参照できる他、
下記の予約語を使用することができます。
keyでは下記の比較演算子を使用することができます。
- 予約語
- 効果
- @isCreated
- DataBeanのisCreated()が真であるか判定
- @isNotCreated
- DataBeanのisCreated()が偽であるか判定
- @isUpdated
- DataBeanのisUpdated()が真であるか判定
- @isNotUpdated
- DataBeanのisUpdated()が偽であるか判定
- @hasAuthority:{権限}
- 指定した{権限}を保有することを判定
- @hasNotAuthority:{権限}
- 指定した{権限}を保有しないことを判定
- @hasGroupAuthority:{職責}
- 指定した{職責}を保有することを判定
{職責}は{法人CD}:{支社CD}:{部門CD}:{職責}の様式で記述
(例)所属に関係なく職責のみ判定「*:*:*:{職責}」
(例)所属のみ判定「{法人CD}:{支社CD}:{部門CD}:{職責}:*」
(下位互換)1.0.8以前は{部門CD}:{職責}
- @hasGroupAuthority:{職責}
- 指定した{職責}を保有しないことを判定
{職責}は{法人CD}:{支社CD}:{部門CD}:{職責}の様式で記述
(例)所属に関係なく職責のみ判定「*:*:*:{職責}」
(例)所属のみ判定「{法人CD}:{支社CD}:{部門CD}:{職責}:*」
(下位互換)1.0.8以前は{部門CD}:{職責}
※権限関連の機能を使用するには、SESSION情報にUserInfoが初期化されている必要があります。
- val
- 固定値を定義できる他、コマンド・テキストが使用できます。
- type
- ※typeの指定には必ずvalの記述が必要です
typeでは下記の比較演算子を使用することができます。
- 比較演算子
- 効果
- eq
- Key項目とvalの値が等しい
- ne
- Key項目とvalの値が異なる
- like
- Key項目にvalの値が含まれる
- not_like
- Key項目にvalの値が含まれない
- like%
- Key項目の先頭がvalの値で始まる
- not_like%
- Key項目の先頭がvalの値で始まらない
- %like
- Key項目の後尾がvalの値で終わる
- %not_like
- Key項目の後尾がvalの値で終わらない
- when
- 多くのTagsでサポートしている「実行可否判定のための属性」です。(こちらを参照)
値の比較
<case key="{DataBeanの項目名}" val="{比較値}" type="{比較演算子}" />
DataBeanの指定項目の値とvalで定義した値が指定された比較式にて一致するか比較します。
値の有無
<case key="{DataBeanの項目名}" />
val属性を省略した場合は、値があるかないかのNULL判定を行います。
偽の条件判定(else)
conditionタグの中で使用されるSub Tag。条件が「偽」の判定を行います。
複数記述することでcase文(OR条件)が表現できます。
※caseタグの反転比較となります。
- 使用可能箇所
- condition
- 関連タグ
- case
(記述例)
DataBeanの「FLAG」が0、または「STATUS」が9以外であればrunを実行
<run>
<condition>
<case key="FLAG" val="0" type="eq" />
<else key="STATUS" val="9" type="eq" />
</condition>
</run>
属性
- key
- DataBeanの項目名を指定することで、DataBeanが保有する当該の項目の値を参照できる他、
下記の予約語を使用することができます。
keyでは下記の予約語を使用することができます(elseでの使用のため効果が反転されています)。
- 予約語
- 効果
- @isCreated
- DataBeanのisCreated()が偽であるか判定
- @isNotCreated
- DataBeanのisCreated()が真であるか判定
- @isUpdated
- DataBeanのisUpdated()が偽であるか判定
- @isNotUpdated
- DataBeanのisUpdated()が真であるか判定
- @hasAuthority:{権限}
- 指定した{権限}を保有しないことを判定
- @hasNotAuthority:{権限}
- 指定した{権限}を保有することを判定
- @hasGroupAuthority:{職責}
- 指定した{職責}を保有しないことを判定
{職責}は{法人CD}:{支社CD}:{部門CD}:{職責}の様式で記述
(例)所属に関係なく職責のみ判定「*:*:*:{職責}」
(例)所属のみ判定「{法人CD}:{支社CD}:{部門CD}:{職責}:*」
(下位互換)1.0.8以前は{部門CD}:{職責}
- @hasGroupAuthority:{職責}
- 指定した{職責}を保有することを判定
{職責}は{法人CD}:{支社CD}:{部門CD}:{職責}の様式で記述
(例)所属に関係なく職責のみ判定「*:*:*:{職責}」
(例)所属のみ判定「{法人CD}:{支社CD}:{部門CD}:{職責}:*」
(下位互換)1.0.8以前は{部門CD}:{職責}
※権限関連の機能を使用するには、SESSION情報にUserInfoが初期化されている必要があります。
- val
- 固定値を定義できる他、コマンド・テキストが使用できます。
- type
- ※typeの指定には必ずvalの記述が必要です
typeでは下記の比較演算子を使用することができます。
- 比較演算子
- 効果
- eq
- Key項目とvalの値が等しい
- ne
- Key項目とvalの値が異なる
- like
- Key項目にvalの値が含まれる
- not_like
- Key項目にvalの値が含まれない
- like%
- Key項目の先頭がvalの値で始まる
- not_like%
- Key項目の先頭がvalの値で始まらない
- %like
- Key項目の後尾がvalの値で終わる
- %not_like
- Key項目の後尾がvalの値で終わらない
- when
- 多くのTagsでサポートしている「実行可否判定のための属性」です。(こちらを参照)
値の比較
<else key="{DataBeanの項目名}" val="{比較値}" type="{比較演算子}" />
DataBeanの指定項目の値とvalで定義した値が指定された比較式にて不一致か比較します。
値の有無
<else key="{DataBeanの項目名}" />
val属性を省略した場合は、値があるかないかのNULL判定を行います。
複数条件の指定
condition Tagは、複数指定することでOR条件が表現できます。
(記述例)
DataBeanの「STATUS」が9でない、または「FLAG」が1であればrunを実行
<run>
<condition>
<else key="STATUS" val="9" />
</condition>
<condition>
<case key="FLAG" val="1" />
</condition>
… 省略
</run>
複雑な条件の指定
Subタグの
case及び
elseではwhen属性が使用でき、ANDやOR条件の複合条件の判定も行えます。
Command Tagsの実行可否制御(when)
case/elseタグでは、多くの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」の比較となってしまいますが、
{}囲みを使用することで右辺/左辺を気にする必要がなくなります(推奨)。
when属性の詳細についてはこちらを参照