可以使用 WHEN、WHENNOT、WHENCHANGED 和 WHENNOTCHANGED 元素來定義按條件運行的規則。這些規則定義當所定義的子句爲 True 時將運行哪些元素。例如,您可以創建相關選取列表以提供詳細的安全性或自定義行爲。下面是一個簡單的 WHEN 子句示例:
<FIELD . . . >
<WHEN field="refname" value="yyy">
</FIELD>
此子句表示,只要字段 refname 具有值“yyy”,則此 FIELD 元素中的任何內容都將適用。該字段必須爲有效的字段引用名稱。有關更多信息,請參見字段引用名。
注意 |
---|
value 屬性不區分大小寫。所以,如果字段 refname 存儲的值爲“YYY”,則匹配將包括 value =“yyy”或“YYY”的所有項。 |
示例
相關選取列表
下面的示例演示一個相關選取列表,在該列表中 Problem Type 的允許值受 ProblemCharacteristic 的值的限制:
必填字段
下面的示例演示了必填字段中的一個更改。在此情況中,當客戶報告一個 Bug 時,必須輸入客戶嚴重級別。如果客戶沒有報告 Bug,則不需要輸入客戶嚴重級別。
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>
示例
條件 只要字段 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 時,此元素中的任何內容都將適用。