I was asked once by a friend if there's a way to filter the allowed values of a field when another field value changes. Well, the solution is not exactly as we think about filtering but more like a switch/case mechanism.
Let's take for example 2 fields that implement OS Platform & Version selection:
Windows --> XP, 2003 Server, Vista
Linux --> Ubuntu, Red Hat, Suse
Mac --> OS X 10.0, OS X 10.5
To implement this in the work item type definition file we need to define 2 fields. The xml should look like this:
<FIELD
type="String"
name="OS Platform"
refname="MyFields.OSPlatform">
<ALLOWEDVALUES>
<LISTITEM
value="Windows" />
<LISTITEM
value="Linux" />
<LISTITEM
value="Mac" />
</ALLOWEDVALUES>
</FIELD>
<FIELD
type="String"
name="OS Version"
refname="MyFields.OSVersion">
<WHEN
field="MyFields.OSPlatform"
value="Windows">
<ALLOWEDVALUES>
<LISTITEM
value="XP" />
<LISTITEM
value="2003 Server" />
<LISTITEM
value="Vista" />
</ALLOWEDVALUES>
</WHEN>
<WHEN
field="MyFields.OSPlatform"
value="Linux">
<ALLOWEDVALUES>
<LISTITEM
value="Ubuntu" />
<LISTITEM
value="Red Hat" />
<LISTITEM
value="Suse" />
</ALLOWEDVALUES>
</WHEN>
<WHEN
field="MyFields.OSPlatform"
value="Mac">
<ALLOWEDVALUES>
<LISTITEM
value="OS X 10.0" />
<LISTITEM
value="OS X 10.5" />
</ALLOWEDVALUES>
</WHEN>
</FIELD>
The version field contains WHEN rule for each platform. The result is a field that changes in real time when the parent field value changes.
You don't have to write the xml in order to achieve this. You can use the "Process Template Editor" which is part of the Team Foundation Server power tools to easily add fields and rules to you work item.
No comments:
Post a Comment