分享方式:


自訂裝載的 XML 程式

Azure DevOps Services

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

重要

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

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

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

匯入/更新進程時使用

建立新專案時使用

由系統預設值取代

忽視

工作項目追蹤

機智

類別

進程組態

區域和反覆專案

測試管理

工作項目

工作項目查詢

建立

Lab Management

版本控制

Microsoft項目對應

報表

入口網站 (SharePoint 產品)

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

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

如何自定義程式

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

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

開啟設定>程式

您可以從組織設定>程式建立、管理及自訂程式

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

    開啟 [組織設定]

  2. 然後選擇 [ 處理]。

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

    重要

    如果您沒有看到 Process,則您正在從 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 檔案。

支援的自訂

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

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

限制

您最多可將 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 屬性值不包含不允許的字元,或使用不允許的命名空間系統。名稱和 Microsoft。名稱
  • 參考名稱至少包含一個句號(.),而所有其他字元都是沒有空格的字母。
  • WITD 元素包含 FORM 元素,定義符合 WebLayout 和 Control 元素中所指定語法的 WebLayout 元素

工作專案欄位

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

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

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

限制限制

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

必填欄位

ProcessConfiguration.xml 檔案中指定了下列欄位:

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

規則限制

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

  • 欄位規則項目無法指定 屬性的 。
  • FIELD 元素不能包含子規則專案 CANNOTLOSEVALUENOTSAMEASMATCHPROHIBITEDVALUES
  • 除了下列欄位之外, System 的 FIELD 定義除外。名稱 欄位不能包含欄位規則。
    • System.Title 可以包含必要DEFAULT 的規則
    • System.Description 可以包含 REQUIREDDEFAULT 規則
    • System.AssignedTo 可以包含 REQUIRED、DEFAULT、ALLOWEXISTINGVALUE 和 VALIDUSER 的規則。
    • System.ChangedBy 可以包含 REQUIRED、DEFAULT、ALLOWEXISTINGVALUE 和 VALIDUSER 規則。

一致的名稱和屬性

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

識別欄位

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

  • 指派給 (System.AssignedTo)
  • 授權為 (System.AuthorizedAs)
  • 變更者 (System.ChangedBy)
  • 建立者 (System.CreatedBy)
  • Activated By (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 個全域清單。
  • 每個清單最多有1,024個專案。
  • 在所有 WIT 所指定的全域清單中,總共可以定義大約 10,000 個專案。

表單配置

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

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