共用方式為


變更工作項目類型的工作流程

您可以透過匯出 XML 檔並修改其內容,變更工作項目類型的工作流程。 一旦您修改了工作流程,就可以匯入 XML 檔,以便開始使用更新的工作項目類型。

必要的使用權限

您必須是 [Team Foundation Administrators] 群組的成員或專案之 [Project Administrators] 群組的成員,才能執行此程序。 如需詳細資訊,請參閱 Team Foundation Server 使用權限

若要變更工作流程

  1. 如果您要修改單一專案中的工作項目類型,請執行 witadmin exportwitd,以便針對想要修改的工作項目類型匯出 XML 檔。 如需詳細資訊,請參閱 自訂和管理工作項目類型 [witadmin]

  2. 在 Visual Studio 中,依序按一下 [檔案]、[開啟] 和 [檔案]。

    如此會顯示 [開啟檔案] 對話方塊。

  3. 在 [查詢] 下,移至匯出檔案的位置。

    如果您要修改工作項目類型,以便自訂流程範本,請移至存放所下載之流程範本的位置。

    注意事項注意事項

    如果您是執行 Windows Vista,則可能沒有存取特定資料夾的權限。 如果嘗試將工作項目類型匯出至您無法存取的位置,登錄模擬技術便會自動重新導向至已匯出的檔案,並將該檔案儲存在虛擬存放區中。 若要避免此重新導向,可以將此檔案匯出至您能存取的位置。 如需登錄模擬的詳細資訊,請參閱 Microsoft 網站的下列頁面:登錄模擬 (英文) 和 Windows Vista 中常見的檔案及登錄模擬問題

  4. 選取您想要更新的工作項目類型 XML 檔,然後按一下 [開啟]。 然後在收到關於行尾結束符號的提示時,按一下 []。

  5. 在 XML 檔的 <WORKFLOW> 區段中尋找工作項目類型的工作流程定義,如下列 XML 程式碼所示:

    <WORKFLOW>
      <STATES>
        <STATE value="Active">
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <EMPTY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
    ...
    
  6. 插入另一個 <STATE> 項目,在型別定義中加入 Unapproved 狀態。 在下列範例中,新的狀態會以粗體顯示:

    <WORKFLOW>
      <STATES>
        <STATE value="Unapproved">
        </STATE>
        <STATE value="Active">
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <EMPTY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
    ...
    
  7. 在 null 狀態和 Unapproved 狀態之間建立轉換; 若要這麼做,請先在工作流程定義的區段中找出轉換, 接著,插入下列範例中以粗體顯示的 XML 程式碼。

    注意事項注意事項

    由於這項變更的緣故,所有這個類型的新工作項目都將以 Unapproved 狀態開始,且預設原因為 New。

    <TRANSITIONS>
      <TRANSITION from="" to="Unapproved">
        <REASONS>
          <DEFAULTREASON value="New" />
        </REASONS>
      </TRANSITION>
      <TRANSITION from="" to="Active">
        <REASONS>
          <DEFAULTREASON value="New" />
        </REASONS>
        <FIELDS>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
            <COPY from="currentuser" />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
            <COPY from="clock" />
          </FIELD>
          <FIELD refname="System.AssignedTo">
            <COPY from="currentuser" />
          </FIELD>
        </FIELDS>
      </TRANSITION>
    
  8. 刪除在下列 XML 程式碼中反白顯示的 Active 轉換。

    這樣做是因為只能有一個開始轉換。

    <TRANSITIONS>
      <TRANSITION from="" to="Unapproved">
        <REASONS>
          <DEFAULTREASON value="New" />
        </REASONS>
      </TRANSITION>
      <TRANSITION from="" to="Active">
        <REASONS>
          <DEFAULTREASON value="New" />
        </REASONS>
        <FIELDS>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
            <COPY from="currentuser" />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
            <COPY from="clock" />
          </FIELD>
          <FIELD refname="System.AssignedTo">
            <COPY from="currentuser" />
          </FIELD>
        </FIELDS>
      </TRANSITION>
    
  9. 插入下列範例中以粗體顯示的 XML 程式碼,為開始轉換加入 "Ported" 原因, 如此可讓使用者知道此工作項目是全新的,還是從另一個追蹤系統移植而來。

    <TRANSITIONS>
      <TRANSITION from="" to="Unapproved">
        <REASONS>
          <DEFAULTREASON value="New" />
         <REASON value="Ported" />
        </REASONS>
      </TRANSITION>
    ...
    
  10. 插入下列範例中以粗體顯示的 COPY 規則。 這個規則會將 [指派給] 欄位預設為建立此工作項目的使用者,而且只有在開始轉換期間才會評估此規則。

    <TRANSITIONS>
      <TRANSITION from="" to="Unapproved">
        <REASONS>
          <DEFAULTREASON value="New" />
         <REASON value="Ported" />
        </REASONS>
        <FIELDS>
           <FIELD refname="System.AssignedTo">
             <COPY from="currentuser" />
           </FIELD>
        </FIELDS>
      </TRANSITION>
    ...
    
    注意事項注意事項

    在其他 <TRANSITION> 或 <STATE> 項目之下插入這個規則會將此規則的範圍設定為其他轉換或狀態。 如需詳細資訊,請參閱評估規則的方式

  11. 加入下列範例中反白顯示的 XML 程式碼,建立從 Unapproved 狀態到 Active 狀態的轉換。 由於這項變更的緣故,當此工作項目獲得核准時,它可以經歷這個轉換。

    <TRANSITIONS>
      <TRANSITION from="" to="Unapproved">
        <REASONS>
          <DEFAULTREASON value="New" />
         <REASON value="Ported" />
        </REASONS>
        <FIELDS>
           <FIELD refname="System.AssignedTo">
             <COPY from="currentuser" />
           </FIELD>
        </FIELDS>
      </TRANSITION>
      <TRANSITION from="Unapproved" to="Active">
        <REASONS>
          <DEFAULTREASON value="Approved" />
        </REASONS>
      </TRANSITION>
      <TRANSITION from="Active" to="Closed">
        <REASONS>
          <DEFAULTREASON value="Completed" />
          <REASON value="Deferred" />
          <REASON value="Obsolete" />
          <REASON value="Cut" />
        </REASONS>
    ...
    
  12. 在工具列上,按一下 [儲存] 儲存對 XML 檔所做的變更。

  13. 若要將新的工作項目類型匯入單一專案,請參閱 自訂和管理工作項目類型 [witadmin]。 若要將工作項目類型加入至流程範本,請參閱將工作項目的類型定義加入至流程範本

若要驗證匯入單一專案的變更

  1. 在 Team 總管中,按一下 [重新整理],從伺服器下載最新的更新檔。

    這些更新檔含有您剛匯入的變更。 等候數秒,直到載入 [工作項目] 節點為止。 仍在載入中的節點會顯示 [正在執行] 一詞。

  2. 使用您所修改的工作項目類型,建立新的工作項目。 若要這樣做,請以滑鼠右鍵按一下 [工作項目] 節點、指向 [加入工作項目],然後按一下工作項目類型。

    此工作項目是根據您所變更並匯入的工作項目類型建立。

  3. 請注意,初始的 [狀態] 現在成為 [Unapproved],而 [原因] 則為 [New]。 此外,[指派給] 值就是您的帳戶名稱。 按一下 [原因] 欄位,即可看見列出 [New] 和 [Ported] 原因的清單。

  4. 在 [標題] 欄位中輸入標題,然後按一下 [儲存],儲存此工作項目。 等候儲存作業完成,可以參考狀態列上的 [項目已儲存] 指示。

  5. 在 [狀態] 欄位中,選取 [Active] 值來核准此工作項目,並再次將它轉換。 請注意,[原因] 欄位成為 [Approved]。

  6. 在工具列上,按一下 [儲存] 儲存這項轉換。

  7. 按一下 [關閉] 關閉工作項目。

請參閱

概念

設計工作流程

限制狀態轉換

套用欄位規則的時機和位置

其他資源

根據狀態、轉換或原因自動化欄位指派