添加或修改工作项类型

Azure DevOps Server 2022 - Azure DevOps Server 2019

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

注意

有关 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" />

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

修改工作流

WORKFLOW 中的 STATESREASONS 部分指定 StateReason 字段中的选择列表值。 它们跟踪工作项的状态。 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 对字符串字段强制实施模式匹配
  • 根据其他字段中的值有条件地应用规则:使用 WHENWHENNOTWHENCHANGEDWHENNOTCHANGED
  • 限制应用于特定用户或组的规则。 大多数规则支持使用 作为的属性,而非 属性,以明确规则适用于谁以及不适用于谁。

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

自定义工作项窗体

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

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

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

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

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

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

其他相关主题或资源: