建議使用 Visual Studio 2017

修改或加入自訂工作項目類型 (WIT)

身為專案系統管理員,您可能需要修改現有的工作項目類型 (WIT),以支援其他追蹤需求或工作流程。 最常見修改 WIT 的原因是加入或修改一組欄位或欄位規則、變更工作流程,或自訂工作項目表單。 這三個原因對應 WIT XML 定義檔的三個主要區段:FIELDSWORKFLOWFORM

這些修改要求您編輯 WIT 定義,因此您只能針對 TFS 內部部署進行修改。 本主題提供自訂內容的概觀,以及說明如何自訂的相關指示。

工作項目類型、自訂

您可以將欄位和欄位規則加入 FIELDS 區段。 若要讓欄位出現在工作項目表單上,您還必須將它加入至 WIT 定義的 FORM 區段。

例如,若要將工作項目 ID 加入至表單,請在 FORM 區段中指定下列 XML 語法。

<Control FieldName="System.ID" Type="FieldControl" Label="ID" LabelPosition="Left" />

若要進一步了解定義欄位,請參閱加入或修改欄位以支援查詢、報表和工作流程

WORKFLOW 中的 STATESREASONS 區段,會指定 [狀態] 和 [原因] 欄位中的挑選清單值。 這些區段會追蹤工作項目的狀態。 TRANSITIONS 區段會指定狀態之間的有效轉換,如下圖所示。 您可以指定向前和迴歸轉換。



範例工作流程狀態圖表

使用者劇本工作流程狀態,Agile 流程範本

您可以變更工作流程來達成下列目的:

  • 加入或移除狀態、原因或轉換。

  • 指定欄位的值,以便在狀態、原因或轉換變更時套用。

  • 指定自訂 ACTION,以根據狀態、原因或轉換的變更將欄位指派作業自動化。

當您自訂工作流程時,請遵循下列兩個步驟:

  1. 修改 WIT 定義的 WORKFLOW

  2. 修改流程組態,將新的工作流程狀態對應至轉移狀態

    在下列情況下,必須進行這個第二個步驟:

    • 當您變更出現在 Agile 規劃工具頁面上之 WIT 的工作流程時。 這些 WIT 屬於需求或工作分類。 若要進一步了解這些工具的設定,請參閱Configure and customize Agile tools for a team project

    • 當您變更測試計劃或測試套件的工作流程以及從 Visual Studio 2013.2 (含) 更早版本所提供的 [測試管理員] 用戶端工作時。 在您將應用程式層伺服器更新為 TFS 2013.3 時,這些 WIT 會變成可用。 顯示於 Agile 規劃工具頁面上。

      如果您在變更工作流程之後於連接至 Team 專案時發生 [應用程式偵測到未預期的錯誤] 錯誤,則解決方式是將新的工作流程狀態對應至轉移狀態。 若要解決此錯誤,請參閱匯入和匯出流程組態 [witadmin]

您可以在變更狀態、指定原因或進行工作流程轉換時套用欄位規則。

例如,只要在狀態設定為 [作用中] 時加入 EMPTY 規則,就可以自動將 [關閉日期] 和 [關閉者] 欄位設定為 null,並使它們成為唯讀。 從已關閉狀態中重新啟用工作項目時,這會非常有用。

<STATE value="Active">
   <FIELDS>
. . .
      <FIELD refname="Microsoft.VSTS.Common.ClosedDate"><EMPTY/></FIELD>
      <FIELD refname="Microsoft.VSTS.Common.ClosedBy"><EMPTY/></FIELD>
   </FIELDS>
</STATE>

套用工作流程欄位規則來完成下列動作:

  • 指定 CANNOTLOSEVALUEEMPTYFROZENNOTSAMEASREADONLYREQUIRED,以限定欄位所能具有的值。

  • 使用 COPYDEFAULTSERVERDEFAULT,將值複製到欄位中。

  • 限制可修改欄位的人員。

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

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

  • 限制要套用至特定使用者或群組的規則。 大部分規則都支援 fornot 屬性,將重點放在套用和不套用規則的使用者。

如需套用工作流程欄位規則的詳細資訊,請參閱 FIELD (工作流程) 項目參考

下圖反白顯示工作項目表單中最常使用的項目。 您可以自訂除了標題區域和表單控制項以外的所有其他項目。

工作項目表單的項目和控制項

您可以自訂 WIT 表單來達成下列目的:

若要編輯 WIT 定義,您可以匯出、修改,然後再匯入 WIT 定義檔。

用於自訂 WIT 物件的處理序

您可以使用 witadmin 來匯入和匯出定義檔。 其他可以用來修改物件之 XML 語法的工具包括流程編輯器 (可隨 TFS Power Tools (英文) 的下載一併取得) 或 TFS Team Project Manager (英文) (CodePlex 提供的社群資源專案)。

  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 定義檔案。 指定 WIT 的名稱和檔案的名稱。

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

    CollectionURL 的範例為 http://MyServer:8080/tfs/TeamProjectCollectionName。

  4. 編輯檔案。 如需詳細資訊,請參閱 Work item tracking: Index to XML element definitions

  5. 匯入 WIT 定義檔案。

    witadmin importwitd /collection:CollectionURL /p:ProjectName /f:"DirectoryPath/FileName.xml"
    
  6. 開啟 TWA 或 Team Explorer 以檢視變更。 如果用戶端已經開啟,則重新整理頁面。

    在 Team Explorer 中,選擇 重新整理重新整理按鈕。

    會從伺服器下載最新的更新 (包括您剛剛匯入的變更)。 等候數秒,直到重新整理完成。

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

答:若要了解如何加入標記和篩選清單,請至這裡

