流程定制和继承

Azure DevOps Services

若要根据组织的需求调整 Azure DevOps 工作跟踪系统,可以通过组织设置自定义继承的流程。 使用继承进程的组织中的所有项目都会获得对该过程所做的自定义。 然后,可以为每个项目组配置项目 待办事项、短期计划和看板

重要

本文仅适用于 Azure DevOps Services 中的继承过程模型。 若要自定义本地项目或更新 XML 定义文件,请参阅 Hosted XML 进程模型自定义托管 XML 进程

你可以对继承的进程进行多个自定义。 最重要的是创建自定义工作项类型(WIT),或修改现有 WIT 以添加自定义字段、修改布局或更改工作流。 继承元素的某些选项已锁定,无法自定义。

本文概述了自定义继承的进程的方法。 有关字段数、WIT、积压工作级别和其他可以自定义的对象的限制的信息,请参阅 工作跟踪、流程和项目限制

注意

可以使用审核日志和审核功能查看对继承过程所做的更改。 有关详细信息,请参阅 Access、导出和筛选审核日志

系统和继承的进程

系统的敏捷、基本、Scrum 和 CMMI 功能成熟度模型集成的流程已锁定,用户无法对其进行更改。 Microsoft拥有这些系统进程并定期更新它们。

继承的进程 是从系统进程自定义的,并从它们所基于的系统进程继承定义。 Microsoft 对系统进程进行的任何更新都会在继承的进程及其子继承进程中自动更新。

组织中的所有项目都可以共享其所有流程。 你可以自定义整个过程,而不是自定义单个项目。

创建继承的进程后,可以对其进行自定义、复制、基于它创建项目,并更改现有项目以使用它。 对继承进程所做的更改会自动更新组织中使用该进程的所有项目。

以下示例显示了 fabrikamprime 组织中项目的列表,以及每个项目使用的过程。 若要更改 Fabrikam Fiber 项目的自定义项,请修改从敏捷系统进程继承的 My Agile 过程。 对“我的敏捷”流程所做的更改还会更新使用该流程的“敏捷设计”项目。 若要自定义其他项目,需要更改它们以使用继承的进程。

项目及其使用的进程的屏幕截图。

更改现有项目的过程

可以将项目使用的进程从一个进程切换到另一个进程。 有关详细信息和说明,请参阅以下文章:

按照列出的文章中的一般指导,可以进行其他更改,例如从 CMMI 更改为敏捷或更改从敏捷为 CMMI。 在更改项目流程之前,请熟悉要更改的过程。 有关详细信息,请参阅 关于进程和进程模板

将项目转换为其他进程时,某些现有工具或工作项可能无效。 例如,缺少新流程所需字段的工作项可能会显示错误。 若要继续更改并保存工作项,必须解决这些错误。 如果流程更改为显示在开发板上的 WIT 添加、删除或隐藏工作流状态,请确保更新项目中定义的所有团队的板列配置。

更改或重命名继承的进程

更改继承的过程非常简单,但在将更改应用到活动项目之前,最好先测试这些更改。 你可以先复制一个流程,再对复制的流程进行更改,以避免影响现有项目,并帮助识别流程变更的负面影响。

可以通过选择进程名称旁边的“更多作”图标并选择“编辑”,在“组织设置”中重命名继承的进程。

进程名称

进程名称具有以下要求:

  • 在组织中必须是唯一的
  • 必须有 128 个或更少的 Unicode 字符
  • 不能包含以下任何字符: .,;':~\/*|?"&%$!+=()[]{}<>

继承对象和自定义对象

每个继承的进程都继承基础基本、敏捷、Scrum 或 CMMI 系统进程中定义的 WIT。 例如,从敏捷继承的进程提供 Bug任务用户情景功能史诗问题和与测试相关的 WIT。

可以为继承进程的“ 工作项类型 ”页上显示的所有 WIT 添加字段和修改工作流和工作项窗体。 还可以添加自定义 WIT。

如果不希望用户基于继承的进程 WIT 创建新工作项,可以通过选择“组织设置”中 WIT 名称旁边的“更多作”图标并从上下文菜单中选择“禁用”来禁用它。

工作项字段

本节描述工作项字段。

字段和字段引用

使用 工作项 来规划和跟踪项目。 每个工作项类型都与 31 个系统字段和多个更特定于类型的字段相关联,这些字段提供有关工作项的跟踪信息。 分配给字段的值存储在工作跟踪数据存储中,你可以查询这些值以确定状态和趋势。

有关为核心系统进程 Scrum、Agile 和 Capability Maturity Model Integration (CMMI)定义的每个字段的说明和用法,请参阅 “工作项”字段索引

字段名

工作项字段名称唯一标识每个工作项字段。 确保字段名称满足以下要求:

  • 在组织或项目集合中必须是唯一的
  • 必须为 128 个或更少的 Unicode 字符
  • 必须至少包含一个字母字符
  • 不能包含任何前导或尾随空格,或两个或多个连续空格
  • 不能包含以下任何字符: .,;':~\/*|?"&%$!+=()[]{}<>

字段名称和定义适用于整个组织。 不能添加具有组织中已存在的字段名称的字段,也不能添加另一个添加到 WIT 的继承进程。

字段自定义项

为组织中的所有项目和流程定义字段。 继承的进程继承系统进程中定义的字段,你可以对它们进行有限的修改。 可以在继承进程中创建和修改自定义字段。

可以将一个进程中为 WIT 定义的任何自定义字段添加到为另一个进程定义的任何 WIT。 还可以在同 一进程中将现有字段添加到另一个 WIT 。 例如,可以将 截止日期 添加到 用户情景Bug WIT。

自定义字段和控件

以下资源介绍如何为继承字段、自定义字段或自定义控件实现各种自定义。

继承的字段

自定义字段

自定义控件

删除或还原已删除的字段

可以删除字段,然后还原该字段。 删除字段会删除与该字段关联的所有数据,包括历史值。 删除后,只能使用 字段 - 更新 REST API 还原字段并恢复数据。

您可以隐藏或从工作项表单中移除字段,而不是彻底删除字段。 有关详细信息,请参阅 “显示”、“隐藏”或删除字段

局限性

  • 定义字段名称或数据类型后,无法更改它。 但是,可以从“ 布局 ”选项卡更改工作项窗体上字段显示的标签。在查询中选择字段时,必须使用字段名称而不是字段标签。
  • 不能修改包含 “状态”、“ 原因”、“ 区域路径”和 “迭代路径 ”字段的窗体上的灰色区域。
  • 区域路径迭代路径选择列表是为每个项目配置的,并且无法通过继承的过程进行自定义。
  • 用户标识字段关联的选取列表,例如“分配给”“更改者”,根据添加到项目或团队的用户而填充。
  • 每个 WIT 最多可以定义 64 个字段,每个进程最多可以定义 512 个字段。
  • 不能导入或定义托管 XML 和本地 XML 进程模型支持的全局列表。

自定义规则和系统规则

每个 WIT 都定义了多个系统规则,例如要求 “标题” 字段或设置“ 值区域 ”字段的默认值。 系统规则还定义工作流状态更改时要执行的动作。

例如,当修改工作项时,多个规则会将当前用户标识复制到“更改者”字段,或者在工作流状态更改为“已关闭”或“完成”时复制到“已关闭”字段。 预定义的系统规则优先于将覆盖这些规则的任何自定义规则。

自定义规则为多个业务用例提供支持,让您不仅限于为字段设置默认值或将其设为必填。 使用自定义规则可以清除字段的值、将值复制到字段中,或基于不同字段值之间的依赖关系应用值。

使用自定义规则,可以根据特定条件定义各种动作。 例如,可以应用规则来支持以下方案:

  • “优先级”定义值时,将 “风险 ”设置为必填字段。
  • 发布值进行更改时,请清除 里程碑的值。
  • 剩余工时的值进行更改时,请将 “已完成工时 ”设置为必填字段。
  • “已批准 ”值为 True 时,将 “审批者” 设置为必填字段。
  • 创建用户故事时,需将 优先级风险工作量 字段设为必填。

有关定义自定义规则的详细信息,请参阅将规则添加到工作项类型(继承过程)。

提示

不能使用规则定义公式。 但是,你可能会找到一个可以满足你需求的解决方案,例如 Power Automate。 有关详细信息,请参阅 工作汇总和其他字段

限制对选择用户组的选择字段的修改

使用条件 current user is a member of a group...current user is not a member of a group... ,您可以为属于或不属于某个组或安全组的用户要求或配置所选字段。 例如,可以将所选用户或组的 “标题 ”或 “状态” 字段设为只读。

根据区域路径限制工作项的修改

请考虑按团队区域路径维护工作项的单一所有权,或者通过使用跨团队共享的自定义状态来正式化列。

可以通过对区域路径设置权限来禁止用户修改所选工作项。 此设置不是规则,而是权限设置。 有关详细信息,请参阅 “创建子节点”,修改区域或迭代路径下的工作项

工作项类型自定义

