共用方式為


管理工作項目欄位 [witadmin]

您可以使用下列 witadmin 命令,管理針對 Team 專案集合定義的工作項目類型欄位:

  • changefield:變更某個欄位的一或多個屬性。 當您變更下列其中一個屬性時,即是針對 Team 專案集合內所有工作項目類型和 Team 專案進行變更:

    • PlainText 或 HTML 欄位的資料類型

      重要

      當您將 Team Foundation Server 從舊版本升級至目前版本時,會自動將 [描述] (System.Description) 欄位的類型指派從 PlainText 轉換為 HTML。您可以使用 changefield 命令,還原此欄位的內容以顯示純文字。

    • 顯示於工作項目查詢中的易記名稱。 此名稱可能會與工作項目表單上所顯示的名稱不同。

    • 報表屬性:包括欄位出現在報表中的名稱、參考報表名稱和報表類型。

    • 與 Active Directory 同步處理 - 您可以啟用/停用人員名稱欄位的同步處理。

  • deletefield:刪除指定的欄位。

  • indexfield:開啟或關閉所指定欄位的索引。 啟用欄位的索引時,如果工作項目的查詢指定了該欄位,則尋找這些工作項目的效能可能會提高。 如果您加入會在許多工作項目查詢中使用的自訂欄位,則可以考慮啟用該欄位的索引。

  • listfields:列出所有欄位或所指定欄位的屬性。

若要執行 witadmin 命令列工具,請開啟安裝 Visual Studio 或 Team Explorer 的命令提示字元視窗,並輸入:

cd %programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE

在 Windows 32 位元版本中,將 %programfiles(x86)% 取代為 %%programfiles%

如需 Team Foundation Server 所提供預設流程範本內定義之欄位的概觀,請參閱 Visual Studio ALM 的工作項目欄位參考

注意事項注意事項

您可以使用流程編輯器 (Visual Studio 的強大工具),建立及修改工作項目欄位。不支援此工具。如需詳細資訊,請參閱 Microsoft 網站上的下列網頁:Team Foundation Server Power Tools (英文)。

需求

  • 若要列出欄位,您必須將集合中 Team 專案的 [檢視專案層級資訊] 權限設為 [允許]。

  • 您必須是 [Team Foundation Administrators] 安全性群組或 [Project Collection Administrators] 安全性群組的成員,才能刪除或重新命名欄位,或是變更欄位的屬性。

如需詳細資訊,請參閱Team Foundation Server 的權限參考

注意事項注意事項

即使您使用系統管理權限登入,還是必須開啟提升權限的命令提示字元視窗,在執行 Windows Server 2008 的伺服器上執行此功能。若要開啟提升權限的命令提示字元視窗,請選擇 [開始],並開啟 [命令提示字元] 捷徑功能表,然後選擇 [以系統管理員身分執行]。如需詳細資訊,請參閱 Microsoft 網站:使用者存取控制

witadmin changefield /collection:CollectionURL /n:RefName    [/name:NewName]     [/syncnamechanges:true | false]    [/reportingname:ReportingName]     [/reportingrefname:ReportingRefName]    [/reportingtype:Type]    [/reportingformula:Formula]    [/type:PlainText | HTML]    [/noprompt]

witadmin deletefield /collection:CollectionURL /n:RefName [/noprompt]

witadmin indexfield /collection:CollectionURL /n:Name /index:on|off 

witadmin listfields /collection:CollectionURL /n:RefName [/unused]

參數

參數

描述

/collection:CollectionURL

指定 Team 專案集合的 URI。 URI 的格式如下:http://ServerName:Port/VirtualDirectoryName/CollectionName

如果不使用任何虛擬目錄,則 URI 格式如下:

http://ServerName:Port/CollectionName

/n:RefName

/n:Name

工作項目類型欄位的參考名稱。

/index

指定啟用或停用所指定欄位的索引。 指定 on 可啟用索引,而指定 off 可停用索引。

/name:NewName

指定欄位的新名稱。

/syncnamechanges

指定使用工作項目欄位來儲存名稱,並在 Active Directory 或某個工作群組中進行變更時更新。 只有針對 typename 指定資料類型為 String 的欄位時,此選項才有效。

指定 true 可啟用資料欄位的同步處理,指定 false 可停用資料欄位的同步處理。

/reportingname:ReportingName

指定資料倉儲中用於報表的欄位名稱。

