添加或修改工作项类型

Azure DevOps Server 2020 |Azure DevOps Server 2019 |TFS 2018

项目包含许多工作项类型,这些类型基于用于创建项目的流程(敏捷ScrumCMMI)。 工作项类型是用于 跟踪不同类型的工作的对象。

可以根据团队的跟踪要求或工作流流程修改现有工作项类型或添加自定义工作项类型。 修改工作项类型最常见的原因是添加或修改字段或字段规则集、更改工作流或自定义工作项窗体。

如果要添加自定义域或修改现有字段的字段规则或属性,请参阅 “添加 或修改字段”。

大多数工作项类型自定义项都是对工作项类型 XML 定义进行的,但是,其他自定义是通过进程配置定义或通过 witadmin 命令行工具进行的。

注意

对于 Azure DevOps Services 或使用继承进程模型的集合,请参阅 添加和管理工作项类型

工作项类型定义

ProcessConfiguration 定义

命令行更改

先决条件

  • 若要列出工作项类型,您必须对集合集中的项目具有“允许的“查看项目级信息”权限。
  • 若要通过自定义进程模板添加或自定义工作项类型,您必须是 Project Collection Administrators 组的成员,或者将编辑进程权限设置为“允许”。
  • 若要列出工作项类型,您必须对集合集中的项目具有“允许的“查看项目级信息”权限。
  • 若要添加或自定义工作项类型,你必须是项目管理员组的成员,或者将 “编辑项目级信息 ”权限设置为 “允许”。

若要以管理员身份添加,请参阅 更改项目集合级权限

对工作项类型的修改如何影响现有工作项?

下表汇总了修改字段或工作项类型定义时对现有工作项的影响。

操作 对现有工作项产生的影响
从工作项类型中删除字段 已移除的字段的数据保留在数据存储中。 但是,无法添加新数据,因为已将其从工作项类型定义中删除。
重命名字段 重命名的字段的数据保留在数据存储中的新友好名称下。
删除字段 从数据存储中移除已删除的字段的数据。
重命名工作项类型 所有数据在新名称下保持不变。
删除工作项类型 创建为已删除工作项类型的工作项的所有数据都将永久删除,且没有恢复机会。

如果要完全删除数据存储中的字段,请使用 witadmin deletefield 命令行工具

导入和导出工作项类型定义文件

注意

如果使用托管 XML 进程模型,则需要导入和导出项目使用的进程模板。 有关详细信息,请参阅 自定义工作项跟踪 Web 窗体

  1. 如果没有项目的管理权限, 请获取它们

    1. 根据 witAdmin 中提供的说明打开命令提示符窗口 :自定义和管理跟踪工作的对象。 例如:
  2. 导出要在其中修改或添加字段的工作项类型定义文件。 指定工作项类型的名称和文件的名称。

    witadmin exportwitd /collection:CollectionURL /p:ProjectName /n:TypeName /f:"DirectoryPath/FileName.xml"

    CollectionURL 的示例为 http://MyServer:8080/tfs/TeamProjectCollectionName.

  3. 编辑文件。 有关详细信息,请参阅 索引到 XML 元素定义

  4. 导入定义文件。

    witadmin importwitd /collection:CollectionURL /p:ProjectName /f:"DirectoryPath/FileName.xml"

  5. 打开 Web 门户或刷新页面以查看更改。

    有关使用 witadmin的详细信息,请参阅 导入、导出和管理工作项类型

添加或修改工作项类型

若要添加自定义工作项类型或修改现有工作项类型,请定义或修改 XML 定义文件,然后 根据所使用的进程模型将其导入到项目中。 通过指定定义文件三个主要部分内定义的元素来修改工作项类型: FIELDSWORKFLOWFORM

Summary of work item type elements

添加新工作项类型的最简单方法是复制现有工作项类型,然后修改定义文件。

添加或修改字段、字段规则、标签或空文本

要用于跟踪数据的任何字段都必须添加到定义文件中。 对于引用名称以 System 开头的所有字段,但系统字段 (字段也是如此 ) 。 所有系统字段都为所有工作项类型定义,无论你是否将其包含在工作项类型定义中。 若要了解有关每个字段的详细信息,请参阅 “工作项”字段索引

将字段和字段规则添加到 FIELDS 部分。 要使字段显示在工作项窗体上,还必须将其添加到定义的 FORM 节。

例如,若要将工作项 ID 添加到窗体,请在 FORM 节中指定以下 XML 语法。

<Control FieldName="System.ID" Type="FieldControl" Label="ID" LabelPosition="Left" />

若要详细了解如何定义字段,请参阅 “添加或修改字段”。

修改工作流

工作流中的“状态”和“原因”部分指定“状态”和“原因”字段中的选取列表值。 它们跟踪工作项的状态。 TRANSITIONS 部分指定状态之间的有效转换,如下图所示。 指定正向和回归转换。

Example workflow state diagram, Agile user story

你更改工作流以实现以下目标:

  • 添加或删除状态、原因或转换
  • 指定在状态、原因或转换更改期间要应用的字段的值
  • 指定自定义 ACTION 以基于状态、原因或转换的更改自动执行字段分配。

当你自定义工作流时,请按照这两个步骤操作:

  1. 修改工作项类型定义的工作流

  2. 修改进程配置以将新的工作流状态映射到元统计信息

    更改敏捷工具页上显示的工作项类型的工作流时,需要执行第二步。 这些工作项类型属于“要求”或“任务”类别。

工作流字段规则

你可在更改状态、指定原因时或在工作流转换期间应用字段规则。

例如,通过将状态设置为“活动”时添加 EMPTY 规则,可以自动使“已关闭日期”和“关闭日期”字段为空,使其只读。 在将工作项从已关闭状态重新激活时,这会很有用。

<STATE value="Active">
   <FIELDS>
. . .
      <FIELD refname="Microsoft.VSTS.Common.ClosedDate"><EMPTY/></FIELD>
      <FIELD refname="Microsoft.VSTS.Common.ClosedBy"><EMPTY/></FIELD>
   </FIELDS>
</STATE>  

应用工作流字段规则以完成以下操作:

  • 通过指定 CANNOTLOSEVALUEEMPTYFROZENNOTSAMEASREADONLYREQUIRED 来限定字段可以具有的值
  • 使用 COPYDEFAULTSERVERDEFAULT 将值复制到字段中
  • 限制谁可以修改字段
  • 使用 MATCH 对字符串字段强制实施模式匹配
  • 根据使用 WHENWHENNOTWHENCHANGEDWHENNOTCHANGED 的其他字段中的值有条件地应用规则
  • 将规则限制为应用于特定用户或组。 大多数规则都支持用于关注规则的用途和不适用的属性。

有关应用工作流字段规则的详细信息,请参阅 FIELD (Workflow) 元素引用规则和规则评估

自定义工作项窗体

下图突出显示了工作项窗体上最常见的元素。 可以自定义除标题区域和窗体控件之外的所有元素。 用于自定义窗体的元素取决于管理员 是否启用了新窗体

启用了新窗体的 Web 窗体 (VSTS、TFS 2017)

Header element within web form

使用中的旧 Web 窗体 (TFS 2015、TFS 2013)

Work item type form controls

可以自定义窗体以实现以下目标:

在积压工作或任务板添加或删除工作项类型

敏捷规划工具(产品积压工作、冲刺积压工作和任务板页)基于用于创建项目的过程模板显示特定的工作项类型。 可以添加或删除要显示在这些页面上的工作项类型。 例如,如果项目使用 Scrum 工作项类型,则积压工作项和 bug 都显示在积压工作页上。 但是,如果你的项目是使用敏捷、CMMI 或其他流程模板创建的,则 bug 不会显示在积压工作或任务板上。

例如,可以从产品积压工作 (backlog) 页添加 Bug。

注意

从 Web 门户看到的图像可能与本文中看到的图像不同。 这些差异源于对 Azure DevOps Services 或本地部署进行的更新。 但是,除非明确提及,你可用的基本功能保持不变。

This screen shows how to add bugs from the product backlog page.