以下资源描述了继承 WIT 和自定义 WIT 的定制选项。

继承的工作项类型

自定义工作项类型

更改积压工作的默认工作项类型(WIT)会导致该工作项类型默认显示在快速添加面板中。 例如,自定义故事 默认会出现在以下快速添加产品积压工作面板中。

具有默认自定义工作项类型的快速添加面板的屏幕截图。

局限性

  • 不能在积压事项中添加或移除继承的 WIT。
  • 不能更改窗体布局中继承字段的位置。 但是,可以在窗体的一个区域中隐藏字段,并将其添加到窗体中的其他位置。
  • 定义自定义 WIT 后,无法更改其名称。

工作项表单自定义

可以对 WIT 表单进行以下自定义:

继承的组

自定义组

继承的页面

自定义页面

布局和调整大小

工作项的 Web 窗体布局分为三列,如下图所示。

工作项窗体的三列页面布局插图。

如果只向前两列添加组和字段,布局将显示两列。 如果只向第一列添加组和字段,布局将显示一列。

Web 窗体根据可用宽度和布局中的列数调整大小。 在最大宽度下,在大多数 Web 浏览器中,页面中的每个列都在其自己的列中显示。 当显示宽度不能容纳所有列时,列将堆叠显示在左边一列内。

随着显示宽度的减少,列按比例调整大小,如下所示:

  • 对于三列:50%、25% 和 25%
  • 对于两列:66% 和 33%
  • 对于一列:100%

工作流自定义项

可以通过隐藏继承状态或添加自定义状态来自定义任何工作项类型的工作流(WIT)。 继承状态因用于创建自定义进程的系统进程而异:敏捷、基本、Scrum 或功能成熟度模型集成(CMMI)。 有关详细信息,请参阅 工作流状态、转换和原因

每个 WIT 的默认工作流定义两到四种状态,并指定以下工作流作:

  • 每个状态之间的向前和向后转换。 例如,基本进程 事项 WIT 包括三种状态:待办进行中完成
  • 每个状态转换的默认原因。

继承工作流和自定义工作流必须符合以下规则:

  • 定义至少两个工作流状态。
  • “建议 ”或 “正在进行” 状态类别至少定义一个状态。
  • 为每个工作项类型定义最多 32 个工作流状态。

注意

在添加自定义工作流状态之前,请参阅 关于积压和看板中的工作流状态,以了解如何将工作流状态映射到类别。

有关对继承的和自定义的工作流状态的自定义,请参阅以下资源:

继承状态

自定义状态

局限性

  • 不能更改继承状态的名称、颜色或类别,但如果不希望它们可见,可以隐藏它们。
  • 定义后,无法更改自定义状态的名称。
  • 无法更改或自定义默认状态类别名称。
  • 已完成 ”状态类别中只能存在一个状态。 向此类别添加自定义状态会删除或隐藏该类别中的其他任何状态。
  • 不能指定状态转换的自定义 原因 。 使用默认原因,例如移动到状态已分类移出状态已分类
  • 不能更改工作项窗体上 “状态 ”和 “原因 ”字段的位置。

积压工作和板自定义

积压工作和董事会是创建和管理团队工作的基本敏捷工具。 从系统流程继承的标准产品、迭代和项目组合待办事项是完全可自定义的。 您还可以添加自定义项目组合积压工作,总共有最多五个项目组合积压工作。

有关定制已继承和自定义项目组合待处理工作的更多信息,请参阅以下资源:

继承积压工作

自定义项目组合积压工作

局限性

  • 不能从产品中删除继承的项目组合级别。 可以重命名级别,或禁用 WIT,以防止团队创建这些类型的新工作项。
  • 不能在现有定义的积压工作集中插入新的自定义积压工作级别。 预定义积压工作级别通常固定,例如 Epics功能用户情景任务
  • 无法对积压工作级别重新排序。 它们通常遵循预定义的层次结构,不支持更改顺序。
  • 不能将 WIT 添加到两个不同的积压工作级别。 每个 WIT 只能属于一个积压工作级别。
  • 不能创建自定义特定于任务的积压工作级别,但仍可以将自定义 WIT 添加到迭代积压工作。 例如,可以创建自定义 WIT,称为 “增强 ”或 “维护 ”,并将其与迭代积压工作相关联。
  • 默认情况下,Bug WIT 不属于任何特定的待办事项级别。 每个团队都可以决定他们想要如何管理软件问题。 你可以选择在待办事项和看板上显示 bug,或单独处理它们。 有关详细信息,请参阅 显示积压工作上的 bug