現象型名 比較演算子 比較値
比較値には数値、文字列の指定の他に、モデルが保持する現象型名に対応する観測値、Directive、ServiceSession保持する値を利用することができる。
現象型名 比較演算子 $現象型名 (注1)
現象型名 比較演算子 &Directive
現象型名 比較演算子 @ServiceSessonKey名 (注2)
注1:
モデルフレームワークで利用しているモデル評価式では比較対象の現象型名の記述に${現象型名}での記述が許されるが、ServiceSession条件式内のモデル評価式では利用することができない。
注2:
モデルフレームワーク内のモデル評価式では指定できない。サービス記述時のみ利用できる。
モデル評価式で使用可能な比較演算子は下記の通り(ServiceSession条件式で記述可能な演算子に同じ)。
演算子 概要
-------------------------------------------------------------------------------------------------------
> 評価対象が比較値よりも大きい
< 評価対象が比較値よりも小さい
>= 評価対象が比較値よりも大きいか等しい
<= 評価対象が比較値よりも小さいか等しい
= 評価対象と比較値が等しい
!= 評価対象が比較値と等しくない
like 評価対象が比較値の文字列を含む
in 評価対象が比較値の集合のいずれかに該当する(比較値が専用の記述形式となる)
not in 評価対象が比較値の集合のいずれにも該当しない(比較値が専用の記述形式となる)
is null 評価対象が存在しない
is not null 評価対象が存在する
is changed 評価対象のモデルまたは、パス指定された現象型名に対応する観測値が変更されている
is not changed 評価対象のモデルまたは、パス指定された現象型名に対応する観測値が変更されていない
is space 評価対象の値がホワイトスペースである
is not space 評価対象の値がホワイトスペースでない
記述例1:比較値
@交通費精算書{ 支払額 = 100 }
@交通費精算書{ 作成日 >= '2004/01' and 作成日 < '2004/05/01' }
記述例1の内容は、モデル評価を使用しない下記の条件式と等価である。
@交通費精算書/支払額 = 100
@交通費精算書/作成日 >= '2004/01' and @交通費精算書/作成日 < '2004/05/01'
記述例2:ServiceSessoinキーの保持する値と比較
@交通費精算書{ 支払額 = @支払額 }
@交通費精算書{ 作成日 >= @検索開始日 and 作成日 < @検索終了日 }
記述例3:同じモデル内の現象型同士を比較
モデルに対する評価式の右辺値にはモデル内の他の現象型の値を指定することもできる。
その場合は、右辺値の前に$で指定する。
@交通費精算書{ 作成者No != $最終更新者No }
記述例3の内容は、モデル評価式を利用しない下記の記述と等価である。
@交通費精算書/作成者No != @交通費精算書/最終更新者No