定义默认值或将值复制到字段
可指定字段的默认值,或复制另一个字段的值或系统定义的值。 字段默认值为控制如何自动分配字段值的规则。 可使用以下元素之一来分配字段默认值:COPY、DEFAULT 和 SERVERDEFAULT。 可将这些元素指定为 FIELD(定义)元素或 FIELD(工作流)元素的子元素。
可将这些元素添加到工作项类型 (WIT) 定义。 有关详细信息,请参阅修改或添加自定义工作项类型 (WIT)。
COPY 和 DEFAULT 元素将在开始编辑时填入值,而 SERVERDEFAULT 规则在工作项已提交到数据库时填入值。 此操作在用户将变更保存到工作项时发生,用户不能重写该值。 此类字段在工作项表单中通常为只读。 SERVERDEFAULT 规则用于“上次更改者”和“上次更改日期”等字段,以支持安全审计跟踪。
语法
可使用 COPY、DEFAULT 和 SERVERDEFAULT 元素将值从一个字段复制到另一个字段,将服务器值复制到字段,或指定将为字段定义的默认值。
备注
如果正在更改工作项,则 COPY 或 DEFAULT 元素规则可选择源字段的当前值或上一个值。
可指定要从另一个字段复制的值、时钟的值或当前用户的名称。 如要为 value 属性指定 field 或 from,则必须指定 value 或 field 属性。 用户更改或创建工作项时,无论字段中是否已有任何值,COPY 规则均填入一个字段值。
<COPY for="userGroupName" not="userGroupName" from="value | field | clock | currentuser" value="valueToCopy" field="fieldReferenceName/>
可使用 DEFAULT 规则为字段指定一个默认值。 用户创建或编辑工作项时,如果该字段为空,则 DEFAULT 规则填入一个值。 可指定要从另一个字段复制的值、服务器时钟记录的日期时间戳或当前用户的名称。 如果字段已经具有值,则忽略此规则。
<DEFAULT for="userGroupName" not="userGroupName" from="value | field | clock | currentuser" value="defaultValue" field="fieldReferenceName" />
可指定保存工作项时,从该服务器复制到字段的值。 用户更改工作项的状态时,SERVERDEFAULT 规则指定一个要从从服务器组件派生的值复制到当前字段的值。 DEFAULT 和 COPY 元素在用户打开工作项以进行修改时填入值,而 SERVERDEFAULT 规则在工作项已提交到数据库时填入值。 此操作在用户保存工作项时发生。 用户不能重写该值。 这些字段通常在窗体上显示为只读。 SERVERDEFAULT 规则用于“上次更改者”和“上次更改日期”等字段,以支持安全审计跟踪。
<SERVERDEFAULT for="userGroupName" not="userGroupName" from="clock | currentuser" />
每一个这些规则元素均指定一个 from="fromType" 属性,该属性标识值的源。 根据 fromType 值,可能需要其他属性。 下表描述 COPY、DEFAULT 和 SERVERDEFAULT 规则元素引用的所有属性。
特性 |
描述 |
---|---|
for |
可选。 指定对其应用规则的 Team Foundation 中的用户或组名。 有效名称为一个文本字符串,该字符串含 1 到 255 个字符。 模式值:^[^\\]+\\[^\\]+$ 模式值示例:域\用户 ID |
not |
可选。 指定不对其应用规则的 Team Foundation 中的用户或组名。 有效名称为一个文本字符串,该字符串含 1 到 255 个字符。 模式值:^[^\\]+\\[^\\]+$ 模式值示例:域\用户 ID |
from |
必需。 指定是否要复制 value 属性、field 属性、系统时钟或当前用户的默认值。 如要为 value 属性指定 field 或 from,则必须分别指定 value 或 field 属性。 你可以指定以下值:
|
value |
可选。 当为 value 特性指定 from 时,指定要复制到字段的值。 有效值包含具有 1 到 255 个字符的文本字符串。 要复制的值可为空。 |
field |
可选。 当为 field 特性指定 from 时,指定其值将被复制到字段的字段名。 如果 from 属性将“field”作为其值,则必须指定此属性。 要复制的字段的引用名称。 引用名称必须与 FIELD(定义)元素中定义的引用名称匹配。 有关详细信息,请参阅 FIELD(定义)元素引用。 模式值:^[a-zA-Z_][a-zA-Z0-9_]*(\.[a-zA-Z0-9_]+)+$ 模式值示例:公司.部门.问题类型 |
返回页首
定义默认值
以下示例将 P3 设置为“优先级”字段的默认值。
<FIELD refname="MyCorp.Priority" name="Priority" type="String">
<HELPTEXT>Specify the severity of the problem</HELPTEXT>
<ALLOWEDVALUES>
<LISTITEM value="P1"/>
<LISTITEM value="P2"/>
<LISTITEM value="P3"/>
</ALLOWEDVALUES>
<DEFAULT from="value" value="P3"/>
</FIELD>
自动清除字段
在以下示例中,已清除状态字段。
<FIELD refname="MyCorp.Status" name="Status" type="String">
<COPY from="value" value="" />
</FIELD>
保存字段值
在以下示例中,已保存最近更改了工作项的用户的名称。
<FIELD refname="System.Last Changed By" name="Last Changed By" type="String">
<HELPTEXT>The name of the user who most recently modified this bug</HELPTEXT>
<VALIDUSER group="[Project]\MyProjectMembers" />
<SERVERDEFAULT from="currentuser" />
</FIELD>
将此时钟指定为默认值
在以下示例中,字段值使用当前日期,而用户可更改该值。
<FIELD refname="MyCorp.FoundOn" name="Found On" type="DateTime">
<HELPTEXT>Defines when a bug was found.</HELPTEXT>
<DEFAULT from="clock" />
</FIELD>
备注
对于含撇号的值(如“Won’t Fix”),在 XML 中必须使用双引号,如下例所示:
<LISTITEM value="Won’t Fix"/>