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属性の詳細についてはこちらを参照
©Camel engineering LLP