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

根據用來建立 Team 專案的流程範本,您的 Team 專案包含 100 個 (含) 以上的資料欄位。 每個欄位與一對名稱、屬性和規則相關聯。 您可以修改現有欄位或加入自訂欄位,以支援追蹤額外的資料需求。 例如,您可以在下拉式功能表中自訂挑選清單、加入規則以指定預設值或限制其可能採用的值,或變更欄位屬性。

若要在工作項目表單上加入欄位規則、加入自訂欄位或變更欄位標籤,您可以編輯工作項目類型 (WIT) 的 XML 定義。 若要變更欄位屬性或重新命名欄位,請使用 witadmin 命令列工具。

欄位定義名稱、屬性和規則

自訂挑選清單

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

泛型字串或整數欄位

若要修改工作項目表單內用於大部分字串或整數欄位的挑選清單,請編輯 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>

規則可支援合併清單、限制套用清單的人員,以及清單出現在工作項目表單上時的設定條件。 規則可以控制是否擴充通訊群組清單以顯示其個別成員,或是使用選擇性的 expanditems 和 filteritems 屬性篩選清單。 使用全域清單,將更新跨 WIT 或 Team 專案共用之清單時所需的工作減至最少。

若要進一步了解,請參閱定義挑選清單定義全域清單

特定欄位的挑選清單是透過其他方法定義的

若要修改下列欄位的挑選清單,請參閱個別主題:

針對所有其他含有與其相關聯之挑選清單的欄位 (例如,活動自動化狀態專業領域優先順序,以及其他項目),您可以從工作項目欄位的索引中查詢這些欄位的定義。

將規則加入至欄位

若要加入自訂欄位或將規則加入至欄位,請編輯 WIT 定義。 您可以限制規則套用至特定使用者或群組。 大部分規則都支援 for 或 not 屬性,將重點放在套用和不套用規則的使用者。

例如,藉由下列程式碼片段,您可以強制規定:一旦建立工作項目之後,只有管理小組的成員 (客戶定義的 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、EMPTY、FROZEN、NOTSAMEAS、READONLY 和 REQUIRED

複製值或指定預設值。

COPY、DEFAULT 和 SERVERDEFAULT

限制可修改欄位的人員。

VALIDUSER、for 和 not 欄位規則屬性

對字串欄位強制使用模式比對。

MATCH

根據其他欄位的值有條件地套用規則。

WHEN、WHENNOT、WHENCHANGED 和 WHENNOTCHANGED

如需有關套用欄位規則的詳細資訊,請參閱 所有 FIELD XML 項目參考

編輯 WIT XML 定義檔以加入規則或加入自訂欄位

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

用於自訂 WIT 物件的處理序

您可以使用 witadmin 來匯入和匯出定義檔。 其他可以使用的工具包括 Process Editor (可隨 TFS Power Tools (英文) 的下載一併取得) 或 TFS Team Project Manager (英文) (CodePlex 提供的社群資源專案)。

您要用來追蹤資料的所有欄位都必須加入至 WIT 定義檔。 除了自動為每個 WIT 定義的系統欄位 (參考名稱以 System. 開頭的欄位) 以外,所有的欄位都是如此。

若要加入自訂欄位,請編輯 WIT 定義,以在 FIELDS 區段中加入 FIELD 項目,並在 FORM 區段中加入 Control 項目。

若要加入自訂欄位

  1. 如果您沒有 Team 專案的專案系統管理員權限,請取得這些權限

  2. 開啟安裝 Visual Studio 或 Team Explorer 的命令提示字元視窗,並輸入:

    cd %programfiles%\Microsoft Visual Studio 12.0\Common7\IDE

    在 Windows 64 位元版本中,將 %programfiles% 取代為 %programfiles(x86)%。 您可以免費下載 Team Explorer

  3. 匯出 WIT 定義。

    witadmin exportwitd /collection:CollectionURL /p:ProjectName /n:TypeName /f:"DirectoryPath/FileName.xml"

    CollectionURL 的範例是 http://fabrikamprime:8080/tfs/DefaultCollection。

  4. 尋找為類型定義欄位且以 FIELDS 開頭的 XML 檔案區段。

  5. 加入 FIELD 項目,這個項目會指定要加入之自訂欄位的名稱。 您必須指定下列必要屬性:易記的 name、refname (參考名稱) 和 type。 如需詳細資訊,請參閱FIELD (定義) 項目參考

    下列程式碼指定自訂欄位 [要求者],其參考名稱為 FabrikamFiber.MyTeam.Requestor,具有預設值為 [客戶] 的允許值挑選清單。

    <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。如需詳細資訊,請參閱工作項目追蹤物件的命名慣例

  6. 在 FORM 區段中加入 Control 項目,讓自訂欄位出現於您希望該欄位在表單上顯示所在的項目群組中。

    例如,下列程式碼片段加入 [要求者] 欄位,使之出現在工作項目表單的 [原因] 欄位下方。

    <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 語法的規則。

    如需詳細資訊,請參閱Control XML 項目參考

  7. 匯入 WIT 定義檔案。

    witadmin importwitd /collection:CollectionURL /p:ProjectName /f:"DirectoryPath/FileName.xml"

  8. 開啟 TWA 或 Team Explorer 以檢視變更。 如果用戶端已經開啟,則重新整理頁面。

    下圖顯示,產品待處理項目 (Backlog) 的工作項目表單現在已包含新的欄位。

    已加入至類型定義和表單的自訂欄位

如需有關使用 witadmin 的詳細資訊,請參閱匯入、匯出和管理工作項目類型 [witadmin]

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

  1. 匯出 WIT 定義檔案。

    witadmin exportwitd /collection:CollectionURL /p:ProjectName /n:TypeName /f:"DirectoryPath/FileName.xml"

  2. 在 FORM 及 Layout 區段中,尋找您想要修改之欄位的定義。 此範例會修改 [標題] 欄位的標籤:

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

    <Column PercentWidth="70">
      <Control Type="FieldControl" FieldName="System.Title" Label="Title (Título):" LabelPosition="Left" />
    </Column>
    
  4. 匯入 WIT 定義檔案。

    witadmin importwitd /collection:CollectionURL /p:ProjectName /f:"DirectoryPath/FileName.xml"

變更現有欄位的屬性。

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

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

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

屬性

描述

資料類型

指定欄位所接受資料的類型。 一旦定義欄位資料類型後,通常無法加以變更。 您只能切換屬於 HTML 或 PlainText 類型之欄位的欄位資料類型。

易記名稱

易記名稱會出現在工作項目查詢的下拉式功能表,而且在定義於 Team 專案集合內的所有欄位中,這個名稱必須是唯一的。 易記名稱可能與工作項目表單上出現的表單標籤不同。

可索引

您可以啟用欄位索引功能,改善篩選欄位時的查詢回應時間。 下列欄位預設會有索引:[指派給]、[建立日期]、[變更者]、[狀態]、[原因]、[區域 ID]、[反覆項目 ID] 和 [工作項目類型]。

報告屬性

您可以變更欄位出現在報表中的名稱、欄位參考名稱和報告類型。 您可以將報告易記名稱當地語系化。

報告類型決定欄位的資料是僅寫入關聯式倉儲資料庫、同時寫入關聯式倉儲資料庫及 OLAP Cube,還是在處理 OLAP Cube 時產生值的預先計算總和。

如需預設可報告欄位的完整清單,請參閱 Visual Studio ALM 的可報告欄位參考。 如需 OLAP Cube 的詳細資訊,請參閱 Visual Studio 之 Analysis Services Cube 中提供的透視圖和測量群組

同步處理

您可以針對與使用者相關聯的欄位,啟用或停用其與 Active Directory 的同步處理。

問與答

問:在 TFS 升級之後,我如何進行自訂且仍使用設定功能精靈更新我的 Team 專案?

**答:**您可以加入自訂欄位、自訂挑選清單、加入或修改區域和反覆項目路徑,以及將規則加入至欄位。 設定功能精靈會更新您的 Team 專案,且您可以存取最新的功能。

若要了解您可以放心進行的其他自訂,以及您應該避免的自訂,請參閱自訂工作追蹤經驗:請先了解維護和升級的含意再進行自訂

問:哪裡可以得知我為已經 Team 專案定義的所有欄位和欄位屬性?

**答:**如需預設 TFS 流程範本中所定義之欄位的索引,請參閱 Visual Studio ALM 的工作項目欄位參考

除了可以變更工作項目欄位的屬性之外,每個欄位還有幾個不可變更和實際已隱藏的屬性。 您可以使用 [工作項目欄位總管] 工具,查詢這些欄位的指派。 安裝 TFS Power Tools (英文) 之後,就可以從 Process Editor 這個強大的工具存取此工具。

工作項目欄位總管

工作項目欄位總管

如需每個屬性的描述,請參閱這篇文章:工作項目欄位屬性 - 可以變更和無法變更 (英文)。

問:如何加入支援與測試、組建和版本控制整合的欄位?

**答:**有幾個 WIT 所包含的欄位中,會提供由整合於 Team Foundation Build、Microsoft Test Manager 和 Team Foundation 版本控制之自動化流程所產生的資訊。 若要將這些欄位的其中一個欄位加入至您的自訂 WIT,請根據本主題先前所列的步驟編輯 WIT 定義。

例如,您可以加入出現於 Bug 類型定義中的 [發現於] 和 [整合於組建] 欄位。 這些欄位會讓 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>

如需詳細資訊,請參閱支援整合測試、組建與版本控制的欄位

問:我何時應該使用全域清單,而不使用簡單的挑選清單?

**答:**當您在數個 WIT 中或跨多個 Team 專案使用清單時,以全域清單形式來維護這份清單可讓您的維護需求降至最低。 此外,如果您需要在各 WIT 或 Team 專案之間顯示清單的不同部分,則可以為挑選清單的各部分定義全域清單。 請參閱定義挑選清單定義全域清單

問:在修改系統欄位方面是否有限制?

**答:**可以。 您無法重新命名系統欄位,而且無法將某些規則套用至系統欄位。 例如,您無法複製或設定用於追蹤工作項目建立者、變更者或關閉者的空白欄位或系統使用的日期時間欄位。

系統欄位名稱全部以 "System" 前置詞開頭 (例如 System.ID)。 為所有 WIT 定義的所有系統欄位,不論您是否將它們包含在 WIT 定義中。 若要進一步了解每一個欄位,請參閱 Visual Studio ALM 的工作項目欄位參考

問:是否有評估規則要依照的序列?

**答:**是的。不過,有許多因素會影響系統如何評估多個規則,因此永遠無法一開始就完全得知最後結果。 若要了解預期行為與互動的一些概念,請參閱將規則套用至工作項目欄位

問:如何命名欄位以支援報告?

**答:**您可以加入欄位或變更現有欄位的屬性來支援報告。 當您加入或變更欄位時,應該有系統地命名欄位,讓您因為欄位按邏輯分組成資料夾,而能夠在 Analysis Services Cube 中找到欄位。 若要進一步了解,請參閱加入或修改工作項目欄位以支援報告

問:是否有方法可以限制出現在 [指派給] 欄位中的名稱數目?

**答:**可以。 根據預設,[指派給] 欄位的下拉式功能表會顯示所有獲授與 TFS 存取權的使用者。 這是預設的有效使用者群組。 此規則的例外狀況:在 Team Web Access 中,支援指派工作項目的內容功能表只限於小組成員。

套用安全性限制的最有效方法是,建立可在 Windows 或在 TFS 中管理的自訂群組。

  1. 建立要使用的安全性群組,並將帳戶加入至群組。 例如,建立新的群組,稱為 [小組參與者]。 請參閱 將使用者加入至 Team 專案

  2. 修改您要限制使用者設定之每個工作項目類型的定義檔案。 將 VALIDUSER 項目加入至 [指派給] 欄位的 FIELD 項目定義,並指定 TFS 群組。

    例如,下列程式碼片段可加入至工作定義,將 [指派給] 欄位的一組使用者限制為只有那些加入至 TFS 小組工作群組的小組成員。

    <FIELD name="Assigned To" refname="System.AssignedTo" type="String" reportable="dimension" syncnamechanges="true">
       <HELPTEXT>The person currently working on this task</HELPTEXT>
       <ALLOWEXISTINGVALUE />
       <VALIDUSER group="Team Contributors" />
    </FIELD>
    

    藉由指定 ALLOWEXISTINGVALUE 項目,可避免成員離開小組、不再註冊為專案參與者時,可能發生的驗證錯誤。

問:如何將自訂控制項加入欄位?

**答:**使用追蹤工作項目的物件模型,就可以透過程式設計方式來建立、變更及尋找 Bug、工作和其他 WIT。 您也可以自行建立會將功能加入至工作項目表單的自訂控制項。

例如,您可以加入下列自訂控制項,這些控制項可透過 CodePlex 專案 TFS 工作項目追蹤的自訂控制項 (英文) 取得:

  • 螢幕擷取畫面控制項,可用來進行剪貼作業,將影像放入 HTML 欄位中。

  • Web 瀏覽器控制項,可讓使用者裝載網頁並將欄位值傳遞至該網頁。

  • 多值控制項,可顯示核取方塊清單以支援輸入欄位的多個值。

問:如何變更支援專案與 TFS 整合的欄位對應?

**答:**從預設 TFS 流程範本建立的 Team 專案,包含預設的 Microsoft Project 對應檔。 如果您使用 [專案] 來規劃和追蹤儲存在 TFS 中的工作項目,您可能需要對應其他 [專案] 欄位,或變更 TFS 欄位發行和重新整理的方式。 您可以藉由自訂 Microsoft Project 對應檔來執行此動作。

若要了解使用專案與 TFS 工作項目的資訊,請參閱使用 Project 建立您的待處理項目和工作

問:管理大量自訂欄位的最佳方式是什麼?

**答:**如果您需要加入將在數個 WIT 中或跨數個 Team 專案使用的大量自訂欄位,請使用全域工作流程。 您可以簡化維護作業,方法是藉由使用全域工作流程來維護全域欄位集合與挑選清單。 請參閱 全域工作流程 XML 項目參考

問:如何刪除欄位?

**答:**當您從特定類型的工作項目移除欄位時,即使沒有任何 WIT 會再參考該欄位,也不會從集合或資料庫伺服器移除該欄位。 若要移除欄位,請依照下列步驟執行。

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

  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. 如果刪除的欄位是可報告的,可重建資料倉儲以清除舊欄位及其值

如需詳細資訊,請參閱管理工作項目欄位 [witadmin]

問:還有其他哪些區域可以自訂?

**答:**請參閱 您可以在 Visual Studio TFS 中設定及自訂的端對端檢視

問:如果我有其他問題,可以在哪裡尋求解答?

**答:**若要尋找解答或張貼問題,請瀏覽論壇:Team Foundation Server - 專案管理和工作項目