定義預設值或將值複製到欄位

您可以為欄位指定預設值,也可以從其他欄位或系統定義值複製該值。 欄位預設值是控制如何自動指派欄位值的規則。 您可以使用下列其中一個元素來指派欄位預設值: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_]+)+$

模式值範例:Company.Division.IssueType

回到頁首

定義預設值

下列範例設定 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 項目參考

其他資源

將規則套用至工作項目欄位

修改或加入欄位以支援查詢、報表和工作流程