自訂託管的 XML 進程

Azure DevOps Services

Azure DevOps Services 支援透過 Web 型匯入流程的系統體驗來新增和更新流程。 新增流程之後,您可從其中建立一或多個專案。 您可隨時透過再次匯入來更新流程。 接著,對流程範本所做的變更會套用至使用流程的所有專案。

重要

透過裝載的 XML 進程模型,您可以更新進程範本的選取 XML 定義檔案,以自訂工作追蹤。 只有在使用Team Foundation Server 資料庫匯入服務將資料移轉至Azure DevOps Services時,才能使用此功能。

若要深入瞭解自訂和處理模型,請參閱 自訂工作追蹤

進程是一個 zip 檔案,其中包含一組相互依存的檔案。 這些檔案會定義工作專案追蹤系統和Azure DevOps Services中其他子系統的建置組塊。 有些建置組塊會更新現有的專案,而其他建置組塊則僅適用于新專案。 如需建置組塊的完整清單,請參閱下表。

匯入/更新進程時使用

建立新專案時使用

由系統預設值取代

忽視

工作項目追蹤

鬥智 鬥 勇

類別

程序組態

區域和反覆項目

測試管理

工作項目

工作項目查詢

Build

Lab Management

版本控制

Microsoft Project 對應

報表

入口網站 (SharePoint 產品)

進程匯入支援的進程外掛程式和物件

Azure DevOps Services支援的內容和內部部署 Team Foundation Server 支援的功能之間有差異。 如需這些差異的摘要,請參閱 處理範本自訂差異

如何自訂程式

當您自訂程式時,從定義完善的程式開始,比建置新的程式更容易。

如果您更新與內部部署 Team Foundation Server 搭配使用的現有程式,請確定它符合 範本上放置的條件約束以進行匯入。

開啟設定 > 程式

您可以從 [組織設定 >程式] 建立、管理及自訂處理常式。

  1. 選擇 [ Azure DevOps] 標誌以開啟 [專案]。 然後選擇 [組織設定]。

    開啟組織設定

  2. 然後選擇 [ 處理]。

    [組織設定]、[處理] 頁面

    重要

    如果您沒有看到 [處理],則您正從 TFS-2018 或更早版本工作。 不支援 [ 處理] 頁面。 您必須使用 內部部署 XML 進程模型支援的功能。

匯出和匯入程式

  1. 從 [ 進程] 索引標籤中,選取省略號 (...) ,以開啟您要匯出之 [託管 XML 進程] 的快捷方式功能表。 您只能匯出託管的 XML 進程。

    [進程] 頁面 > [匯出託管 XML 進程] 功能表選項

    儲存 zip 檔案,並從中擷取所有檔案。

  2. 重新命名位於根目錄中ProcessTemplate.xml檔案內的程式。

    將進程命名為與現有進程。

    <name>MyCompany Agile Process </name>

    變更版本類型,並變更主要和次要號碼。 提供型別的相異 GUID,如下列範例所示:

    <version type="F50EFC58-C2FC-4C66-9814-E395D90778A3" major="1" minor="1"/>

  3. 套用支援的自訂。

  4. 建立根目錄中所有檔案和資料夾的 ZIP 檔案。

  5. 匯入自訂程式的 zip 檔案

支援的自訂

您可以將下列自訂套用至您的程式:

下一節列出系統施加的限制。

Restrictions

您最多可將 32 個流程匯入至 Azure DevOps Services。 您的自訂程式必須符合下列所有摘要規則。 否則,在匯入後可能會顯示驗證錯誤訊息。

流程範本

您的ProcessTemplate.xml檔案必須符合 ProcessTemplate XML 元素參考中所述的語法和規則。 此外,它必須符合下列條件:

  • 將定義的 WIT 數目限制為 64
  • 只包含一個Categories.xml定義檔
  • 只包含一個ProcessConfiguration.xml定義檔
  • 在所有欄位和 WIT 定義中使用唯一的易記名稱

此外,您的程式必須通過下列驗證檢查:

  • 進程名稱是唯一的,最多包含 155 個 Unicode 字元。
    • 與現有進程具有相同名稱和版本 GUID 的範本會覆寫該程式。
    • 具有相同名稱但不同版本 GUID 的範本會產生錯誤。
    • 進程名稱不能包含下列特殊字元: . , ; ' ` : / \ * | ? " & % $ ! + = ( ) [ ] { } < >
      如需其他 條件約束,請參閱命名限制
  • 進程資料夾不包含.exe檔案。 即使您可以匯入包含.exe檔案的程式,專案建立也會失敗。
  • 進程的大小總計最多為 2 GB。 否則,專案建立會失敗。

處理設定

ProcessConfiguration.xml定義檔必須符合 ProcessConfiguration XML 元素參考中所述的語法和規則。 此外,它必須符合下列條件:

  • 指定所有 TypeFields 元素
  • 限制為五個組合待辦專案
  • 只包含一個未父系的公事包待處理專案
  • 針對每個次級組合待辦專案,只指定一個父組合待辦專案
  • 包含必要的工作流程狀態對中繼狀態對應,且未參考不支援的中繼狀態

類別

Categories.xml定義檔必須符合 Categories XML 元素參考中所述的語法和規則。 此外,它必須符合下列條件:

  • 限制為 32 個類別
  • 定義ProcessConfiguration.xml檔案中所參考的所有類別

工作項目類型

WITD元素及其子項目必須符合WITD XML 元素參考中所述的語法和規則。 此外,它必須符合下列條件:

  • 在單一 WIT 內最多有 512 個欄位,且所有 WIT 有 512 個欄位。
  • 指派給 WIT 的易記名稱和必要的 refname 屬性在 WIT 定義檔集中是唯一的。
  • 必要的 refname 屬性值不包含不允許的字元,或使用不允許的命名空間 System。名稱和 Microsoft。名稱
  • 參考名稱至少包含一個句號 (.) ,而所有其他字元都是不含空格的字母。
  • WITD元素包含FORM元素,定義符合WebLayout 和 Control 元素中指定的語法的WebLayout元素。

工作項目欄位

FIELDS元素及其子項目必須符合FIELD XML 元素參考中所述的語法和規則。 此外,它必須符合下列條件:

  • 指派給 WIT 的易記名稱和必要的 refname 屬性在 WIT 定義檔集中是唯一的。
  • 必要的 refname 屬性值不包含不允許的字元,或使用不允許的命名空間 System。名稱和 Microsoft。名稱
  • 參考名稱至少包含一個句號 (.) ,而所有其他字元都是不含空格的字母。

FIELD元素及其子專案可以包含GLOBALLIST元素。

限制限制

  • FIELDS元素限制為 512 個欄位。
  • 工作專案類型限制為 64 個人員名稱欄位。 人員名稱欄位是具有 屬性和值的 syncnamechanges=true 欄位。
  • ALLOWEDVALUESSUGGESTEDVALUES元素限制為 512 LISTITEM元素。
  • 欄位限制為 1,024 個規則。

必要的欄位

下欄欄位是在 ProcessConfiguration.xml 檔案中指定:

  • 針對定義進程組態待辦專案之類別中的所有 WIT,請指定用於屬性和值 type=Team 和 的 type=Order 欄位。
  • 針對定義一般待辦專案或組合待辦專案之類別中的所有 WIT,請指定 用於 type=Effort 的欄位。
  • 針對定義 TaskBacklog 專案之類別中的所有 WIT,請指定:
    • 用於 type=RemainingWork 的欄位。
    • 用於 type=Activity 的欄位。
    • 用於 type=Activity 之欄位的ALLOWEDVALUES規則。

規則限制

除了標準 欄位規則限制之外,還會強制執行下列限制:

  • 欄位規則元素無法指定屬性的 。
  • FIELD 元素不能包含子規則元素 CANNOTLOSEVALUENOTSAMEASMATCHPROHIBITEDVALUES
  • 除了下欄欄位之外,System 的 FIELD 定義除外。名稱 欄位不能包含欄位規則。
    • System.Title 可以包含 必要DEFAULT規則。
    • System.Description 可以包含 必要DEFAULT規則。
    • System.AssignedTo 可以包含 REQUIREDDEFAULTALLOWEXISTINGVALUEVALIDUSER規則。
    • System.ChangedBy 可以包含 必要DEFAULTALLOWEXISTINGVALUEVALIDUSER規則。

一致的名稱和屬性

在進程或專案集合中,FIELD元素定義的名稱類型和其他屬性必須在所有 WIT 定義中相同。

識別欄位

識別欄位對應至用來包含帳戶、使用者或組名的欄位。 下列核心系統欄位會硬式編碼為身分識別欄位:

  • 指派給 (System.AssignedTo)
  • 通過授權為 (System.AuthorizedAs)
  • 變更者 (System.ChangedBy)
  • 建立者 (System.CreatedBy)
  • 啟用者 (Microsoft.VSTS.Common.ActivatedBy)
  • 由 (Microsoft.VSTS.Common.ClosedBy) 關閉
  • 解決者 (Microsoft.VSTS.Common.ResolvedBy)
新增自訂識別欄位

當您將 屬性 syncnamechanges 指定為 True 時,字串欄位會辨識為識別欄位。

身分識別欄位的規則限制

針對目前的進程匯入版本,請勿在 FIELD 定義中指定下列任何規則。

  • SUGGESTEDVALUES
  • 包含非識別碼值的規則。
正確的範例

若要限制識別欄位中有效的帳戶名稱,請使用組名屬性指定 VALIDUSER 專案。

    <FIELD name="Project Manager" refname="Fabrikam.ProgramManager" type="String" reportable="dimension" syncnamechanges="true">
        <ALLOWEXISTINGVALUE />
        <VALIDUSER group="[PROJECT]\Program Manager Group" />
        <HELPTEXT>The program manager responsible for signing off on the user story.</HELPTEXT>
    </FIELD>

匯入程式之前,請確定您已在進程更新的專案中建立群組。

不正確的範例

下列範例無效,因為它指定:

  • ALLOWEDVALUES 項目。
  • 指定 DEFAULT 非識別碼字串 value="Not Assigned" 的專案。
    <FIELD name="Project Manager" refname="Fabrikam.ProgramManager" type="String" reportable="dimension" syncnamechanges="true">
        <ALLOWEXISTINGVALUE />
        <ALLOWEDVALUES>
          <LISTITEM value="[PROJECT]\Program Manager Group" />
          <LISTITEM value="Not Assigned" />
        </ALLOWEDVALUES>
        <DEFAULT from="value" value="Not Assigned" />
        <VALIDUSER />
        <HELPTEXT>The program manager responsible for signing off on the user story.</HELPTEXT>
    </FIELD>

工作流程

WORKFLOW元素及其子項目必須符合WORKFLOW XML 元素參考中所述的語法和規則。 此外,它必須符合下列條件:

  • 將每個 WIT 限制為 16 個工作流程狀態
  • 定義所有對應至 ProcessConfiguration 定義檔中中繼狀態的工作流程狀態
  • 定義對應至 「建議」狀態類別的所有工作流程狀態與對應至 「InProgress」 狀態類別目錄的工作流程狀態之間的轉換
  • 定義對應至 「InProgress」 狀態類別的所有工作流程狀態與對應至「完整」狀態類別目錄的工作流程狀態之間的轉換。

如需狀態類別和對應的描述,請參閱 工作流程狀態和狀態類別

全域清單

針對託管的 XML 進程模型,會將下列限制放在全域清單匯入上:

  • 最多有 64 個全域清單。
  • 每個清單最多有 512 個專案。
  • 在跨所有 WIT 指定的所有全域清單中,大約可以定義 10,000 個專案。

表單配置

FORM元素及其子項目必須符合FORM XML 元素參考中所述的語法和規則。

Control元素無法指定自訂控制項。 不支援自訂控制項。