条件付き値および条件付き規則の割り当て
更新 : 2011 年 1 月
WHEN、WHENNOT、WHENCHANGED、WHENNOTCHANGED の各要素を使用して、条件に従って実行される規則を定義できます。 これらの規則を使用して、定義された句が True の場合に実行される要素を定義します。 特定のフィールドに割り当てられている値またはユーザーが特定のフィールドを変更したかどうかに基づいて、条件を定義できます。 たとえば、依存選択リストを作成して、詳細なセキュリティやカスタム動作を指定できます。
フィールドの条件は、追加の要素として FIELD (定義) 要素または FIELD (ワークフロー) 要素内に記述します。 これらの要素の詳細については、「FIELD (定義) 要素」および「FIELD (ワークフロー) 要素」を参照してください。
WHEN 句の簡単な例を次に示します。
<FIELD . . . >
<WHEN field="referenceName" value="yyy">
</FIELD>
この句は、フィールド refname の値が "yyy" の場合は、この FIELD 要素内のすべてが適用されることを意味します。 フィールドは、有効なフィールド参照名である必要があります。 詳細については、「作業項目トラッキング オブジェクトの名前付け規則」を参照してください。
注意
value 属性は、大文字と小文字を区別しません。 そのため、フィールド参照名に "YYY" が設定されている場合、値 "yyy" または "YYY" で一致します。
このトピックの内容
条件付き要素の構文構造
依存必須フィールドの定義
条件付き選択リストの定義
ユーザーが別のフィールドを変更した場合のフィールドの定義 (WHENCHANGED)
ユーザーがフィールドを変更しない場合に基づくフィールド値の定義 (WHENNOTCHANGED)
条件付き要素の構文構造
次の表に、FIELD (定義) 要素または FIELD (ワークフロー) 要素の子要素として指定できる条件付き規則を示します。 これらの要素では、次の属性のいずれかまたは両方を使用できます。
field: フィールドを説明する文字列です。 1 ~ 255 文字を含む必要があります。
value: 指定されたフィールドにこの値を設定すると、WHEN 要素および WHENNOT 要素の規則が現在のフィールドに適用されます。
要素 |
構文 |
説明 |
---|---|---|
WHEN |
|
別のフィールドが特定の値を持つときに現在のフィールドに適用する 1 つまたは複数の規則を指定します。 現在のフィールドは、親要素によって定義されます。 この指定されたフィールドに指定された値を設定すると、この要素の規則が現在のフィールドに適用されます。 |
WHENNOT |
|
現在のフィールドに 1 つ以上の規則を適用する条件を指定します。 規則は、別のフィールドの値が変更されるときに現在のフィールドに適用されます。 現在のフィールドは、親要素によって定義されます。 指定されたフィールドに指定された値が設定されていないときに、この要素に含まれる規則が現在のフィールドに適用されます。 |
WHENCHANGED |
|
現在のフィールドに 1 つ以上の規則を適用する条件を指定します。 規則は、作業項目のリビジョンで別のフィールドの値が変更される場合に現在のフィールドに適用されます。 現在のフィールドは、親要素によって定義されます。 |
WHENNOTCHANGED |
|
現在のフィールドに 1 つ以上の規則を適用する条件を指定します。 規則は、作業項目のリビジョンで別のフィールドの値が変更されない場合に現在のフィールドに適用されます。 現在のフィールドは、親要素によって定義されます。 |
次の表に、WHEN、WHENNOT、WHENCHANGED、または WHENNOTCHANGED の各要素を使用して指定された条件句が true の場合に、条件に基づく各規則 (省略可能) が親フィールドにどのように適用されるかを示します。 詳細については、「作業項目フィールドの条件の設定」を参照してください。
要素 |
説明 |
---|---|
指定された値リストの値が親フィールドに設定されている必要があります。 |
|
親フィールドの既存の値が他の規則に違反する場合でも、その値が許容されます。 親フィールドの値を変更した場合、この要素は適用されません。 |
|
親フィールドの値を NULL に変更することはできますが、他の値に変更することはできません。 |
|
3 番目のフィールドの値が親フィールドに自動的にコピーされます。 3 番目のフィールドは、COPY 要素で指定します。 |
|
この要素により、親フィールドの既定値が指定されます。 |
|
親フィールドに値を設定することはできません。 |
|
親フィールドが固定されます。 フィールドが固定されると、その値を NULL に変更することはできますが、他の値に変更することはできません。 |
|
親フィールドの値は、指定されたパターンに一致する必要があります。 |
|
親フィールドの値は 3 番目のフィールドの値に一致させることができません。 3 番目のフィールドは、NOTSAMEAS 要素で指定します。 |
|
親フィールドに列挙リストの値を設定することはできません。 |
|
親フィールドは読み取り専用になります。 |
|
親フィールドに NULL 値を設定することはできません。 |
|
親フィールドは、指定されたサーバー コンポーネントから値を取得します。 有効なサーバー コンポーネントは、clock (作業項目が更新された時刻) と currentuser (作業項目を更新したユーザーの ID) です。 |
|
列挙リストに親フィールドの推奨値が含まれます。 |
|
指定されたユーザーだけが親フィールドを変更できます。 |
ページのトップへ
依存必須フィールドの定義
別のフィールドに特定の値が設定されている場合にのみ、フィールドを必須フィールドとして指定できます。 次の例では、顧客からバグが報告されたときに、顧客の重大度レベルを指定する必要があります。 バグが顧客によって報告されていない場合は、顧客の深刻度レベルは必要ありません。
<FIELD refname="MyCorp.Severity" name="Customer Severity" type="String">
<ALLOWEDVALUES>
<LISTITEM value="Blocking" />
<LISTITEM value="Major" />
<LISTITEM value="Minor" />
</ALLOWEDVALUES>
<WHEN field="MyCorp.CustomerReported" value="true">
<REQUIRED />
</WHEN>
</FIELD>
条件付き選択リストの定義
次の例は、ProblemCharacteristic フィールドの値が Documentation に設定されているかどうかに基づいて、Problem Type フィールドの許可値が限定される条件付き選択リストを示しています。
<FIELD refname="MyCorp.ProblemType" name="Problem Type" type="String">
<WHEN field="MyCorp.ProblemCharacteristic" value="Documentation">
<ALLOWEDVALUES>
<LISTITEM value="Spelling Error" />
<LISTITEM value="Bad Format" />
<LISTITEM value="Missing Info" />
</ALLOWEDVALUES>
</WHEN>
</FIELD>
ユーザーが別のフィールドを変更した場合のフィールドの定義 (WHENCHANGED)
次の例では、ユーザーが MyCorp.State フィールドの値を変更した場合に、サーバー クロックに表示されるように、 MyCorp.StateDate フィールドが現在の日付と時刻に設定されます。
<FIELD refname="MyCorp.StateDate" name="Date Of Last State Change" type="DateTime">
<WHENCHANGED field="MyCorp.State">
<COPY from="clock" />
</WHENCHANGED>
</FIELD>
次の例では、ユーザーが MyCorp.State フィールドの値を変更した場合に、MyCorp.Status フィールドの値がクリアされます。
<!-- Clear the status field whenever someone changes the state -->
<FIELD refname="MyCorp.Status" name="Status" type="String">
<WHENCHANGED field="MyCorp.State">
<COPY from="value" value="">
</WHENCHANGED>
</FIELD>
ユーザーがフィールドを変更しない場合に基づくフィールド値の定義 (WHENNOTCHANGED)
次の例では、ユーザーが MyCorp.State フィールドの値を変更しない場合に、MyCorp.StateDate フィールドが読み取り専用になります。
<FIELD refname="MyCorp.StateDate" name="Date Of Last State Change" type="DateTime">
<!-- Make the StateDate field read-only when the State field is not changed -->
<WHENNOTCHANGED field="MyCorp.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>
参照
概念
その他の技術情報
履歴の変更
日付 |
履歴 |
理由 |
---|---|---|
2011 年 1 月 |
すべての条件付き要素の構文構造を追加し、例を強調するために内容を再構成。 |
情報の拡充 |