若要了解如何从积压工作或任务板添加或删除工作项类型,请参阅 将工作项类型添加到积压工作和积压工作板。 若要添加新的工作项类型以支持项目组合积压工作,请参阅 添加项目组合积压工作级别

更改工作项类型的颜色、图标或工作流状态颜色

在 Web 门户中,工作项显示在查询结果和敏捷工具的积压工作和板页上。 若要更改与现有工作项类型关联的颜色或图标,或添加用于新工作项类型的颜色, 请编辑进程配置。 若要更改工作流状态的颜色,还可以 编辑进程配置

注意

功能可用性:对于本地 XML,可以自定义 TFS 2015.2 或更高版本的工作流状态颜色,并且可以自定义 TFS 2017.2 及更高版本的工作项类型图标。

Query results showing work item type color, icon, and state color

更改现有工作项的类型

有关基于平台可用的功能,请参阅 移动、更改或删除工作项

连接到 TFS 时,无法更改现有工作项的工作项类型,但可以 复制工作项并指定新类型。 例如,可以复制现有产品积压工作 (backlog) 项并将类型更改为 Bug,如下图所示。

Clone a work item type

此外,如果有多个工作项具有要进行的类型更改,则可能需要 使用 Excel 导出它们,然后将其重新添加为新类型。

停用或禁用工作项类型

如果要将特定工作项类型的创建限制为一组用户, 请将工作项类型添加到“隐藏类别”组 ,以防止大多数参与者创建它们。 如果要允许一组用户访问, 可以创建指向 打开工作项表单的模板的超链接,并与要创建这些团队成员共享该链接。

注意

无法添加字段规则来限制工作流,因为无法将规则应用于系统字段。

删除工作项类型

若要防止团队成员使用特定工作项类型创建工作项,可以从项目中将其删除。 使用 witadmin destroywitd*时,可以永久删除使用该工作项类型创建的所有工作项以及工作项类型本身。 例如,如果你的团队不使用“障碍”,则可以从 Fabrikam 网站项目中删除标记为“障碍”的工作项类型。

witadmin destroywitd /collection:"http://FabrikamPrime:8080/tfs/DefaultCollection" /p:"Fabrikam Web Site" /n:"Impediment" 

删除属于某个类别的工作项类型时,必须更新项目的类别定义以反映新名称。 有关详细信息,请参阅导入、导出和管理工作项类型和导入和导出类别

重命名工作项类型

若要重命名现有工作项类型,请使用 witadmin renamewitd。 例如,可以将标记为“QoS 项目”的工作项类型重命名为“服务协议”。

witadmin renamewitd /collection:"http://FabrikamPrime:8080/tfs/DefaultCollection" /p:"Fabrikam Web Site" /n:"QoS Item" /new:"Service Agreement"

重命名属于类别的工作项类型时,必须更新项目的类别定义以反映新名称。 特别是,在更新类别定义之前, 积压工作和板 将不起作用。

有关详细信息,请参阅导入、导出和管理工作项类型和导入和导出类别

升级后启用功能

可以在 TFS 升级后使用“配置功能向导”更新我的项目,可以进行哪些自定义?

可以添加自定义工作项类型并更改窗体布局。 “配置功能向导”将更新项目,你将访问最新功能。

更改工作流或重命名工作项类型可能需要在更新项目时执行一些手动操作。 若要了解可以安全地进行的其他自定义以及应避免的自定义,请参阅 “自定义工作跟踪体验:在自定义之前,了解维护和升级的影响

工作流更改和早期版本的测试管理器客户端

更改测试计划或测试套件的工作流时(使用 Visual Studio 2013.2 或更早版本提供的 Test Manager 客户端)时,这些工作项类型在将应用程序层服务器更新为 TFS 2013.3 时可用。 出现在敏捷计划工具页面上。

如果在更改工作流后连接到项目时 遇到意外错误, 可以通过将新工作流状态映射到元统计信息来解决它。 若要解决此错误,请参阅 导入和导出进程配置

本文介绍了如何为托管 XML 和本地 XML 进程模型添加和自定义工作项类型。 有关添加和自定义继承进程模型的工作项类型的信息,请参阅 “自定义流程”。

其他相关主题或资源: