<WHEN>、<WHENNOT>、および <WHENCHANGED> 条件の使用
更新 : 2007 年 11 月
WHEN、WHENNOT、および WHENCHANGED の各要素を使用すると、条件に従って実行するルールを定義できます。これらのルールでは、定義された句が True の場合に実行される要素を定義します。たとえば、依存選択リストを作成して、詳細なセキュリティやカスタム動作を指定できます。WHEN 句の簡単な例を次に示します。
<FIELD . . . >
<WHEN field="refname" value="yyy">
</FIELD>
この句は、フィールド refname の値が "yyy" の場合は、この FIELD 要素内のすべてが適用されることを意味します。フィールドは、有効なフィールド参照名である必要があります。詳細については、「フィールド参照名」を参照してください。
![]() |
---|
value 属性は、大文字と小文字を区別しません。そのため、フィールド refname に 'YYY' が設定されている場合、value = "yyy" または "YYY" で一致します。 |
例
依存選択リスト
次の例は、Problem Type の有効な値が、ProblemCharacteristic の値に基づいて限定されている、依存選択リストを示しています。
<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>
必須フィールド
次の例は、必須フィールド内の変更を示しています。このシナリオでは、バグが顧客によって報告される場合、顧客の深刻度レベルを入力する必要があります。バグが顧客によって報告されていない場合は、顧客の深刻度レベルは必要ありません。
WHEN
<WHEN>
例
<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>
条件 フィールド Customer Reported が値を持ち、その値が true の場合、この要素内のすべてが適用されます。
WHENNOT
<WHENNOT>
例
<WHENNOT field="refname" value="yyy">
</WHENNOT>
条件 フィールド refname が値を持ち、その値が yyy でない場合、この要素内のすべてが適用されます。
WHENCHANGED
<WHENCHANGED>
例
<FIELD refname="MyCorp.StateDate" name="Date Of Last State Change" type="DateTime">
<WHENCHANGED field="MyCorp.State">
<COPY from="clock" />
</WHENCHANGED>
</FIELD>
<!-- 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>
条件 フィールド refname がユーザーによって変更されている場合、この要素内のすべてが適用されます。
WHENNOTCHANGED
<WHENNOTCHANGED>
例
<FIELD refname="MyCorp.StateDate" name="Date Of Last State Change" type="DateTime">
<!-- Make the State field readonly when the StateDate field is not changed -->
<WHENNOTCHANGED field="MyCorp.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>
条件 フィールド refname が変更されない限り、この要素内のすべてが適用されます。