定义默认值或将值复制到字段

可指定字段的默认值,或复制另一个字段的值或系统定义的值。 字段默认值为控制如何自动分配字段值的规则。 可使用以下元素之一来分配字段默认值:COPY、DEFAULT 和 SERVERDEFAULT。 可将这些元素指定为 FIELD(定义)元素或 FIELD(工作流)元素的子元素。

可将这些元素添加到工作项类型 (WIT) 定义。 若要了解更多信息,请参见 修改或添加自定义工作项类型 (WIT)

COPY 和 DEFAULT 元素将在开始编辑时填入值,而 SERVERDEFAULT 规则在工作项已提交到数据库时填入值。 此操作在用户将变更保存到工作项时发生,用户不能重写该值。 此类字段在工作项表单中通常为只读。 SERVERDEFAULT 规则用于“上次更改者”和“上次更改日期”等字段,以支持安全审计跟踪。

语法

可使用 COPY、DEFAULT 和 SERVERDEFAULT 元素将值从一个字段复制到另一个字段,将服务器值复制到字段,或指定将为字段定义的默认值。

备注

如果正在更改工作项,则 COPYDEFAULT 元素规则可选择源字段的当前值或上一个值。

  • 可指定要从另一个字段复制的值、时钟的值或当前用户的名称。 如要为 from 属性指定 value 或 field,则必须指定 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 个字符。

模式值:^[^\\]+\\[^\\]+$

模式值示例:Domain\UserID

not

可选。 指定不对其应用规则的 Team Foundation 中的用户或组名。 有效名称为一个文本字符串,该字符串含 1 到 255 个字符。

模式值:^[^\\]+\\[^\\]+$

模式值示例:Domain\UserID

from

必需。 指定是否要复制 value 属性、field 属性、系统时钟或当前用户的默认值。 如要为 from 属性指定 value 或 field,则必须分别指定 value 或 field 属性。 你可以指定以下值:

  • clock:复制系统时钟的时间。将当前日期和时间用作该值。 不需要其他特性。 对于 COPYDEFAULT 规则而言,从本地计算机时钟获取该值。 对于 SERVERDEFAULT 规则,从提交时的服务器时钟获取该值。 仅对 DateTime 字段有效。

  • currentuser:复制已登录的用户的名称。 将当前用户的短用户名用作该值。 不需要其他特性。 仅对字符串字段有效。

  • field:复制为指定的 field 属性定义的值。 需要 field="abc" 特性。 默认情况下,如果指定的“from”字段为空,则不执行任何操作。 field 属性仅用于 COPYDEFAULT 规则。

  • value:复制指定 value 属性的值。

value

可选。 当为 from 特性指定 value 时,指定要复制到字段的值。 有效值包含具有 1 到 255 个字符的文本字符串。

要复制的值可为空。

field

可选。 当为 from 特性指定 field 时,指定其值将被复制到字段的字段名。 如果 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"/>

请参见

概念

所有 FIELD XML 元素引用

其他资源

将规则应用于工作项字段

定义工作项字段