Azure DevOps Services
Azure DevOps 支持通过基于 Web 的 导入过程的管理体验添加和更新进程。 添加进程后,可以从该进程创建一个或多个项目。 你随时可以通过再次导入来更新进程。 然后,对进程模板所做的更改将应用于使用该进程的所有项目。
重要
使用托管 XML 进程模型,可以通过更新进程模板的 SELECT XML 定义文件来自定义工作跟踪。 仅当数据通过使用 Azure DevOps 数据迁移工具迁移到 Azure DevOps Services 时,此功能才可用。 如果使用继承过程模型,可以通过 创建继承过程通过用户界面自定义工作跟踪。 如果使用本地 XML 进程模型,则可以自定义进程模板,请参阅 上传或下载进程模板 并 自定义进程模板
有关自定义和进程模型的详细信息,请参阅 “自定义工作跟踪”。
进程是包含一组相互依赖文件的 zip 文件。 这些文件定义 Azure DevOps 中工作项跟踪系统和其他子系统的构建基块。 某些构建基块更新现有项目,而另一些则仅适用于新项目。 有关构建模块的完整列表,请参阅下表:
导入/更新进程时使用 | 创建新项目时使用 | 替换为系统默认值 | 忽视 |
---|---|---|---|
工作项跟踪 | 区域和迭代 | 生成 | Microsoft 项目映射 |
工作项类型 (WIT) | 测试管理 | 实验室管理 | 报表 |
类别 | 工作项 | 版本控制 | 门户 (SharePoint 产品) |
进程配置 | 工作项查询 |
先决条件
有关定制 Azure Boards 以满足特定业务需求的指导,请参阅 关于配置和自定义 Azure Boards。
类别 | 要求 |
---|---|
权限 | - 若要创建、删除或编辑进程:必须是项目集合管理员组的成员,或者将特定集合级别权限(创建进程、删除进程、编辑进程或从组织中删除字段)设置为允许。 有关详细信息,请参阅 设置工作跟踪的权限和访问权限,自定义继承的进程。 - 若要更新版块:必须是团队管理员或是项目管理员组的成员。 |
访问 | - 即使你拥有 基本 或更低访问权限,如果有人授予你执行此作的权限,你仍然可以更改进程。 - 若要更新和更改现有工作项的类型:必须是项目的成员。 |
项目进程模型 | - 具有包含项目的项目集合的继承流程模型。 - 如果将数据迁移到 Azure DevOps Services,请使用 Team Foundation Server 数据库导入服务。 |
知识 | 熟悉 自定义和处理模型。 |
自定义进程
与其从头创建一个新的流程,不如从一个定义明确的流程开始,自定义流程效率更高。
如果要更新以前用于 Azure DevOps Server 的现有进程,请确保它遵循 模板导入所需的约束 ,以避免在导入过程中出现验证错误。
导出和导入进程
执行以下步骤来导入或导出进程:
登录到你的组织 (
https://dev.azure.com/{Your_Organization}
)。选择
“组织设置”。
选择 “进程”。
重要
如果未看到 “进程”(Process),则你正在使用不支持 “进程”(Process) 页的早期版本。 使用本地 XML 进程模型支持的功能。
选择省略号(...)以打开要导出的托管 XML 进程的快捷菜单。 只能导出托管 XML 进程。
保存 zip 文件并从中提取所有文件。
重命名位于根目录中ProcessTemplate.xml文件中的进程。
为进程命名以将其与现有进程区分开来。
<name>MyCompany Agile Process </name>
更改版本类型,并更改主要和次要编号。 为类型提供不同的 GUID,如以下示例所示:
<version type="F50EFC58-C2FC-4C66-9814-E395D90778A3" major="1" minor="1"/>
应用 支持的自定义。
在根目录中创建所有文件和文件夹的 zip 文件。
导入自定义进程的 zip 文件。
支持的自定义
可以将以下自定义应用到你的进程:
- 添加、删除或修改 WIT
- 添加或修改字段
- 最多添加五个项目组合积压
- 添加 在进程配置中使用的类别
- 修改进程配置
- 添加全局列表
差异
Azure DevOps Services 和 Azure DevOps Server 使用不同的模型来关联项目和流程:
- 在 Azure DevOps Server 中,进程模板充当项目的起点,自定义范围限定为单个项目。
- 在 Azure DevOps Services 中,进程跨多个项目共享,并充当自定义范围。
定义进程模板的结构和语法大多是一致的,只有针对 Azure DevOps Services 和 Azure DevOps Server 设计的模板之间的细微差异。
注释
仅 Azure DevOps Services 支持从托管 XML 迁移到继承的模型,而 Azure DevOps Server 中不支持这种迁移。
限制
最多可以将 32 个进程导入 Azure DevOps Services。 自定义进程必须符合以下所有汇总规则。 否则,导入时可能会出现验证错误消息。
不支持的自定义项和未引用的插件文件
任何 XML 定义文件中对以下对象的引用都会导致导入时出现验证错误:
- 工作项窗体上的自定义控件
- 自定义链接类型
- 全局工作流
- 团队现场支持
- 肯定 和 否定 规则
- 匹配规则支持
以下插件及其关联的文件不用于定义过程,也不用于更新现有项目:但是,在创建新项目时,它们用于创建对象或项目。
- 分类
- 使用工作项查询语言 (WIQL) 语法定义的工作项查询
- 测试管理
- 工作项
注释
WIQL 长度不得超过 32-K 个字符。 系统不允许创建或运行超过该长度的查询。
以下插件及其关联的文件将替换为系统默认值:
- 生成
- 组和权限
- 实验室
- 版本控制
将忽略以下插件及其关联的文件:
- Microsoft 项目映射
- 报表
- Windows SharePoint 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 中最多有 1,024 个字段,所有 WIT 中最多有 1,024 个字段。
- 分配给 WIT 的友好名称和必需
refname
属性在 WIT 定义文件中是唯一的。 - 必需的
refname
属性值不包含不允许的字符或使用不允许的System.Name
命名空间和Microsoft.Name
。 - 引用名称至少包含一个句点(.),所有其他字符都是没有空格的字母。
- 该
WITD
元素包含一个FORM
WebLayout
元素,该元素定义符合 WebLayout 和 Control 元素中指定的语法的元素。
工作项字段
FIELDS
元素及其子元素必须符合 FIELD XML 元素引用中所述的语法和规则。 此外,它必须满足以下条件:
- 分配给 WIT 的友好名称和必需
refname
属性在 WIT 定义文件中是唯一的。 - 必需的
refname
属性值不包含不允许的字符或使用不允许的System.Name
命名空间和Microsoft.Name
。 - 引用名称至少包含一个句点(.),所有其他字符都是没有空格的字母。
FIELD
元素及其子元素可以包含元素GLOBALLIST
。
限制限制
- 元素
FIELDS
限制为 1,024 个字段。 - 工作项类型限制为 64 个人员名称字段。 人员名称字段是具有特性和值的
syncnamechanges=true
字段。 -
ALLOWEDVALUES
或SUGGESTEDVALUES
元素限制为 512LISTITEM
个元素。 - 字段限制为 1,024 条规则。
必填字段
类别 | 要指定的字段 |
---|---|
进程配置积压工作 | 用于属性和值的字段 type=Team 和 type=Order |
常规积压或组合积压 | 用于 type=Effort |
任务积压 | - 用于 type=RemainingWork 的字段 - 用于 type=Activity - ALLOWEDVALUES 的字段,适用于 type=Activity 的规则的字段 |
规则限制
限制 | 详细信息 |
---|---|
字段规则元素不能指定 for 和 not 属性。 | 字段规则元素中不允许使用这些属性。 |
FIELD 元素不能包含子规则元素CANNOTLOSEVALUE 、NOTSAMEAS 和 MATCH PROHIBITEDVALUES 。 |
这些子规则元素不受支持在FIELD 元素中。 |
FIELD 字段 System.Name 的定义不能包含字段规则,但特定字段除外。 |
只有某些字段可以包含特定规则,如本文中所述。 |
System.Title |
可以包含规则 REQUIRED 和 DEFAULT 。 |
System.Description |
可以包含规则 REQUIRED 和 DEFAULT 。 |
System.AssignedTo |
可以包含规则REQUIRED 、DEFAULT 和ALLOWEXISTINGVALUE VALIDUSER 。 |
System.ChangedBy |
可以包含规则REQUIRED 、DEFAULT 和ALLOWEXISTINGVALUE VALIDUSER 。 |
一致的名称和属性
在进程或项目集合中,所有由name
元素定义的type
、FIELD
和其他属性在所有 WIT 定义中必须相同。
标识字段
标识字段对应于用于包含帐户、用户或组名称的字段。 以下核心系统字段作为标识字段进行硬编码:
字段名称 | 引用名称 |
---|---|
分配到 | System.AssignedTo |
授权为 | System.AuthorizedAs |
更改者 | System.ChangedBy |
创建者 | System.CreatedBy |
激活者 | Microsoft.AzureDevOps.Common.ActivatedBy |
关闭者 | Microsoft.AzureDevOps.Common.ClosedBy |
解决者 | Microsoft.AzureDevOps.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.xml 定义文件中的元状态的工作流状态
- 定义映射到“建议”状态类别的所有工作流状态与映射到“InProgress”状态类别的工作流状态之间的转换
- 定义映射到“InProgress”状态类别的所有工作流状态与映射到“完成”状态类别的工作流状态之间的转换
有关状态类别和映射的说明,请参阅 工作流状态和状态类别。
全局列表
对于托管 XML 进程模型,全局列表导入存在以下限制:
- 最多有 64 个全局列表
- 每个列表最多有 1,024 个项目
- 在所有 WIT 中指定的所有全局列表中,共定义大约 10,000 个项目。
窗体布局
FORM
元素及其子元素必须符合 FORM XML 元素引用中所述的语法和规则。
元素 Control
无法指定自定义控件。 不支持自定义控件。