答:您可以加入自訂 WIT 並變更表單配置。 設定功能精靈會更新您的 Team 專案,且您可以存取最新的功能。

如果變更工作流程或重新命名 WIT,則在更新 Team 專案時可能需要您執行一些手動作業。 若要了解您可以放心進行的其他自訂,以及您應該避免的自訂,請參閱自訂工作追蹤經驗:請先了解維護和升級的含意再進行自訂

答:加入新 WIT 的最簡單方法是複製現有的 WIT,然後修改定義檔。 如需範例,請參閱 Create a work item type

答:可以。 若要重新命名現有的 WIT,請使用 witadmin renamewitd 例如,您可以將標記為「QoS 項目」的 WIT 重新命名為「服務合約」。

witadmin renamewitd /collection:"http://FabrikamPrime:8080/tfs/DefaultCollection" /p:"Fabrikam Web Site" /n:"QoS Item" /new:"Service Agreement"

當您重新命名屬於某個分類的 WIT 時,必須更新 Team 專案的分類定義以反映新的名稱。 特別是,若您未更新分類定義,則Agile 規劃工具將無法運作。

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

答:如果您有要淘汰的 WIT,但是仍需維護根據該類型建立的工作項目,您可以加入讓所有有效使用者無法儲存工作項目類型的規則。

<TRANSITION from=" " to="New">
   <FIELDS>
     <FIELD refname="System.CreatedBy">
         <VALIDUSER not="[Team Project Name]Project Valid Users" />
     </FIELD>
   </FIELDS>
</TRANSITION> 

如果您要限制特定 WIT 只能由某個使用者群組建立,有兩種限制存取的方式:

  • 將 WIT 加入至隱藏分類群組可以防止大多數參與者建立它們。 如果您想要允許使用者群組存取,您可以建立範本的超連結開啟工作項目表單,並與那些您希望來建立工作項目的小組成員共用該連結。

  • 欄位規則加入至 System.CreatedBy 欄位的工作流程,可以有效地限制使用者群組以避免建立特定類型的工作項目。 如下列範例所示,建立工作項目的使用者必須屬於 Allowed Group 才能儲存工作項目。

    <TRANSITION from=" " to="New">
       <FIELDS>
         <FIELD refname="System.CreatedBy">
             <VALIDUSER for="Allowed Group" not="Disallowed Group" />
         </FIELD>
       </FIELDS>
    </TRANSITION> 
    

答:若要防止小組成員使用特定 WIT 建立工作項目,您可以從 Team 專案將其移除。 當您使用 witadmin destroywitd 時,會永久移除使用該 WIT 及 WIT 本身建立的所有工作項目。 例如,如果您的小組不會使用「阻礙」,則可以從 Fabrikam 網站專案刪除標示為「阻礙」的 WIT。

witadmin destroywitd /collection:"http://FabrikamPrime:8080/tfs/DefaultCollection" /p:"Fabrikam Web Site" /n:"Impediment" 

當您刪除屬於某個分類的 WIT 時,必須更新 Team 專案的分類定義以反映新的名稱。 特別是,若您未更新分類定義,則Agile 規劃工具將無法運作。

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

答:可以。 在 Team Web Access 中,工作項目會出現於查詢結果,以及出現在敏捷式計劃工具的待處理項目 (Backlog) 和面板頁面上。 若要變更與現有 WIT 相關聯的色彩,或加入要用於新 WIT 的色彩,請編輯流程組態

指派給不同工作項目類型的色彩

答:可以。 Agile 計劃工具 (產品待處理項目 (Backlog)、衝刺待處理項目 (Sprint Backlog) 和工作面板頁面) 會根據用來建立 Team 專案的流程範本顯示特定 WIT。 您可以加入或移除要出現在這些頁面上的 WIT。 例如,如果您的 Team 專案使用 Scrum WIT,則產品待處理項目 (Backlog) 和 Bug 都會在待處理項目 (Backlog) 頁面上出現。 不過,如果 Team 專案是使用 Agile、CMMI 或其他流程範本所建立,則 Bug 不會出現在待處理項目 (Backlog) 或工作面板中。

例如,您可以從產品待處理項目 (Backlog) 頁面加入 Bug。

已新增 Bug 工作項目類型的面板更新內容

若要了解如何在待處理項目 (Backlog) 或工作面板中加入或移除 WIT,請移至這裡 若要加入新的 WIT 以支援 Portfolio 待處理項目,請至這裡

答:下表摘要說明當您修改欄位或 WIT 定義時,對現有工作項目的影響。

動作

對現有工作項目的影響

從 WIT 移除欄位

遭到移除之欄位的資料會保留在資料存放區中。 然而,由於您已將其從 WIT 定義中移除,因此不會再加入新資料。

重新命名欄位

重新命名的欄位資料會保留在資料存放區的新易記名稱下。

刪除欄位

遭到刪除的資欄位料會從資料存放區中移除。

重新命名 WIT

所有資料在新名稱下保持不變。

刪除 WIT

建立為已刪除 WIT 的所有工作項目資料都會永久移除,無法復原。

若要從資料存放區完全移除這些欄位,請使用 witadmin deletefield 命令列工具。 請參閱 管理工作項目欄位 [witadmin]

答: 您無法變更現有工作項目的類型,但是可以複製工作項目並指定新的類型。 例如,您可以複製現有的產品待處理項目 (Backlog) 並將類型變更為 Bug,如下圖所示。

複製工作項目並指定新類型

此外,如果您有數個要變更類型的工作項目,最好是使用 Excel 匯出這些工作項目,然後重新加入它們做為新類型。

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

如需詳細資訊,請參閱Specify work item form controls

使用流程編輯器 (可隨 TFS Power Tools 的下載一併取得) 以修改工作流程,或是檢視工作流程的狀態圖。

顯示: