共用方式為


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

您可以指定欄位的預設值,或複製另一個欄位的值或系統定義值。欄位預設值是用於控制如何自動指派欄位值的規則。您可以使用下列其中一個項目來指派欄位預設值:COPY、DEFAULT 和 SERVERDEFAULT。您可以指定這些項目做為 FIELD (定義) 項目或 FIELD (工作流程) 項目的子項目。

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" 欄位是空的,則不會執行任何動作。只有 COPYDEFAULT 規則才會使用 field 屬性。

  • 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 設為 Priority 欄位的預設值。

<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 項目參考

其他資源

使用欄位規則

定義工作項目欄位