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