应用字段规则的时间和位置
可以使用字段规则确定工作项类型的行为,而不考虑工作项处于何种状态。 例如,在某个新的且处于活动状态的 Bug 关闭之前,该 Bug 所需的字段一直是必需的。
字段规则的应用范围还可以限定为特定状态、特定转换,甚至是特定原因。 应用于任何特定字段的完整规则集是从以下四个子集中附加的:
工作项类型特定
状态特定
转换特定
原因特定
工作项类型特定规则
工作项类型特定规则的应用与工作项在其状态模型中的位置无关。 例如,<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(工作流)元素,可以指定字段规则的应用范围。
备注
在工作流中列出字段时,请仅指定字段引用名称。
示例
下面的示例定义了如下规则:当 Bug 处于活动状态时,不允许修改客户严重级别字段。
<STATE name="Active">
<FIELDS>
<FIELD refname="MyCorp.Severity" >
<READONLY />
</FIELD>
</FIELDS>
</STATE>