添加或修改工作项类型

Azure DevOps Server 2022 - Azure DevOps Server 2019 |TFS 2018

项目包含许多工作项类型,具体取决于用于创建项目的过程,例如 敏捷基本ScrumCMMI。 工作项类型是用于 跟踪不同类型的工作的对象。

注意

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

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

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

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

注意

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

工作项类型定义

ProcessConfiguration 定义

命令行更改

先决条件

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

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

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

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

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

如果要从数据存储区中完全删除字段,请使用 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

工作项类型元素摘要

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

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

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

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

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

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

若要了解有关定义字段的详细信息,请参阅 添加或修改字段

修改工作流

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

示例工作流状态图,敏捷用户情景

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

  • 添加或删除状态、原因或转换
  • 指定在更改状态、原因或转换期间要应用的字段的值
  • 指定自定义 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 对字符串字段强制进行模式匹配
  • 使用 WHEN、WHENNOT、WHENCHANGEDWHENNOTCHANGED 基于其他字段中的值有条件地应用规则
  • 将规则限制为应用于特定用户或组。 大多数规则支持 fornot 属性,以聚焦规则执行和不适用于谁。

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

自定义工作项窗体

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

工作项 Web 窗体中标头元素的屏幕截图。

可以自定义表单以实现以下目标:

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

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

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

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

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

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

显示工作项类型颜色、图标和状态颜色的查询结果的屏幕截图。

更改现有工作项的类型

请参阅 批量移动工作项和更改工作项类型 ,了解基于平台提供的功能。

停用或禁用工作项类型

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

注意

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

删除工作项类型

若要防止团队成员使用特定工作项类型创建工作项,可以从项目中删除它。 使用 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"

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

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

升级后启用功能

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

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

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

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

其他相关主题或资源: