加入或修改欄位以追蹤工作 \(英文\)

Azure DevOps Server 2022 - Azure DevOps Server 2019

您的專案包含 100 個以上的數據欄位,根據用來建立專案的程式,例如 Agile、BasicScrum 或 CMMI。 每個工作專案都與工作項目類型 (WIT) 相關聯,而您可以追蹤的數據會對應至指派給 WIT 的欄位。 您可以藉由 修改工作項目中的數據欄位來更新工作項目的數據。

注意

針對 Azure DevOps Services 或使用繼承的進程模型的專案集合,請參閱 將自定義欄位新增至工作項目類型

您可以修改現有的欄位或新增自訂欄位,以支援追蹤其他資料需求。 例如,您可以在下拉功能表中自定義挑選清單,或新增規則來指定預設值,或限制它可能需要的值。

並非所有挑選清單都是以相同的方式定義。 某些清單是透過使用者介面、WIT 的工作流程,或將用戶帳戶新增至項目來定義,如下表所示。

必要條件

  • 若要列出欄位,您必須擁有集合集合中專案 [允許] 的 [檢視專案層級資訊] 許可權。
  • 若要新增或自定義欄位,您必須是 Project 管理員 istrators 群組的成員,或將 [編輯專案層級資訊] 權限設定為 [允許]。
  • 若要刪除或重新命名字段或變更字段的屬性,您必須是Team Foundation 管理員 istrators 安全組或 Project Collection 管理員 istrators 安全組的成員

若要以系統管理員身分新增, 請變更專案集合層級的許可權

工作專案欄位新增的方法

您可以使用工作專案欄位來追蹤工作專案類型的數據,以及定義查詢的篩選準則,以及產生報表。 除了系統欄位之外,您想要追蹤的任何資料元素都必須定義為工作專案欄位。 您可以在工作項目類型或全域工作流程的定義中定義工作專案欄位。

專案集合會維護工作專案欄位。 當您執行下列其中一項工作時,您會新增欄位:

  • 建立專案。 系統會建立工作項目類型或全域工作流程定義內定義的所有欄位,並針對選取的進程範本定義。 核心系統欄位會自動針對針對項目定義的每個工作項目類型定義。 如需這些欄位的清單,請參閱 工作專案欄位索引

  • 匯入 WIT 定義。 定義中定義之工作項目類型內的所有新欄位都會新增至集合。 如需詳細資訊,請參閱 所有 WITD XML 元素參考

  • 匯入全域工作流程定義。 全域工作流程內定義的所有新欄位都會新增至集合。 當您要維護數種工作項目共用的工作專案欄位集時,您可以定義全域工作流程。 如需詳細資訊,請參閱 自定義全域工作流程

所有 WIT 中定義的所有欄位,以及所有專案的全域工作流程都會組成集合中定義的完整欄位集。 您可以變更屬性、重新命名及刪除現有的欄位。 不過,當您進行這類變更時,您會產生某些成本,特別是針對內部部署伺服器和報告。

若要新增或自定義集合的欄位,請修改 WIT 定義的 XML 內容。 透過 WIT 定義之 FIELDS 區段內的 FIELD 元素定義每個欄位。 如需這些檔案結構和位置的相關信息,請參閱 所有 FIELD XML 元素參考

新增欄位、套用規則或變更屬性

若要新增自定義欄位、新增欄位規則,或變更工作項目表單上欄位的標籤,您可以修改使用欄位的工作專案類型 (WIT) 或類型。 遵循符合程式模型的自定義順序

若要變更欄位屬性或重新命名字段,請使用 witadmin 命令行工具。 否則,若要修改欄位,您可以新增或修改與 WIT 定義內欄位相關聯的規則。

欄位屬性和欄位規則的摘要

編輯 WIT 定義檔

若要新增規則或新增自定義欄位,請匯出、編輯,然後匯入 WIT 定義檔。

提示

使用 witadmin,您可以 匯入和導出定義檔。 您可以使用的其他工具包括行程編輯器(需要您已安裝 Visual Studio 版本)。 從 Visual Studio Marketplace 安裝程式範本編輯器。

您要用來追蹤資料的任何欄位都必須新增至 WIT 定義檔。 這適用於所有系統欄位(其參考名稱開頭 為 System.的欄位)。 不論您是否在 WIT 定義中包含所有 WIT,所有系統欄位都會定義。 若要深入瞭解每個欄位,請參閱 工作專案欄位索引

新增複選框或布爾值欄位

使用下列語法,在 WIT 定義的 FIELDS 區段中新增布爾欄位

<FIELD name="Triage" refname="Fabrikam.Triage" type="Boolean" >
   <DEFAULT from="value" value="False" />
   <HELPTEXT>Triage work item</HELPTEXT>
</FIELD>

然後在 FORM 區段中新增下列語法,讓字段出現在表單上。

<Control Label="Triage" Type="FieldControl" FieldName="Fabrikam.Triage" />

欄位會顯示為表單上的複選框。

自定義挑選清單

挑選清單是在工作項目表單中的下拉功能表中出現的列舉值,以及 查詢編輯器內的 [值 ] 資料行。 您用來自定義挑選清單的方法會根據欄位而有所不同。

若要修改工作項目表單中大部分字串或整數位段的挑選清單,請編輯 WIT 定義。 例如,若要新增自定義解析字段和挑選清單,請指定 XML 程式代碼,如下所示。

自訂欄位和挑選清單
自訂選擇清單

<FIELD name="Resolution" refname="MyCompany.Resolution" type="String">    
<ALLOWEDVALUES>
<LISTITEM value="By Design" />
<LISTITEM value="Duplicate" />
<LISTITEM value="External" />
<LISTITEM value="Fixed" />
<LISTITEM value="Not Repro" />
<LISTITEM value="Postponed" />
<LISTITEM value="Won't Fix" />
</ALLOWEDVALUES>
</FIELD>

規則支援合併清單、限制清單套用物件,以及在工作專案表單上顯示清單時設定條件。 規則會控制是否展開通訊組清單以顯示其個別成員,或使用選擇性 的 expanditemsfilteritems 屬性來篩選清單。 使用全域清單將更新跨 WIT 或專案共用的清單所需的工作降到最低。

當您在數個 WIT 中或跨數個專案使用清單時,將其維護為全域清單會將您的維護需求降到最低。 此外,如果您需要在 WIT 或項目之間顯示為不同的清單部分,您可以定義部分挑選清單的全域清單。 請參閱 定義挑選清單定義全域清單

將規則新增至欄位

若要新增自定義欄位或將規則新增至欄位,請編輯 WIT 定義。 您可以限制要套用至特定使用者或群組的規則。 大部分的規則都支援 不是 屬性,以將規則的焦點放在誰,而且不適用。

例如,使用下列代碼段,您可以強制執行只有管理小組成員、客戶定義 TFS 群組的成員才能在建立工作項目之後修改 [堆棧排名] 字段的規則。

<FIELD name="Stack Rank" refname="Microsoft.VSTS.Common.StackRank" type="Double" reportable="dimension">  
   <FROZEN not="[project]\Management Team" />  
   <HELPTEXT>Work first on items with lower-valued stack rank. Set in triage.</HELPTEXT>
</FIELD>  

您可以套用規則來完成下列動作:

若要完成此動作: 使用此 XML 元素:
指定工具提示。 HELPTEXT
限定欄位可以擁有的值。 CANNOTLOSEVALUE、EMPTYFROZEN、NOTSAMEASREADONLYREQUIRED
複製值或指定預設值。 COPYDEFAULTSERVERDEFAULT
限制誰可以修改欄位。 VALIDUSERfor and not field rule attributes
在字串欄位上強制執行模式比對。 MATCH
根據其他欄位中的值,有條件地套用規則。 WHENWHENNOTWHENCHANGEDWHENNOTCHANGED

系統欄位的名稱全都以 「System」 前置詞開頭(例如,System.ID),在您可以套用的規則方面受到限制。 例如,您無法複製或設定為空白欄位,用來追蹤誰建立、變更或關閉工作專案,或系統所使用的日期時間字段。

如需套用欄位規則和限制的詳細資訊,請參閱 規則和規則評估

若要新增自定義欄位

若要新增自定義欄位,請編輯 WIT 定義,以在 FIELDS 區段內新增 FIELD 元素,以及 FORM 區段內的 Control 元素。

  1. 根據您使用的進程模型匯出 WIT 定義檔

  2. 找出開頭 FIELDS為 的 XML 檔案區段。

  3. FIELD新增 專案,指定要加入的自定義功能變數名稱。 您必須指定下列必要屬性:易記 namerefname (參考名稱)和 type。 如需詳細資訊,請參閱 FIELD (Definition) 元素參考

    下列程式代碼會指定自定義欄位 Requestor,其參考名稱 FabrikamFiber.MyTeam.Requestor 為 ,以及允許值的挑選清單,預設值為 Customer。

    <FIELD name="Requestor" refname="FabrikamFiber.MyTeam.Requestor" type="String" reportable="Dimension">
       <ALLOWEDVALUES>
          <LISTITEM value="Customer" />
          <LISTITEM value="Executive Management" />
          <LISTITEM value="Other" />
          <LISTITEM value="Support" />
          <LISTITEM value="Team" />
          <LISTITEM value="Technicians" />
          <DEFAULTVALUE value="Customer" />
        </ALLOWEDVALUES>
    </FIELD>
    

    提示

    不論您在 XML 定義檔中輸入元素的方式為何,清單內的元素一律會以英數位元順序顯示。 [參考名稱] 或 refname是欄位的程式設計名稱。 所有其他規則都應該參考 refname。 如需詳細資訊,請參閱 命名限制和慣例

  4. Control在區段內FORM新增 元素,讓自定義欄位出現在您想要顯示之元素群組內的表單上。

    例如,下列代碼段會新增 [要求者] 欄位,以顯示在工作項目表單的 [原因] 欄位下方。

    <Column PercentWidth="50">
       <Group Label="Status">
          <Column PercentWidth="100">
             <Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assi&amp;gned To:" LabelPosition="Left" />
             <Control FieldName="System.State" Type="FieldControl" Label="&amp;State:" LabelPosition="Left" />
             <Control FieldName="System.Reason" Type="FieldControl" Label="Reason:" LabelPosition="Left" ReadOnly="True" />
             <Control FieldName="FabrikamFiber.MyTeam.Requestor" Type="FieldControl" Label="Requestor:" LabelPosition="Left" ReadOnly="True" />
          </Column>
       </Group>
    </Column>
    

    提示

    工作追蹤的 FORM 架構定義會將專案的所有子項目定義為駱駝式大小寫,而所有其他元素則定義為全部大寫。 如果您在驗證類型定義檔案時遇到錯誤,請檢查元素的案例結構。 此外,開啟和結尾標記的案例結構必須符合 XML 語法的規則。 如需詳細資訊,請參閱 控制 XML 元素參考

  5. 根據您使用的進程模型匯入 WIT 定義檔。

  6. 開啟入口網站或 Team Explorer 以檢視變更。 如果客戶端已經開啟,請重新整理頁面。

    下圖顯示產品待辦專案的工作專案窗體現在包含新的欄位。

    表單中的新欄位

變更工作項目表單上的欄位標籤

若要修改欄位標籤,請變更指派給 Control 元素 Label 屬性的值。 若要從工作項目表單中移除欄位,請刪除 Control 與字段相關聯的專案。

  1. 根據您的程式模型匯出 WIT 定義檔案。

  2. FORMLayout 區段中,尋找您要修改之欄位的定義。 本範例會修改 [標題] 字段的標籤:

    <Column PercentWidth="70">  
       <Control Type="FieldControl" FieldName="System.Title" Label="Title" LabelPosition="Left" />  
    </Column>
    
  3. 變更欄位的標籤,讓處理此特定項目的葡萄牙分公司可以在使用工作項目表單時讀取 [標題] 字段的名稱。 在 [標題] 字段中包含標題 (Titulo) 的葡萄牙文單字。

    <Column PercentWidth="70">  
       <Control Type="FieldControl" FieldName="System.Title" Label="Title (Titulo):" LabelPosition="Left" />  
    </Column>
    
  4. 匯入修改過的 WIT 定義。

新增自定義控制件

您可以使用 REST API 來追蹤工作專案,以程式設計方式建立、變更及尋找 Bug、工作和其他 WIT。 您也可以建立自己的自定義控件,將功能新增至工作項目窗體。

或者,您可以新增可透過Visual Studio Marketplace 取得的自定義控件。 例如:

若要將自定義控件新增至新的 Web 窗體,請參閱 WebLayout 和 Control 元素

變更現有欄位的屬性

您可以使用 witadmin changefield 來變更現有欄位的屬性。 例如,下列命令會將 MyCompany.Type 定義的易記名稱變更為 Evaluation 方法。

witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.Type /name:"Evaluation Method"

下表摘要說明您可以使用 witadmin changefield 變更的屬性。

屬性 描述
資料類型 指定欄位接受的數據類型。 一般而言,定義欄位數據類型之後,就無法變更。 您只能針對 HTMLPlainText 類型的欄位切換欄位資料類型。
易記名稱 易記名稱會出現在工作項目查詢的下拉功能表中,而且在專案集合內定義的所有欄位都必須是唯一的名稱。 易記名稱可能與工作專案窗體上出現的窗體標籤不同。
報告屬性 您可以在報表中顯示時變更欄位的名稱、報表參考名稱和報告類型。 您可以將報告易記名稱當地語系化。

報告類型會決定欄位的數據是寫入關係型倉儲資料庫、關係型倉儲資料庫和 OLAP Cube,還是要在處理 OLAP Cube 時產生預先計算的值總和。

如需預設可報告欄位的完整清單,請參閱 可報告欄位參考 。 如需可報告屬性的詳細資訊,請參閱 工作專案字段和屬性、可報告屬性
同步處理 您可以使用 Active Directory 啟用或停用人員名稱欄位的同步處理。

變更欄位的索引屬性

您可以在欄位上篩選時啟用欄位的索引編制,以改善查詢回應時間。 根據預設,下列欄位會編製索引:指派給、建立日期、變更者、狀態、原因、區域標識碼、反覆專案標識碼和工作項目類型。

若要啟用或停用字段的索引編製,請使用 witadmin indexfield 命令

刪除欄位

當您從特定類型的工作專案中移除欄位時,即使任何 WIT 不再參考該欄位,也不會從集合或資料庫伺服器中移除該欄位。 若要移除欄位,請遵循下列步驟。

  1. FIELD從所有 WIT 定義和參考它的任何全域工作流程中移除定義。

  2. 確認欄位未使用中。 例如:

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact
    
    Field: MyCompany.CustomContact
    Name: Custom Contact
    Type: String
    Reportable As: dimension
    Use: Not In Use
    Indexed: False
    
  3. 刪除欄位。 例如:

    witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact
    
  4. 如果已刪除的欄位可回報,且您的專案使用 SQL Server Reporting Services, 請重建數據倉儲以清除舊的欄位及其值

如需詳細資訊,請參閱 管理工作專案欄位

測試、建置和版本控制欄位

數個工作專案類型包含字段,這些字段提供與 Team Foundation Build、Microsoft Test Manager 和 Team Foundation 版本控制整合的自動化程式所產生的資訊。 若要將其中一個字段新增至自定義 WIT,您可以 根據本主題先前所述的步驟來編輯 WIT 定義

例如,您可以新增 [在組建中找到] 和 [整合] 字段,這些字段會出現在 Bug 的類型定義中。 這些欄位會將 Bug 與找到或修正的組建產生關聯。 您可以使用下列代碼段,將這些欄位新增至工作項目類型定義。

<FIELD name="Found In" refname="Microsoft.VSTS.Build.FoundIn" type="String" reportable="dimension">
    <HELPTEXT>Product build number (revision) in which this item was found</HELPTEXT>
</FIELD>
<FIELD name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild" type="String" reportable="dimension">
    <HELPTEXT>Product build number this bug was fixed in</HELPTEXT>
</FIELD>

如需詳細資訊,請參閱 根據組建和測試整合欄位進行查詢。

功能變數名稱和報告

您可以新增欄位或變更現有欄位的屬性以支援報告。 當您新增或變更欄位時,應該有系統地命名字段,以便在 Analysis Services Cube 中找到字段,因為欄位會以邏輯方式分組到資料夾中。 若要深入瞭解,請參閱 新增或修改工作專案欄位以支持報告

本文說明如何新增和自定義託管 XML 和內部部署 XML 進程模型的欄位。 如需為託管 XML 和內部部署 XML 進程模型新增和自定義工作專案類型的資訊,請參閱 新增或修改工作項目類型。 如需繼承程式模型,請參閱 自定義程式

其他相關主題或資源: