フィールドの規則を適用するタイミングと場所
フィールドの規則を使用して、作業項目の状態に関係なく作業項目の種類の動作を決定できます。たとえば、アクティブな新規のバグに必須のフィールドは、バグが終了するまで必須であり続けます。
フィールドの規則は、特定の状態、遷移、および理由に従ってスコープすることもできます。特定のフィールドに適用される規則の完全なセットには、次の 4 つのサブセットを加えることができます。
作業項目の種類固有
状態固有
遷移固有
理由固有
作業項目の種類に固有の規則
作業項目の種類に固有の規則は、作業項目が状態モデルのどの位置にあるかに関係なく適用されます。たとえば、<REQUIRED /> 規則では、次のチェックを実行します。
"MyField Value" != NULL
状態固有の規則
状態固有の規則は、作業項目インスタンスが特定の状態にあるときに適用されます。状態固有の規則は、次の条件が true の場合に適用されます。
State field value == "MyState" && "MyField Value" != NULL
遷移固有の規則
遷移固有の規則は、作業項目インスタンスが特定の遷移過程にあるときに適用されます。遷移固有の規則は、次の条件が true の場合に強制的に処理されます。
State field value == "ToState" &&
"Previous State Before Edit/New" == "FromState"
&& "MyField Value" != NULL
理由固有の規則
理由固有の規則は、特定の遷移における特定の理由に対して適用されます。理由固有の規則は、次の条件が true の場合に処理されます。
Reason field == "MyReason" &&
State field value == "ToState" &&
"Previous State Before Edit/New" == "FromState" && "MyField Value" != NULL
フィールドの規則のスコープ
フィールドの規則にスコープを適用するには、STATE、TRANSITION、REASON の各要素内で FIELDS 要素と FIELD (ワークフロー) 要素を使用します。
[!メモ]
ワークフロー内のフィールドを一覧にする場合は、フィールドの参照名だけを指定します。
例
バグがアクティブな状態にあるときに Customer Severity フィールドの変更を禁止する規則を定義する方法を次の例に示します。
<STATE name="Active">
<FIELDS>
<FIELD refname="MyCorp.Severity" >
<READONLY />
</FIELD>
</FIELDS>
</STATE>