通过


添加或修改工作项类型

Azure DevOps Server |Azure DevOps Server 2022

每个项目都包含由其流程定义的一组工作项类型,即敏捷基本ScrumCMMI。 使用工作项类型 跟踪不同类型的工作。 修改现有类型或添加自定义类型,以匹配团队的跟踪要求和工作流。

注意

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

自定义工作项类型的常见原因包括:

  • 添加或修改字段或字段规则
  • 更改工作流(状态、原因、转换)
  • 自定义工作项窗体布局

若要仅修改字段,请参阅 “添加或修改字段”。

可以通过 XML 定义文件、进程配置定义或 witadmin 命令行工具自定义工作项类型。 以下列表显示了可以使用每个方法执行的操作。

工作项类型定义

进程配置定义

命令行更改

先决条件

类别 要求
权限 - 列出工作项类型: 查看项目级信息 权限设置为 “允许”。
- 若要添加或自定义工作项类型:项目集合管理员组的成员,或编辑进程权限设置为“允许”。

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

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

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

操作 对现有工作项的影响
从工作项类型中删除字段 已删除字段的数据保留在数据存储中。 但是,字段不再显示在工作项类型定义中,因此无法输入新数据。
重命名字段 重命名字段的数据在数据存储中以新的易记名称保留。
删除字段 已删除字段的数据将从数据存储中删除。
重命名工作项类型 所有数据在新名称下保持不变。
删除工作项类型 使用已删除的工作项类型创建的工作项的所有数据都将永久删除,且没有恢复机会。

若要从数据存储中完全删除字段,请使用 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. 编辑文件。

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

有关定义字段的详细信息,请参阅 “添加或修改字段”。

修改工作流

工作流中的 STATESREASONS 节指定“状态”和“原因”字段中的选取列表值。 这些部分跟踪工作项的状态。 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 根据其他字段中的值有条件地应用规则。
  • 限制应用于特定用户或组的规则。 大多数规则支持 fornot 属性,以指定规则适用于或不适用的对象。

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

自定义工作项窗体

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

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

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

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

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

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

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

在 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"

重命名属于某个类别的工作项类型时,更新项目的类别定义以反映新名称。 在更新类别定义之前,待办事项和看板 不起作用。

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