添加或修改工作项类型

Azure DevOps Server 2022 - Azure DevOps Server 2019

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

注意

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

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

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

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

注意

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

工作项类型定义

ProcessConfiguration 定义

命令行更改

先决条件

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

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

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

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

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

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

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

修改工作流

工作流中的 STATES 和 REASONS 节指定“状态”和“原因字段中的选取列表值。 它们跟踪工作项的状态。 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>  

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

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

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

自定义工作项窗体

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

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

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

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

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

例如,可以从产品积压工作页添加 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 进程模型添加和自定义工作项类型。 有关添加和自定义继承进程模型的工作项类型的信息,请参阅 “自定义进程”。

其他相关主题或资源: