次の方法で共有


<WHEN>、<WHENNOT>、および <WHENCHANGED> 条件の使用

更新 : 2007 年 11 月

WHEN、WHENNOT、および WHENCHANGED の各要素を使用すると、条件に従って実行するルールを定義できます。これらのルールでは、定義された句が True の場合に実行される要素を定義します。たとえば、依存選択リストを作成して、詳細なセキュリティやカスタム動作を指定できます。WHEN 句の簡単な例を次に示します。

<FIELD . . . >

    <WHEN field="refname" value="yyy">

</FIELD>

この句は、フィールド refname の値が "yyy" の場合は、この FIELD 要素内のすべてが適用されることを意味します。フィールドは、有効なフィールド参照名である必要があります。詳細については、「フィールド参照名」を参照してください。

ms194966.alert_note(ja-jp,VS.90).gifメモ :

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 が変更されない限り、この要素内のすべてが適用されます。

参照

概念

使用できるフィールドの規則