Azure DevOps Server 2022 - Azure DevOps Server 2019
项目包含 100 个或多个数据字段,具体取决于用于创建它的过程,例如 敏捷、 基本、 Scrum 或 CMMI。 每个工作项都绑定到工作项类型(WIT),可以跟踪的数据对应于分配给该 WIT 的字段。 可以通过 修改工作项中的数据字段来更新工作项数据。
注意
如果使用继承的进程模型,请参阅 向工作项类型添加自定义字段。
可以修改现有字段或添加自定义字段来跟踪更多数据。 例如,可以在下拉菜单中自定义选取列表、设置默认值或限制字段可以接受的值。
通过不同的方式定义选择列表,例如通过用户界面、WIT 工作流或向项目添加用户帐户,如下表所示。
WIT 定义 | 命令行更改(本地 XML 进程) |
---|---|
-
自定义选取列表 - 向字段添加规则 - 添加自定义字段 - 更改窗体上的字段标签 - 添加自定义控件 |
-
列出字段 - 更改字段属性 - 删除字段 - 为字段编制索引 |
先决条件
类别 | 要求 |
---|---|
列出字段 | 将集合集中项目的 “查看项目级信息” 权限设置为 “允许”。 |
添加或自定义字段 | 成为 项目管理员 组的成员,或者将 “编辑项目级信息” 权限设置为 “允许”。 |
删除、重命名或更改字段 | 成为 Team Foundation Administrators 安全组或 Project Collection Administrators 安全组的成员。 |
若要以管理员身份添加, 请更改项目集合级权限。
添加工作项字段的方法
工作项字段跟踪工作项类型的数据、定义查询筛选器条件和生成报表。 要跟踪的任何数据元素(系统字段除外)都必须定义为工作项字段。 可以在工作项类型(WIT)或全局工作流定义中定义字段。
工作项字段在项目集合级别维护,并在以下情况下添加:
- 创建项目:将创建在所选进程模板中为 WIT 或全局工作流定义的字段。 每种工作项类型都会自动包含核心系统字段。 有关核心系统字段的列表,请参阅 “工作项”字段索引。 有关模板的详细信息,请参阅 进程模板。
- 导入 WIT 定义:将 WIT 定义中定义的新字段添加到集合中。 在 “所有 WITD XML 元素参考”中了解详细信息。
- 导入全局工作流定义:将全局工作流中定义的新字段添加到集合中。 全局工作流允许跨多个工作项类型共享字段。 有关详细信息,请参阅 “自定义全局工作流 ”。
集合中的完整字段集包括所有项目中的 WIT 中定义的所有字段和全局工作流。 可以修改属性、重命名或删除字段,但这些更改可能会影响本地服务器和报告。
若要添加或自定义字段,请编辑 WIT 定义的 XML 内容。 使用 FIELDS 节中的 FIELD 元素定义每个字段。 有关详细信息,请参阅 所有 FIELD XML 元素参考文档。
添加字段、应用规则或更改属性
若要添加自定义域、添加字段规则或更改工作项窗体上字段的标签,请修改使用该字段的 WIT 或类型。 遵循与进程模型匹配的自定义序列。
若要更改字段属性或重命名字段,请使用 witadmin 命令行工具。 否则,若要修改字段,可以添加或修改与 WIT 定义中的字段关联的规则。
编辑 WIT 定义文件
若要添加规则或添加自定义字段,请导出、编辑,然后导入 WIT 定义文件。
提示
使用 witadmin,可以 导入和导出定义文件。 可以使用的其他工具包括进程编辑器 (要求你已安装 Visual Studio) 版本。 从 Visual Studio Marketplace 安装进程模板编辑器。
若要跟踪数据,请将字段添加到 WIT 定义文件(系统字段除外),这些字段是引用名称以 System.开头的字段。 系统字段会自动为所有 WIT 定义,即使它们未包含在 WIT 定义中。 有关详细信息,请参阅 “工作项”字段索引。
添加复选框或布尔字段
使用以下语法在 WIT 定义的 FIELDS 节中添加布尔字段。
<FIELD name="Triage" refname="Fabrikam.Triage" type="Boolean" >
<DEFAULT from="value" value="False" />
<HELPTEXT>Triage work item</HELPTEXT>
</FIELD>
然后在 FORM 节中添加以下语法,使字段显示在窗体上。
<Control Label="Triage" Type="FieldControl" FieldName="Fabrikam.Triage" />
该字段在窗体上显示为复选框。
自定义选取列表
选项列表是在工作项表单的下拉菜单和查询编辑器的值列中显示的枚举值。 若要自定义大多数字符串或整数字段的选取列表,请编辑 WIT 定义。 例如,使用以下 XML 添加具有选取列表的自定义 Resolution 字段。
自定义字段和选取列表
<FIELD name="Resolution" refname="MyCompany.Resolution" type="String">
<ALLOWEDVALUES>
<LISTITEM value="By Design" />
<LISTITEM value="Duplicate" />
<LISTITEM value="External" />
<LISTITEM value="Fixed" />
<LISTITEM value="Not Repro" />
<LISTITEM value="Postponed" />
<LISTITEM value="Won't Fix" />
</ALLOWEDVALUES>
</FIELD>
规则允许你合并列表、限制谁可以访问列表,并设置工作项窗体上显示列表的条件。 可以使用 expanditems 和 filteritems 属性来控制通讯组列表是显示单个成员还是筛选特定项。
为了简化维护,可以使用全局列表在不同 WIT 或项目之间共享列表。 全局列表减少了更新共享列表所需的工作量。 如果列表的某些部分需要在 WIT 或项目中有所不同,可以为选取列表的特定部分定义全局列表。 有关详细信息,请参阅 “定义选取列表 ”和 “定义全局列表”。
向字段添加规则
若要添加自定义字段或向字段应用规则,请编辑 WIT 定义。 可以使用 for 或 not 属性将规则限制为特定用户或组,以定义规则应用于或排除的人员。
例如,以下代码片段强制实施一个规则,即只有管理团队的成员(自定义组)可以在创建工作项后修改堆栈排名字段:
<FIELD name="Stack Rank" refname="Microsoft.VSTS.Common.StackRank" type="Double" reportable="dimension">
<FROZEN not="[project]\Management Team" />
<HELPTEXT>Work first on items with lower-valued stack rank. Set in triage.</HELPTEXT>
</FIELD>
可以将规则应用于字段以实现以下操作:
行动 | XML 元素 |
---|---|
向字段添加工具提示。 | HELPTEXT |
定义或限制字段可以具有的值。 | CANNOTLOSEVALUE、 EMPTY、 FROZEN、 NOTSAMEAS、 READONLY、 REQUIRED |
复制值或设置字段的默认值。 | COPY、 DEFAULT、 SERVERDEFAULT |
限制可以修改字段的人员。 | VALIDUSER,for,not |
对字符串字段强制实施模式匹配。 | 比赛 |
根据其他字段值有条件地应用规则。 | WHEN、 WHENNOT、 WHENCHANGED、 WHENNOTCHANGED |
由“系统”前缀标识的系统字段(例如,System.ID)允许进行有限的规则自定义。 例如,您无法复制或清除那些用于跟踪谁创建、更改或关闭工作项的字段,或系统管理的日期时间字段。
有关字段规则和限制的详细信息,请参阅 规则和规则评估。
添加自定义字段
若要添加自定义字段,请编辑 WIT 定义以在 FIELDS 节中添加 FIELD 元素,并在 FORM 节中添加 Control 元素。
根据所使用的进程模型导出 WIT 定义文件。
找到以 . 开头
FIELDS
的 XML 文件的节。FIELD
添加指定要添加的自定义字段名称的元素。 必须指定以下必需属性:友好name
属性、refname
(引用名称)和type
。 有关详细信息,请参阅 FIELD (Definition) 元素参考。以下代码指定自定义字段 Requestor,其中包含允许值的引用名称和
FabrikamFiber.MyTeam.Requestor
选取列表,默认值为 Customer。<FIELD name="Requestor" refname="FabrikamFiber.MyTeam.Requestor" type="String" reportable="Dimension"> <ALLOWEDVALUES> <LISTITEM value="Customer" /> <LISTITEM value="Executive Management" /> <LISTITEM value="Other" /> <LISTITEM value="Support" /> <LISTITEM value="Team" /> <LISTITEM value="Technicians" /> <DEFAULTVALUE value="Customer" /> </ALLOWEDVALUES> </FIELD>
提示
无论如何在 XML 定义文件中输入元素,列表中的元素始终以字母数字顺序显示。 引用名称,或者
refname
,是字段的编程名称。 所有其他规则都应引用 。refname
有关详细信息,请参阅命名限制和约定。Control
添加节中的FORM
元素,以便自定义字段显示在希望显示的元素组中的窗体上。例如,以下代码片段将请求者字段添加到工作项窗体的“原因”字段下方。
<Column PercentWidth="50"> <Group Label="Status"> <Column PercentWidth="100"> <Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assi&gned To:" LabelPosition="Left" /> <Control FieldName="System.State" Type="FieldControl" Label="&State:" LabelPosition="Left" /> <Control FieldName="System.Reason" Type="FieldControl" Label="Reason:" LabelPosition="Left" ReadOnly="True" /> <Control FieldName="FabrikamFiber.MyTeam.Requestor" Type="FieldControl" Label="Requestor:" LabelPosition="Left" ReadOnly="True" /> </Column> </Group> </Column>
提示
在工作跟踪的
FORM
架构定义中,所有子元素都必须使用驼峰命名法,而所有其他元素都必须大写。 确保打开和结束标记的事例结构与 XML 语法规则匹配,以避免验证错误。 有关详细信息,请参阅 Control XML 元素参考。根据所使用的进程模型导入 WIT 定义文件。
打开 Web 门户或团队资源管理器以查看更改。 如果客户端已打开,请刷新页面。
下图显示了产品积压工作项的工作项窗体现在包含新字段。
更改工作项表单的字段标签
若要修改字段标签,请更改分配给 Control
元素 Label
属性的值。 若要从工作项窗体中删除字段,请删除 Control
与该字段关联的元素。
根据进程模型导出 WIT 定义文件。
FORM
在和Layout
部分中,找到要修改的字段的定义。 此示例修改标题字段的标签:<Column PercentWidth="70"> <Control Type="FieldControl" FieldName="System.Title" Label="Title" LabelPosition="Left" /> </Column>
更改字段的标签,以便处理此特定项目的葡萄牙分支机构可以在处理工作项表单时读取“标题”字段的名称。 在“标题”字段中包括标题(Titulo)的葡萄牙语单词。
<Column PercentWidth="70"> <Control Type="FieldControl" FieldName="System.Title" Label="Title (Titulo):" LabelPosition="Left" /> </Column>
导入修改后的 WIT 定义。
添加自定义控件
使用 REST API 跟踪工作项,可以编程方式创建、更新和查找 bug、任务和其他工作项类型(WIT)。 此外,还可以创建自定义控件来增强工作项窗体的功能。
或者,可以使用通过 Visual Studio Marketplace 提供的自定义控件,例如:
若要向新的 Web 窗体添加自定义控件,请参阅 WebLayout 和 Control 元素。
更改现有字段的属性
使用 witadmin changefield 更改现有字段的属性。 例如,以下命令将定义的 MyCompany.Type
友好名称更改为 Evaluation 方法。
witadmin changefield /collection:http://AdventureWorksServer:8080/ DefaultCollection/n:MyCompany.Type /name:"Evaluation Method"
下表汇总了可以使用 witadmin changefield 更改的属性。
属性 | 说明 |
---|---|
数据类型 | 指定字段接受的数据类型。 一般情况下,定义字段数据类型后无法更改。 只能为 HTML 或 PlainText 类型的字段切换字段数据类型。 |
友好名称 | 友好名称显示在工作项查询的下拉菜单中,并且它必须在项目集合中定义的所有字段中是唯一的。 友好名称可能与工作项窗体上显示的窗体标签不同。 |
报告属性 | 可以在报表中显示的字段名称、报表引用名称和报告类型中更改字段的名称。 可以本地化报告友好名称。 报告类型确定字段的数据是写入关系仓库数据库,还是写入关系仓库数据库和 OLAP 多维数据集,或者在处理 OLAP 多维数据集时生成预先计算的值总和。 有关默认可报告字段的完整列表,请参阅 可报告字段参考 。 有关可报告属性的详细信息,请参阅“工作项”字段和属性,“ 可报告属性”。 |
同步 | 可以使用 Active Directory 启用或禁用人员名称字段的同步。 |
更改字段的索引属性
为字段启用索引编制,以便在筛选时改善查询响应时间。 默认情况下,将为以下字段编制索引:“指派给”、 “创建日期”、“更改者”、“状态”、“原因”、“区域 ID”、“迭代 ID”和“工作项类型”。
若要启用或禁用字段的索引编制,请使用 witadmin indexfield 命令。
删除字段
从特定 WIT 中删除字段时,该字段将保留在集合或数据库服务器中,即使该字段不再被任何 WIT 引用。 若要完全删除字段,请执行以下步骤。
FIELD
从所有 WIT 定义和引用它的任何全局工作流中删除定义。验证该字段是否未使用。 例如:
witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact Field: MyCompany.CustomContact Name: Custom Contact Type: String Reportable As: dimension Use: Not In Use Indexed: False
删除字段。 例如:
witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact
如果已删除的字段可报告,并且项目使用 SQL Server Reporting Services, 请重新生成数据仓库以清除旧字段及其值。
有关详细信息,请参阅 “管理工作项”字段。
测试、生成和版本控制字段
某些工作项类型包括由自动化流程生成的字段,这些流程与 Team Foundation Build、Microsoft 测试管理器和 Team Foundation 版本控制集成。 若要将这些字段添加到自定义工作项类型(WIT),请按照前面概述的步骤 编辑 WIT 定义 。
例如,可以添加字段 “发现于” 和 “集成于生成版本”,这些字段将 bug 与发现或修复它们的生成版本相关联。 使用以下代码片段将这些字段包含在 WIT 定义中:
<FIELD name="Found In" refname="Microsoft.VSTS.Build.FoundIn" type="String" reportable="dimension">
<HELPTEXT>Product build number (revision) in which this item was found</HELPTEXT>
</FIELD>
<FIELD name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild" type="String" reportable="dimension">
<HELPTEXT>Product build number this bug was fixed in</HELPTEXT>
</FIELD>
有关详细信息,请参阅基于生成和测试集成字段的查询。
字段名称和报告
可以添加字段或更改现有字段的属性以支持报告。 添加或更改字段时,应系统地命名字段,以便可以在 Analysis Services 多维数据集中找到字段,因为字段在逻辑上分组到文件夹中。 有关详细信息,请参阅 “添加或修改工作项”字段以支持报告。