Share via


When and Where to Apply a Field Rule

You can use field rules to determine work item type behavior regardless of the state of the work item. For example, a field that is required for a bug that is new and active remains required until the bug is closed.

Field rules can also be scoped to certain states, transitions, and even reasons. The complete set of rules that apply to any particular field is additive from the following four subsets:

  • Work item type-specific

  • State-specific

  • Transition-specific

  • Reason-specific

Work Item Type-Specific Rules

Work item type-specific rules apply regardless of the location of a work item in its state model. For example, a <REQUIRED /> rule performs the following check:

"MyField Value" != NULL

State-Specific Rules

State-specific rules are scoped to a work item instance when it is in a certain state. A state-specific rule is enforced when the following condition is true:

State field value == "MyState" && "MyField Value" != NULL

Transition-Specific Rules

Transition-specific rules are scoped to a work item that is undergoing a certain transition. Transition-specific rules are enforced when the following conditions are true:

State field value == "ToState"  &&

"Previous State Before Edit/New" == "FromState"

&& "MyField Value" != NULL

Reason-Specific Rules

Reason-specific rules are scoped to a particular reason for a particular transition. Reason-specific rules are processed when the following conditions are true:

Reason field == "MyReason" &&

State field value == "ToState"  &&

"Previous State Before Edit/New" == "FromState" && "MyField Value" != NULL

Scoping Field Rules

You can apply scope to field rules by using the FIELDS and FIELD (Workflow) elements within the STATE, TRANSITION, and REASON elements.

Note

When you list fields in the workflow, specify only the field reference name.

Example

The following example defines the following rule: When a bug is in the Active state, do not allow the customer severity field to be modified.

<STATE name="Active">
<FIELDS>
<FIELD refname="MyCorp.Severity" >
<READONLY />
</FIELD>
</FIELDS>
</STATE>

See Also

Other Resources

Define and Customize Work Item Workflow