Apcoordinator ユーザーズガイド
|
目次
|
10.2.2 項目間にまたがる仕様の記述
■条件ブロックを利用する
条件ブロックを利用すると、if文のような制御をすることができます。
次の例では、"sampleProp"
の値が1の場合に、チェックを行います。
<block property="sampleProp" op="EQ" operand="#1" >
<verify property="sampleNumber" op="GE" operand="#0" exception="#ERR01" info="#0以上" />
<verify property="sampleNumber" op="LE" operand="#10" exception="#ERR01" info="#10以下" />
</block>
|
- 条件の記述
- 前項のタグと同様に、
property
、function
、op
、operand
の記述で条件を表します。関係演算の結果が真の場合に、ブロック内の処理が実行されます。
block
タグには、elseに相当する機能はありません。逆の条件のblock
タグを記述してください。
■デシジョンを利用する
XMLデータ仕様記述では、デシジョン表形式の項目関連チェックを記述することができます。
デシジョン表の例
番号
| 項目名
| 値
| デシジョン
|
1
| 便名
| 101便
| ×
|
|
|
|
2
| 便名
| 103便
|
| ×
|
|
|
3
| 便名
| 105便
|
|
| ×
|
|
4
| 便名
| 107便
|
|
|
| ×
|
5
| 予約タイプ
| 一般
| ×
|
|
|
|
6
| 予約タイプ
| スーパーシート
|
|
| ×
|
|
7
| 予約タイプ
| 特別割引
|
| ×
|
| ×
|
エラー条件
| 全席 割引設定
| 特別割引 設定なし
| スーパー シート 設定なし
| 特別割引 設定なし
|
- デシジョン表の見方
- 表の左半分には、条件が並んでいます。デシジョン部分では、それぞれの列にある
"×"
でマークした条件が同時に成立する場合に、最下段に記述したエラーとします。
XMLデータ仕様記述では、以下のように記述します。
<value seq="1" property="flight" op="EQ" operand="#101" />
<value seq="2" property="flight" op="EQ" operand="#103" />
<value seq="3" property="flight" op="EQ" operand="#105" />
<value seq="4" property="flight" op="EQ" operand="#107" />
<value seq="5" property="reservation" op="EQ" operand="#regular" />
<value seq="6" property="reservation" op="EQ" operand="#super" />
<value seq="7" property="reservation" op="EQ" operand="#discount" />
<decision exception="#ERR01" info="#全席割引" >
<status seq="1" require="true" />
<status seq="5" require="true" />
</decision>
<decision exception="#ERR02" info="#特割なし" >
<status seq="2" require="true" />
<status seq="7" require="true" />
</decision>
<decision exception="#ERR03" info="#スーパーなし" >
<status seq="3" require="true" />
<status seq="6" require="true" />
</decision>
<decision exception="#ERR02" info="#特割なし" >
<status seq="4" require="true" />
<status seq="7" require="true" />
</decision>
|
value
value
タグは、デシジョン表の条件(例では行に相当)を表します。seq
アトリビュートで条件の番号を指定します。
条件は、property
、function
、op
、operand
で記述します。
decision
decision
タグは、デシジョン表の結果(例ではデシジョンの列)を表します。デシジョンの成立時にエラーにする場合は、exception
、error
、info
のアトリビュートで記述します。デシジョンの成立時に項目への代入をする場合は、value
、valueFunction
、target
で記述します。
status
status
タグは、デシジョンの判定条件を指定します。seq
アトリビュートは、value
タグで指定したseq
に対応します。require
アトリビュートはtrue
、false
で、その条件の真偽を指定します。
- 上記の例では、
value
タグを順に評価し、例えばflight
(便名)が"101"
の場合に、seq"1"
の条件が真となります。reservation
(予約タイプ)が"regular"
(一般)の場合に、seq"5"
の条件が真となります。
最初のdecision
タグは、status
タグの指定により、seq"1"
が真かつseq"5"
が真の場合に実行されます。この場合は、exception
アトリビュートが指定されているため、例外ESpecResultException
となります。
status
タグのrequire
アトリビュートでは、"true"
、"false"
をそのまま指定します。operand
アトリビュートの定数指定では"#true"
と指定しますが、status
タグでは"#"
を付けないで指定します。
All Rights Reserved, Copyright © 富士通株式会社 2000-2005