关于进程自定义和继承进程

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019

若要自定义工作跟踪系统,请通过组织的管理用户界面 自定义 继承的过程。 使用继承进程的所有项目都获取对该过程进行的自定义。 另一方面,为每个团队 配置 敏捷工具(积压工作、冲刺、看板和任务板)。

重要

若要自定义本地项目或更新 XML 定义文件以支持自定义,请参阅 本地 XML 进程模型。 本文仅适用于 Azure DevOps Services 和 Azure DevOps Server 2019。

你可以进行许多自定义。 主要任务是 (WIT 添加自定义工作项类型,) 或修改现有 WIT 以添加自定义字段、修改布局或更改工作流。

注意

可以通过审核日志查看对继承过程所做的更改。 若要了解详细信息,请参阅 Access、导出和筛选审核日志

在下面,你将找到一个索引,这些任务可以执行以自定义继承的进程。 继承元素的某些选项已锁定,无法自定义。

注意

有关配置和自定义项目和团队以支持业务需求的指导,请查看 Azure Boards 的配置和自定义

系统与继承的进程

你将看到两种类型的进程:

  • locked icon 系统进程(敏捷、基本、Scrum 和 CMMI)已被锁定,无法更改。
  • inherited icon 继承的进程,你可以自定义这些进程,并从创建它们的系统进程继承定义。 系统进程由 Microsoft 定期拥有和更新。 对系统进程所做的任何更新都会自动导致对继承的进程进行更新。

注意

Azure DevOps Server 2019 Update 1 及更高版本提供了基本过程。

此外,所有进程都共享。 也就是说,一个或多个项目可以使用单个过程。 无需自定义单个项目,而是自定义进程。 对进程的更改会自动更新使用该进程的所有项目。 创建继承过程后,可以自定义它、基于它创建项目、复制项目,并更改现有项目以使用它。

例如,如下图所示,可以看到为 fabrikam 组织定义的项目列表。 第二列显示每个项目使用的过程。 若要更改 Fabrikam Fiber 项目的自定义,需要修改 MyScrum 进程 (,该进程继承自 Scrum 系统进程) 。 对 MyScrum 进程所做的任何更改也会更新使用该进程的其他项目。 另一方面,在将 查询测试 项目更改为从 敏捷继承的进程之前,无法对其进行自定义。

Admin context, Organization settings, Project list and the process they use

进程名称限制

进程名称必须是唯一的,并且 128 个 Unicode 字符或更少。 此外,名称不能包含以下字符: .,;'`:~\/\*|?"&%$!+=()[]{}<>

若要重命名进程,请打开 ... 进程的上下文菜单,然后选择“ 编辑”。

更改项目的引用过程

如果要将项目使用的进程从一个系统进程切换到另一个系统进程,则可以执行此操作。 若要进行这些更改,必须基于要切换到的进程创建继承的进程。 例如,提供了支持以下更改的说明:

按照上面列出的文章中提供的指南,还可以进行其他更改,例如,从 CMMI 更改为敏捷或敏捷到 CMMI。

在进行此更改之前,建议熟悉要更改的过程。 系统进程在 “选择进程”中汇总。

进行更改时的最佳做法

对继承的过程进行更改是直接安全的。 但是,在将更改应用到活动项目之前,始终是测试这些更改的最佳做法。 按照以下步骤 可帮助你呈现进程更改可能具有的任何负面影响。

继承的对象与自定义对象

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

Agile work item types

可以为在 “工作项类型 ”页上显示的所有继承 WIT 添加字段和修改工作流和工作项窗体。 如果不希望用户创建 WIT,可以禁用它。 此外,还可以添加自定义 WIT。

字段自定义

系统进程中定义的字段会显示有 继承图标,指示可以在继承过程中对它进行有限的修改。

为组织中的所有项目和流程定义字段。 这意味着,可以在一个进程中为 WIT 定义的任何自定义字段添加到为另一个进程定义的任何其他 WIT。


字段类型

自定义支持


继承的字段


自定义字段


自定义控件


添加自定义字段时,请注意以下限制:

  • 每个 WIT 最多可以定义 64 个字段
  • 每个进程最多可以定义 512 个字段

此外,还可以将 现有字段添加到 进程中的另一个 WIT。 例如,可以将截止日期添加到用户情景或 bug WIT。

无法自定义的内容

  • 定义字段名称或数据类型后,无法更改字段名称或数据类型
  • 不能修改状态、原因、区域路径和迭代路径字段所在的窗体上的灰色区域
  • 无法导入或定义托管 XML 和本地 XML 进程模型支持的全局列表。 若要了解详细信息,请参阅 “定义全局列表”。
  • 定义字段名称或数据类型后,无法更改字段名称或数据类型
  • 不能修改状态、原因、区域路径和迭代路径字段所在的窗体上的灰色区域
  • 对于选取列表,当前无法执行以下操作:
    • 更改继承字段的选取列表,例如“活动”或“纪律”字段
    • 更改选取列表顺序,按字母顺序显示选取列表
  • 无法修改继承字段的说明帮助文本
  • 导入或定义托管 XML 和本地 XML 进程模型支持的全局列表。 若要了解详细信息,请参阅 “定义全局列表”。

注意

使用继承的过程,不能修改预定义字段的选取列表,例如 活动自动化状态纪律优先级和其他字段。

可配置的选取列表

以下选取列表针对每个项目进行了配置,不能通过继承的过程进行自定义。

根据 添加到项目或团队的用户管理与人员名称字段关联的选取列表,例如“已分配给”和“已更改者”。

是否可以重命名字段或更改其数据类型?

不支持重命名字段或更改数据类型。 但是,可以从“布局”选项卡更改工作项窗体上字段显示的标签。在查询中选择字段时,需要选择字段名称而不是字段标签。

是否可以删除或还原已删除的字段?

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

你可能希望改为隐藏或删除工作项窗体中的字段,而不是删除字段。 有关详细信息,请参阅 “添加和管理字段”、“显示”、“隐藏”或删除字段

什么是字段? 如何使用字段名称?

每个 工作项类型 都与 31 个系统字段和多个特定于类型的字段相关联。 使用工作项来计划和跟踪项目。

每个字段都支持跟踪有关要执行的工作的信息。 分配给字段的值存储在工作跟踪数据存储中,你可以创建查询来确定状态和趋势。

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

字段名

工作项字段名称唯一标识每个工作项字段。 请确保字段名称位于以下准则中:

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

由于为组织定义了所有字段,因此不能添加具有相同字段名称的自定义字段,也不能在另一个继承过程中添加到 WIT。

注意

更改项目以使用继承的过程时,你可能会发现一个或多个敏捷工具或工作项处于无效状态。 例如:

  • 如果要求字段,则使用该字段未定义的工作项会显示错误消息。 需要解决错误,以便进行其他更改并保存工作项。
  • 如果在看板上显示的 WIT 添加或删除/隐藏工作流状态,则需要更新项目中定义的所有团队的看板列配置。

自定义规则和系统规则

每个 WIT (bug、任务、用户故事等)都有多个系统规则已定义。 有些操作很简单,例如,要求“标题”字段,或为“值区域”字段设置默认值。 此外,许多系统规则定义工作流状态更改时要执行的操作。

例如,存在多个规则以在以下条件下复制当前用户标识:

  • 修改工作项后,将用户标识复制到“更改者”字段
  • 当工作流状态更改为“已关闭”或“完成”时,将用户标识复制到“已关闭依据”字段。

重要

预定义的系统规则对定义将覆盖它的任何自定义规则具有先例。

自定义规则提供对许多业务用例的支持,使你可以超越为字段设置默认值或使其是必需的。 规则允许清除字段的值、将值复制到字段中,并根据不同字段值之间的依赖关系应用值。

使用自定义规则,可以根据特定条件定义多个操作。 例如,可以应用规则来支持这些类型的方案:

  • 为优先级定义值时,将“风险”设置为必填字段
  • 对发布值进行更改时,请清除“里程碑”的值
  • 对剩余工时的值进行更改时,请将“已完成工时”设置为必填字段
  • 当“已批准”的值为 True 时,将“已批准者”设置为必填字段
  • 创建用户情景后,请填写以下字段:优先级、风险和工作量

提示

不能使用规则定义公式。 但是,可以通过 TFS 聚合器 (Web 服务) 市场扩展来找到满足需求的解决方案。 另请参阅 工作和其他字段汇总

有关定义自定义规则的详细信息,请参阅 规则和规则评估

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

使用以下两个条件之一,可以为安全组的用户或不是安全组成员的用户创建选择字段。

  • current user is a member of a group...
  • current user is not a member of a group...

例如,可以将“标题”或“状态”字段设置为“只读”,以便选择用户或组。

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

可以通过设置对区域路径的权限来禁止用户修改选择的工作项。 这不是规则设置,而是权限设置。 若要了解详细信息,请参阅 创建子节点,修改区域路径下的工作项

WIT) 自定义项 (工作项类型

下面是继承和自定义 WIT 的自定义选项。


工作项类型

自定义支持


继承的工作项类型


自定义工作项类型


无法自定义的内容

  • 不能向积压工作添加或删除继承的 WIT
  • 但是,不能更改窗体布局中继承字段的位置 (,但是,可以在窗体的一个区域中隐藏该字段,并在窗体的其他位置添加该字段)
  • 无法从产品 (中删除继承的项目组合级别,但可以在) 重命名它们
  • 无法更改自定义 WIT 的名称。

工作项表单自定义

可以对 WIT 窗体进行以下自定义。


组或页面类型

自定义支持


继承的组


自定义组


继承的页面


自定义页面


布局和调整大小

Web 窗体布局组织成三列,如下图所示。

3-column page layout

如果只向前两列添加组和字段,则布局将反映两列布局。 同样,如果只向第一列添加组和字段,则布局将反映一列布局。

Web 窗体根据可用宽度和布局中的列数调整大小。 在大多数 Web 浏览器中,页面中的每个列在其自己的列中显示,最大宽度。 随着显示宽度的减少,每列按比例调整大小,如下所示:

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

当显示宽度不能容纳所有列时,列显示在左侧的列中。

工作流自定义

可以通过隐藏继承状态或添加自定义状态来自定义 WIT) 任何工作项 (类型的工作流。 继承状态因系统进程(敏捷、基本、Scrum 或 CMMI)而异,你从中选择了用于创建自定义进程的位置。

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

  • 每个状态之间的向前和向后转换
  • 每个状态转换的默认原因

例如,基本过程、问题 WIT 的特点是三种状态(微软待办执行完成)以及下图所示的转换。

Basic Process, Issue work item type, workflow state model


状态类型

支持的自定义项


Inherited icon 继承状态

自定义状态


工作流状态必须符合以下规则

  • 必须为 “建议 ”或 “正在进行” 状态类别至少定义一个状态

    注意

    在添加工作流状态之前,请查看 工作流状态和状态类别 ,了解工作流状态如何映射到状态类别。

  • 必须至少定义两个工作流状态
  • 每个工作项类型最多可以定义 32 个工作流状态

不支持的工作流自定义

  • 不能修改继承状态 (不能更改其名称、颜色或类别) ,但可以隐藏它
  • “已完成 ”状态类别中只能有一个状态。 如果将自定义状态添加到“已完成”类别,则删除或隐藏任何其他状态
  • 无法更改自定义状态的名称
  • 不能指定状态原因,而是定义默认原因,例如 已移动到状态会审已移出状态会审
  • 不能更改窗体上“状态”和“原因”字段的位置
  • 不能修改继承状态 (不能更改其名称、颜色或类别) ,但可以隐藏它
  • “已完成 ”状态类别中只能有一个状态。 系统禁止向此类别添加任何自定义状态
  • 无法更改自定义状态的名称
  • 无法更改状态顺序,状态根据工作项窗体下拉列表中的状态类别在其自然序列中列出
  • 不能指定状态原因,而是定义默认原因,例如 已移动到状态会审已移出状态会审
  • 不能更改窗体上“状态”和“原因”字段的位置
  • 不能限制转换,所有转换都从任何状态定义到另一个状态。

积压工作和板自定义

积压工作和板是用于创建和管理团队工作的基本敏捷工具。 从系统流程继承的标准积压工作(产品、迭代和项目组合)是完全可自定义的。 此外,还可以为总共五个项目组合积压工作添加自定义项目组合积压工作。


积压工作类型

自定义支持


继承积压工作


自定义项目组合积压工作


无法自定义的内容

  • 无法从产品 (中删除继承的项目组合级别,但可以重命名项目组合级别,并且可以禁用继承的工作项类型)
  • 无法在现有定义的积压工作集中插入积压工作级别
  • 无法对积压工作级别重新排序
  • 不能将工作项类型添加到两个不同的积压工作级别
  • 虽然可以将自定义 WIT 添加到迭代积压工作,但无法创建自定义任务积压工作级别
  • 无法将 Bug WIT 添加到任何积压工作级别。 相反,系统允许每个团队决定他们想要管理 bug 的方式。 若要了解详细信息,请参阅 积压工作和板上的“显示 bug”。
  • 无法向积压工作添加或删除继承的 WIT,例如,无法将问题 WIT 添加到产品积压工作
  • 无法从产品 (中删除继承的项目组合级别,但可以重命名项目组合级别,并且可以禁用继承的工作项类型)
  • 无法在现有定义的积压工作集中插入积压工作级别
  • 无法对积压工作级别重新排序
  • 不能将工作项类型添加到两个不同的积压工作级别
  • 虽然可以将自定义工作项类型添加到迭代积压工作,但无法创建自定义任务级别
  • 无法将 Bug WIT 添加到任何积压工作级别。 相反,系统允许每个团队决定他们想要管理 bug 的方式。 若要了解详细信息,请参阅 积压工作和板上的“显示 bug”。

注意

某些功能需要安装 Azure DevOps Server 2020.1 更新。 若要了解详细信息,请参阅 Azure DevOps Server 2020 Update 1 RC1 发行说明,Boards

更改积压工作级别的默认 WIT 时,它会导致 WIT 默认显示在快速添加面板中。 例如,客户 票证 默认显示在以下产品积压工作快速添加面板中。

Product backlog, Quick Add Panel, Displays Default WIT for a backlog level

对象限制

有关针对字段数、WIT、积压工作级别和其他可以自定义的对象的限制列表,请参阅 工作跟踪对象限制