/reportingrefname:ReportingRefName

指定資料倉儲中用於報表的欄位參考名稱。

/reportingtype:Type

指定如何在倉儲中將欄位用於報表。 下列是有效值:

  • dimension: 用於 Integer、String 或 DateTime 欄位。

  • detail: 用於 Integer、Double、String 或 DateTime 欄位。

  • measure: 用於 Integer 和 Double 欄位。 預設彙總類型是 sum。 您可以使用 formula 參數指定另一種彙總類型。

  • none: 用來停用欄位的報告功能。

如需詳細資訊,請參閱定義和修改工作項目欄位

/reportingformula:Formula

指定要將欄位回報為 measure 時使用的彙總公式。 唯一支援的公式是 sum。

/type:HTML | PlainText

指定將欄位的內容從 PlainText 轉換為 HTML 或從 HTML 轉換為 PlainText。 只有針對類型指派為 PlainText 或 HTML 的欄位,才能指定此選項。 請參閱 FIELD (定義) 項目參考

/unused

列出 Team 專案集合中定義之任何 Team 專案未使用的所有欄位。

/noprompt

停用確認提示。

/? or help

顯示 [命令提示字元] 視窗中命令的說明。

備註

索引欄位

查詢索引是根據那些已啟用索引的欄位所建立。 執行包含索引欄位的查詢時,此索引會改善回應時間。

下列欄位預設會有索引:[指派給]、[建立日期]、[變更者]、[狀態]、[原因]、[區域 ID]、[反覆項目 ID] 和 [工作項目類型]。 如果您的小組還有其他經常在查詢中使用的欄位,您可以將這些欄位加入至查詢索引。

與 Active Directory 同步處理人員名稱

您必須手動啟用任何自訂工作項目欄位的同步處理,而這些自訂工作項目欄位可用來指派參考 Active Directory 的人員名稱。 您必須針對每個含有自訂欄位之 Team 專案集合的每個欄位,啟用同步處理。

所有顯示人員名稱的系統參考欄位都會將屬性 syncnamechanges 設為 true。這類欄位包括 System.AuthorizedAs、System.AssignedTo、System.ChangedBy 和 System.CreatedBy。針對其中一個預設流程範本中定義的每個人員名稱欄位,會啟用同步處理。 如需詳細資訊,請參閱指派和工作流程欄位參考

啟用同步處理之後,欄位就不會再顯示靜態字串。 欄位會改為顯示與使用者帳戶相關聯的名稱。 當您在 Active Directory 或工作群組中變更使用者名稱時,syncnamechanges 設為 true 的欄位會自動顯示新的名稱。

當您將 syncnamechanges 屬性指派給 String 欄位時,該欄位一律會接受有效的使用者名稱。 不過,如果下列任何一個條件為 true,欄位會不允許儲存於 Team Foundation Server 或 Active Directory 的群組名稱:

  • VALIDUSER 規則是針對所有工作項目類型所指定

  • VALIDUSER 規則是針對某種工作項目類型所指定

  • ALLOWEDVALUES 規則是針對某種工作項目類型所指定,而且該規則具有可排除群組的篩選準則

如需詳細資訊,請參閱所有 FIELD XML 項目參考

您可以針對每種工作項目類型變更的屬性

變更欄位所在的工作項目類型定義,即可變更針對欄位所定義的下列屬性或值:

範例

除非另行指定,下列的值會套用在每個範例:

  • Team 專案集合的 URI:http://AdventureWorksServer:8080/tfs/DefaultCollection

  • 工作項目欄位名稱:AdventureWorks.Field

  • 預設編碼:UTF-8

清單欄位

使用 witadmin listfields 查看使用中的一組欄位,以選取要加入至工作項目類型的欄位。 您也可以列出針對特定欄位定義的屬性指派,並決定哪些 Team 專案使用哪些欄位。

檢視工作項目欄位的屬性

  • 輸入下列命令,以列出針對指定欄位所定義的屬性 (如 Microsoft.VSTS.Common.Issue)。

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:Microsoft.VSTS.Common.Issue
    

    具名欄位會顯示欄位和屬性資訊 (如此範例所示)。

    Field: Microsoft.VSTS.Common.Issue
    Name: Issue
    Type: String
    Reportable As: dimension
    Use: Adventure Works (Shared Steps), AW Future (Shared Steps), AW Current (Shared Steps)
    Indexed: False
    

    Use 參數指出每個專案的名稱,以及使用欄位的工作項目類型。 如需欄位屬性的詳細資訊,請參閱 Visual Studio ALM 的工作項目欄位參考

列出 Team 專案集合中的所有欄位

  • 輸入下列命令,以列出針對 Team 專案集合所定義的所有欄位。

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection
    

    具名專案集合之所有欄位的欄位資訊隨即出現。 請參閱 Visual Studio ALM 的工作項目欄位參考

列出未使用的欄位

  • 輸入下列命令,列出 Team 專案集合中任何工作項目類型都不再使用的欄位。

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /unused
    

    每個未使用的欄位都會顯示欄位和屬性資訊 (如此範例所示)。

    Field: Microsoft.VSTS.CMMI.TaskType
    Name: Task Type
    Type: String
    Reportable As: dimension
    Use: Not In Use
    Indexed: False
    
    Field: Microsoft.VSTSUE.Common.Flag
    Name: Flag
    Type: String
    Reportable As: dimension
    Use: Not In Use
    Indexed: False
    
    Field: Microsoft.VSTSUE.Common.Progress
    Name: Progress
    Type: String
    Reportable As: dimension
    Use: Not In Use
    Indexed: False
    

重新命名欄位

您可以變更工作項目欄位的易記名稱,以符合小組使用的命名慣例。 請注意,新的名稱會套用至所有工作項目類型,而這些工作項目類型會參考專案集合之所有 Team 專案中的已變更欄位。 當您在工作項目查詢中定義篩選準則時,會顯示易記名稱。 工作項目表單上顯示的名稱可能會與針對該欄位定義的易記名稱不同。

重新命名工作項目欄位

  1. 輸入下列命令,將指派給 Microsoft.VSTS.Common.Rank 的易記名稱重新命名為 Important Rank。

    witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:Microsoft.VSTS.Common.Rank /name:"Important Rank"
    
  2. 在確認提示中,輸入 y,然後按 ENTER。 請稍候,直到您收到下列訊息:

    Field renamed.

確認已匯入至單一專案的變更

  1. 在 Team Explorer 中,選擇 重新整理 [重新整理]。

    這些最新的更新乃是從伺服器下載而來,包括您剛剛對欄位名稱進行的變更。 等候數秒,直到重新整理完成。

  2. 選擇 [新增查詢] 以建立查詢。

  3. 在查詢編輯器中,選擇 [按一下這裡加入子句] 連結加入一資料列,並選取空白 [欄位] 儲存格,然後在儲存格中輸入 Rank。 下列是出現在結果清單上方的訊息。 此訊息指出找不到 Rank。

    **執行此查詢來查看查詢結果。**TF51005: 查詢參考的欄位不存在。 錯誤由 <<Rank>> 造成。

  4. 刪除 [欄位] 儲存格中的 Rank 值,並在儲存格中輸入 Important Rank。

  5. 在 [運算子] 儲存格中選取 [<>],並在 [值] 儲存格中輸入 1。

  6. 在 [查詢] 工具列上,選擇 執行查詢 (Team Explorer) [執行]。

  7. 開啟結果中任一列的捷徑功能表,然後選取 [資料行選項]。 在 [可用的資料行] 清單中向下捲動。 請注意,[Rank] 欄位已不存在,但是 [Important Rank] 欄位存在。

  8. 在 [可用的資料行] 方塊中選取 [Important Rank],然後選擇 [>] 按鈕 (加入選取的資料行)。 選擇 [確定]。

    請注意,在查詢產生器和結果清單中,Microsoft.VSTS.Common.Rank 的易記名稱已從 Rank 重新命名為 Important Rank。

  9. 關閉查詢。 系統提示您儲存查詢時,請選擇 [否]。

  10. 建立新的「工作」工作項目。 選擇 [新增工作項目] 連結,然後選擇 [工作]。

    此工作項目是從您變更和匯入的工作項目類型所建立。

  11. 請注意,在 [狀態] 方塊中,已重新命名欄位 [Rank] 的標籤並未變更。 這是因為工作項目表單上欄位標籤的範圍設定為父 Team 專案,而且與剛剛指定的全伺服器欄位名稱無關。

    注意事項注意事項

    如需如何變更工作項目表單上之欄位標籤的詳細資訊,請參閱 Control XML 項目參考

  12. 關閉新的工作,並在系統提示您儲存工作項目時選擇 [否]。

變更報表做為欄位的值

下列命令指定將 DateTime 欄位 AdventureWorks.CreatedOn 的類型回報為維度的能力。 此欄位的資料會輸入倉儲和 Analysis Services 資料庫,以用來篩選報表。

witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:AdventureWorks.CreatedOn /reportingtype:dimension

下列命令指定將 Double 欄位 AdventureWorks.Field 的類型回報為度量的能力。 所有度量都是透過 sum 彙總。

witadmin reportfield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:AdventureWorks.Field /reportingtype:measure

啟用自訂人員名稱欄位的同步處理

下列命令會在 AdventureWorksServer 上,為針對 Collection1 定義的工作項目欄位 AW.CustomerName 啟用同步處理。

確認您要轉換之欄位的資料類型

  • 輸入下列命令,確認指派給您要同步處理之欄位的資料類型 (如 MyCompany.CustomerName):

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomerName
    

啟用同步處理

  1. 若要啟用人員名稱欄位的同步處理,請輸入下列命令,並以您的資料取代這裡顯示的引數:

    witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomerName /syncnamechanges:true
    
  2. 隨即出現下列確認提示:

    This will change properties for field {0} on the Team Foundation Server. Do you want to continue?

  3. 輸入 0 確認您要變更欄位,或輸入 1 取消要求。

    如果變更要求成功,就會出現下列確認訊息:

    The field was updated.

    如果變更要求失敗,就會出現一則錯誤訊息。 最常犯的錯誤是嘗試變更系統參考欄位,或嘗試變更非 String 之資料類型的欄位。 不支援這些作業。

刪除欄位

在您刪除欄位之前,請確認欄位未使用。 如果欄位正在使用中,您必須先從使用欄位的工作項目類型中移除欄位,再從 Team 專案集合中刪除欄位。 下列命令會從 Collection1 中刪除欄位 AdventureWorks.Field:

witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:AdventureWorks.Field

確認欄位未使用

  1. 輸入下列命令,並指定工作項目欄位 (如 MyCompany.MyProcess.MyField) 的參考名稱。

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.MyProcess.MyField
    

    在針對欄位顯示的資訊中,確認 Use 的值是 "Not In Use" (如此範例所示)。

    Field: MyCompany.MyProcess.MyField
    Name: MyField
    Type: String
    Reportable As: dimension
    Use: Not In Use
    Indexed: False
    
  2. 如果 Use 欄位指出欄位正在使用中,您必須從每個所列出 Team 專案的每個工作項目類型中刪除該欄位。 例如,Microsoft.VSTS.TCM.SystemInfo 欄位指出下列四個專案的 Bug 和程式碼缺失工作項目類型正在使用該欄位:Arroyo、Desert、Palm 和 Springs。

    Field: Microsoft.VSTS.TCM.SystemInfo
    Name: System Info
    Type: Html
    Reportable As: None
    Use: Arroyo (Bug), Desert (Bug), Palm (Bug), Springs (Bug, Code Defect)
    Indexed: False
    

    您必須從針對每個定義此欄位之 Team 專案所列出的每個工作項目類型移除此欄位,才能將其刪除。 若要移除欄位,請刪除含有欄位參考名稱的 FIELD 和 Control 項目,以修改工作項目類型的定義。 請參閱匯入、匯出和管理工作項目類型 [witadmin]FIELD (定義) 項目參考Control XML 項目參考

從 Team 專案集合中刪除欄位

  • 輸入下列命令,刪除 MyCompany.MyProcess.MyField 欄位,然後選擇 Enter。

    witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:RefName
    

    在確認提示中,輸入 y 以完成此步驟。

問與答

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

**答:**您可以加入自訂欄位、自訂挑選清單,以及將規則加入欄位。 設定功能精靈會更新您的 Team 專案,且您可以存取最新的功能。

不建議變更欄位屬性。 若要了解您可以安全地進行哪些自訂,以及您應該避免哪些自訂的詳細資訊,請參閱自訂工作追蹤經驗:請先了解維護和升級的含意再進行自訂

請參閱

概念

解決資料倉儲中發生的結構描述衝突

加入或修改工作項目欄位以支援報告

Visual Studio ALM 的工作項目欄位參考

Visual Studio ALM 的可報告欄位參考

其他資源

witAdmin:自訂及管理追蹤工作的物件