Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
工作项字段用于跟踪 Azure DevOps 内的信息。 这些字段可在组织级别定义,并在组织中的所有项目中共享。 若要查看为组织定义的字段,可以使用以下两种工具之一,这两个工具同时适用于继承和托管的 XML 流程模型:
工作项字段用于跟踪 Azure DevOps 内的信息。 这些字段可在集合级别定义,并在该集合中的所有项目中共享。 若要查看为集合定义的字段,请使用以下工具之一:
- 流程 > 字段网页:适用于继承的流程模型。
- 工作项字段资源管理器:适用于继承和本地 XML 流程模型。
有关使用系统流程定义的每个字段的说明,请参阅工作项字段索引。
Prerequisites
| Category | Requirements |
|---|---|
| Permissions | 若要查看为组织或集合定义的字段:需要是“项目集合有效用户”应用程序组的成员,或者为组织或集合将“查看实例级信息”权限设置为“允许”。 |
列出或查看字段
若要列出或查看字段,请根据流程模型使用以下工具之一,即继承、托管 XML 或本地 XML。 有关默认流程中定义的字段的索引,请参阅工作项字段索引。
| Tool | Inheritance | 托管 XML | 本地 XML |
|---|---|---|---|
| Web 门户:列出继承的字段和自定义的字段 | ✔️ | ✔️1 | |
| 工作项字段资源管理器 | ✔️ | ✔️ | ✔️ |
| witadmin listfields 命令行工具 | ✔️ | ✔️ | ✔️ |
Note
- 仅支持默认流程(敏捷、CMMI、Scrum)。
字段数据类型和名称
每个工作项类型都指定该类型的工作项中包含的字段。 每个字段都有多个属性,其中许多属性是系统定义且不可变的属性。
字段由以下三个属性定义:
- 数据类型:指示可以输入到字段中的数据种类,例如布尔值、双精度、整数、HTML 或字符串。 有关每种数据类型的详细说明,请参阅查询字段、运算符和宏。
- 友好名称:分配给字段的用户友好名称,用于在查询子句中选择字段。 此名称可能与工作项窗体上显示的名称不同。
- 引用名称:创建 WIQL 查询、即兴工作项模板、执行 REST API 命令或定义 XML 工作项类型定义时使用的标识符。 引用名称是永久名称,设置后就无法更改。
有关每个字段属性的详细说明,以及有关如何列出属性的说明,请参阅本文后面的字段属性和列出字段属性。 有关工作项类型 (WIT) 和工作项的概述,请参阅使用用户故事、问题、bug、功能和长篇故事跟踪工作。
什么是字段? 如何使用字段名称?
每个工作项类型都包括 31 个系统字段和多个类型特定字段。 工作项用于规划和跟踪项目。
每个字段都会捕获有关要执行的工作的特定信息。 分配给这些字段的值存储在工作跟踪数据存储中,可用于创建确定状态和趋势的查询。
有关为核心系统流程(敏捷、基本、Scrum 和 CMMI)定义的每个字段的说明和用法,请参阅工作项字段索引。
字段名称
工作项字段名称唯一标识每个工作项字段。 确保字段名称遵循以下指南:
- 唯一性:字段名称在帐户或项目集合中必须唯一。
- 长度:字段名称必须包含 128 个或更少的 Unicode 字符。
- 间距:字段名称不能具有前导或尾随空格,或者包含两个或多个连续空格。
- 组合:字段名称必须至少包含一个字母字符。
-
禁止的字符:字段名称不能包含以下字符:
.,;':~/*|?"&%$!+=()[]{}<>`。
由于自定义字段可在组织或集合级别定义,因此不能将同名的自定义字段添加到多个流程。
有关详细信息,请参阅命名限制和约定。
系统字段和预定义字段
工作项字段名称唯一地识别 Azure DevOps 中的每个字段。 确保字段名称符合以下指南:
- 唯一性:字段名称在帐户或项目集合中必须唯一。
- 长度:字段名称必须是 128 个或更少的 Unicode 字符。
- 间距:字段名称不能具有前导或尾随空格,或者包含多个连续空格。
- 组合:字段名称必须至少包含一个字母字符。
-
禁止的字符:字段名称不能包含以下字符:
.,;':~/*|?"&%$!+=()[]{}<>`。
由于自定义字段可在组织或集合级别定义,因此不能将同名的自定义字段添加到多个流程。
有关详细信息,请参阅命名限制和约定。
自定义字段
由于自定义字段可在组织或项目集合级别定义,因此不能将同名的自定义字段添加到多个流程。
添加自定义字段时,请注意以下限制:
- 每个工作项类型 (WIT) 的最大字段数:64
- 每个流程的最大字段数:512
字段数据类型决定可存储在字段中的数据的种类和大小。 每个字段都只能在项目集合中定义一种类型,鼓励在不同项目和工作项类型中使用通用字段。
将自定义字段添加到继承的流程时,Azure DevOps 会分配一个前缀为 Custom 的引用名称,后面是无空格的字段名称。 例如,添加一个名为 DevOps Triage 的字段会导致引用名称 Custom.DevOpsTriage。 不允许在引用名称中使用空格。
有关详细信息,请参阅命名限制和约定。
如何确定字段数据类型?
可以通过打开“流程”>“字段”页来查看为组织定义的字段的数据类型。
当项目集合使用继承流程模型来自定义工作跟踪时,可以通过打开“流程 > 字段”页面来查看字段的数据类型。
如果项目集合使用本地 XML 流程模型,则可以通过“工作项字段索引”来确定数据类型。 此外,也可以:
- 打开“工作项字段资源管理器”,以查看定义的字段及其属性。
- 使用 witadmin listfields 命令列出字段属性。
有关详细信息,请参阅本文后面的工作项字段资源管理器和列表字段属性。
查看字段列表
若要查看为组织或集合定义的字段列表,请执行以下步骤:
选择
Azure DevOps 徽标以打开“项目”。 然后选择 “组织设置”。
选择处理。
选择字段。
列出的字段对应于为组织或集合定义的所有字段,其中包括所有自定义字段和为系统流程定义的字段。
Note
如果未看到“字段”,则表示集合使用本地 XML 流程。 该流程不支持“字段”页。
有关每个字段的说明、用法和引用名称,请参阅工作项字段索引。 此外,还可以使用工作项类型字段 - 列表 REST API 检索字段引用名称。
工作项字段资源管理器
可以使用工作项字段资源管理器工具来查找字段属性的分配。
若要访问工作项字段资源管理器,请安装流程编辑器工具。 根据安装的 Visual Studio 版本,从以下扩展之一获取流程编辑器工具。
- Visual Studio 2019 和 2022:迄今为止,没有可用的特定流程模板编辑器扩展。 但是,仍然可以使用其他工具(如任何文本编辑器或 XML 编辑器)自定义流程模板。 还可以使用 Azure DevOps Web 门户进行某些自定义,尤其是继承的流程。
- Visual Studio 2017:TFS 流程模板编辑器。 还可以使用此版本的流程编辑器来修改旧样式的工作项窗体。 不能使用它来编辑与新 Web 窗体关联的窗体。
- Visual Studio 2015:TFS Power Tools。
字段属性
每个工作项字段有许多不可更改和隐藏的属性。 下表介绍了每个属性。 属性具有不同的名称,具体取决于是否通过字段 - 获取 REST API 来检索属性,或通过工作项字段资源管理器 (WIFE) 工具来查看属性。
分配给字段的属性取决于正在使用的平台和版本。 例如,继承流程不支持某些属性。 若要查找字段的引用名称,请参阅工作项字段索引。
Attribute
属性类型
Description
REST:
WIFE: AllowedValues
收藏
获取包含选择列表值的字段的有效值集合。 可以通过指定选择列表或全局列表来对此进行更改(本地)。
可以更改?=是
REST: canSortBy
妻子: CanSortBy
boolean
指示是否可以使用此字段对查询结果进行排序。
可以更改?=否
REST: 说明
WIFE: HelpText
字符串
指定字段的说明,该字段还定义将鼠标悬停在工作项窗体中的字段上时显示的帮助文本。
可以更改?=是
REST:
妻子: ID
Integer
指定字段的内部 ID。
可以更改?=否
REST:
妻子: IsCloneable
boolean
指示当用户选择复制工作项时,是否复制为字段定义的值。 例如,会复制“标题”、“标记”和“说明”字段,但不会复制“ID”和“历史记录”字段。
可以更改?=否
REST:
妻子: IsComputed
boolean
指示此字段设置的值是 (True) 否 (False) 由系统计算。 计算字段是系统设置字段的示例,例如“ID”、“修订日期”、“更改日期”和“外部链接计数”。
可以更改?=否
REST:
妻子: IsCoreField
boolean
指示是否为所有工作项类型指定此字段。
可以更改?=否
REST:
妻子: IsEditable
boolean
指示用户是 (True) 否 (False) 可以修改此字段。 不可编辑字段是系统设置字段的示例,例如“ID”、“修订”、“创建者”和“更改者”字段
可以更改?=否
REST: isIdentity
妻子: IsIdentity
boolean
指示此字段是否为“标识”字段。 标识字段是用于存储用户标识的字符串字段。
可以更改?=否
REST:
妻子: IsIndexed1
boolean
指示是否为此字段编制索引以支持搜索。
可以更改?=否
REST:
妻子: IsLongText
boolean
指示该字段可以包含超过 255 个字符,例如分配了“纯文本”、“HTML”或“历史记录”数据类型的字段。
可以更改?=否
REST:isPicklist2 WIFE:
布尔
指示字段是否与选择列表相关联。 为 Azure DevOps 定义了自定义字段并选择了选择列表(字符串)或选择列表(整数)类型时,该值设置为 True。 对于定义选择列表的继承字段,该值设置为 False。
可以更改?=否
REST:isPicklistSuggested2 WIFE:
布尔
指示字段是否允许用户为选择列表输入自己的值。 为 Azure DevOps 定义了自定义字段,选择了选择列表(字符串)或选择列表(整数)类型,并且选中了“允许用户设置自己的值”复选框时,该值设置为 True。
可以更改?=是
REST: isQueryable
妻子: IsQueryable
boolean
指示字段是 (True) 否 (False) 显示在可以添加以筛选工作项查询的字段集中。 大多数字段都是可查询的。
可以更改?=否
REST:
WIFE:IsReportable 3
boolean
指示是定义可报告属性还是设置为除“无”以外的任何属性。 对于本地环境,可以更改此属性。
可以更改?=是
REST:
妻子: IsUsedInGlobalWorkflow
boolean
指示字段是否在全局工作流中定义。
可以更改?=否
REST:
妻子: IsUserNameField
boolean
指示字段是否用于显示标识字段。
可以更改?=否
REST: 名称
妻子: 名称
字符串
分配给字段的友好名称。 不能为 Azure DevOps 更改友好名称,但可以使用 witadmin changefield 命令为本地环境更改。
可以更改?=仅限本地
REST: picklistId
WIFE: HelpText
GUID
如果字段是一个选择列表,则为关联的选择列表的标识符,否则为 null。 为 Azure DevOps 定义了自定义字段并选择了选择列表(字符串)或选择列表(整数)类型时,分配唯一的 GUID 值。
可以更改?=否
REST:
妻子: 禁止值
收藏
获取指定此类值的字段的禁止值集合。 只能为本地部署定义禁止的值。
可以更改?=仅限本地
REST: readOnly
WIFE:
布尔
指示字段是否设置为只读。 对于 Azure DevOps Services,只能将自定义字段更改为只读。 无法修改系统字段。
可以更改?=是
REST: referenceName
WIFE: ReferenceName
字符串
指定字段的引用名称。
可以更改?=否
REST:
妻子: ReportingAttributes3
指定“详细信息”、“维度”或“度量值”,具体取决于你是否希望以及希望如何在报表中包含字段。 具有此属性的值(“无”除外)的字段中的数据将导出到数据仓库,并且可以包含在 SQL 报表中。
可以更改?=仅限本地
REST:
WIFE: ReportingName3
字符串
指定数据出现在 SQL 报表中时字段的标签。 如果未指定值,则使用字段的友好名称。
可以更改?=仅限本地
REST:
WIFE: ReportingReferenceName3
字符串
为将数据导出到关系数据仓库时使用的字段指定一个不同的引用名称。 如果未指定值,则使用字段的引用名称。
可以更改?=仅限本地
REST: supportedOperations
WIFE:
set
引用此字段时有效的查询运算符集。 有关基于数据类型的支持操作的快速参考,请参阅查询快速参考、运算符和每种数据类型支持的宏。
可以更改?=否
REST:
WIFE: SupportsTextQuery
boolean
指示字段是否支持文本查询,如“包含单词”、““不包含单词””。
可以更改?=否
REST:
WIFE: SystemType
字符串
指定字段的数据类型,引用系统名称,如 System.DateTime 或 System.String。
可以更改?=否
REST: 类型
WIFE: FieldType
字符串
指定字段的数据类型,如“布尔值”、“日期/时间”、“整数”、“字符串”等。 有关完整列表和说明,请参阅查询字段、运算符和宏。
可以更改?=否
REST: 使用情况
WIFE: 用法
字符串
指定字段是适用于工作项 (WorkItem) 还是工作项链接 (WorkItemLink) 对象。 大多数字段的用法为 WorkItem。 有关使用值的完整列表,请参阅获取字段、FieldUsage。
可以更改?=否
Note
可报告属性
所有报告属性仅对内部部署有效,其中项目配置为支持 SQL Server Reporting Service 和 SQL Server Analysis Service。 有关详细信息,请参阅将报告添加到项目。
有关每个可报告属性的说明,请参阅添加或修改工作项字段以支持报告。
若要查看具有默认情况下定义的可报告属性的字段列表,请参阅可报告字段引用。
索引字段
使用 witadmin indexfield 命令启用或禁用工作项字段的索引。 启用字段索引可以提高指定该字段的查询的性能。 默认情况下,将为以下字段编制索引:
- 分配到
- 创建日期
- 更改者
- State
- Reason
- 区域 ID
- 迭代 ID
- 工作项类型
如果添加在工作项查询中常用的自定义字段,请考虑为该字段启用索引。 有关详细信息,请参阅管理工作项字段 (witadmin)。
列出字段属性
可以使用字段 - 获取 REST API 列出分配给字段的属性。 将 OrganizationName 替换为实际的组织名称。
https://dev.azure.com/OrganizationName/_apis/wit/fields/FieldReferenceName
例如,若要列出迭代路径的属性,请使用 System.IterationPath 组织的引用名称 fabrikam:
https://dev.azure.com/fabrikam/_apis/wit/fields/System.IterationPath
**Returned data:**
> [!div class="tabbedCodeSnippets"]
> ```JSON
> {
> "name": "Iteration Path",
> "referenceName": "System.IterationPath",
> "description": "The iteration within which this bug will be fixed",
> "type": "treePath",
> "usage": "workItem",
> "readOnly": false,
> "canSortBy": true,
> "isQueryable": true,
> "supportedOperations": [
> {
> "referenceName": "SupportedOperations.Under",
> "name": "Under"
> },
> {
> "referenceName": "SupportedOperations.NotUnder",
> "name": "Not Under"
> },
> {
> "referenceName": "SupportedOperations.Equals",
> "name": "="
> },
> {
> "referenceName": "SupportedOperations.NotEquals",
> "name": "<>"
> },
> {
> "referenceName": "SupportedOperations.In",
> "name": "In"
> },
> {
> "name": "Not In"
> }
> ],
> "isIdentity": false,
> "isPicklist": false,
> "isPicklistSuggested": false,
> "url": "https://dev.azure.com/mseng/_apis/wit/fields/System.IterationPath"
> }
> ```
可以使用字段 - 获取 REST API 列出分配给字段的属性。 为“组织名称”输入组织名称。 若要开始使用 REST,请参阅 Azure DevOps Services REST API 参考
https://{ServerName:Port}/tfs/{Collection}/_apis/wit/fields/FieldReferenceName?api-version={version}
例如,此处我们列出了迭代路径的属性,并为 fabrikam 服务器指定引用名称 System.IterationPath。
https://fabrikam:8080/tfs/DefaultCollection/_apis/wit/fields/System.IterationPath?api-version=4.1
返回的数据:
{
"name": "Iteration Path",
"referenceName": "System.IterationPath",
"description": "The iteration within which this bug will be fixed",
"type": "treePath",
"usage": "workItem",
"readOnly": false,
"canSortBy": true,
"isQueryable": true,
"supportedOperations": [
{
"referenceName": "SupportedOperations.Under",
"name": "Under"
},
{
"referenceName": "SupportedOperations.NotUnder",
"name": "Not Under"
},
{
"referenceName": "SupportedOperations.Equals",
"name": "="
},
{
"referenceName": "SupportedOperations.NotEquals",
"name": "<>"
},
{
"referenceName": "SupportedOperations.In",
"name": "In"
},
{
"name": "Not In"
}
],
"isIdentity": false,
"isPicklist": false,
"isPicklistSuggested": false,
"url": "https://fabrikam:8080/tfs/DefaultCollection/_apis/wit/fields/System.IterationPath?api-version=4.1"
}
使用 witadmin 命令行工具列出属性
可以使用 witadmin listfields 命令列出选择字段属性(如数据类型、可报告属性和索引)。
例如,可以输入以下命令以列出为指定字段定义的属性,例如 Microsoft.VSTS.Common.Issue。
witadmin listfields /collection:http://fabrikam:8080/tfs/DefaultCollection /n:Microsoft.VSTS.Common.Issue
为命名字段显示的字段和特性信息,如本示例所示。
Field: Microsoft.VSTS.Common.Issue
Name: Issue
Type: String
Reportable As: dimension
Use: Adventure Works (Shared Steps), AW Future (Shared Steps), AW Current (Shared Steps)
Indexed: False
Use 参数指示每个项目的名称和使用字段的工作项类型。
添加和修改字段
若要将字段添加到流程,请将它们添加到一个或多个工作项类型。 有关详细信息,请参阅 自定义继承过程。
可以添加或修改 WIT 中包含的字段,也可以添加自定义 WIT。 有关详细信息,请参阅:
- 对于使用继承流程模型的项目集合:自定义继承流程。
- 对于使用本地 XML 流程模型的项目集合:自定义本地 XML 流程模型。
可以使用 witadmin 命令行工具更改系统字段以外的所有字段的字段名称、索引和报表属性。 有关详细信息,请参阅管理工作项字段-witadmin。
相关内容
- 请参阅“查询快速参考”,快速了解查询语法和用法。
- 探索工作项字段索引,查看所有可用的工作项字段。
- 添加和管理继承流程的字段,根据继承的流程要求自定义字段。
- 访问 Azure Boards Analytics 的元数据参考,了解分析元数据和报告功能。
- 请参阅“查询快速参考”,快速了解查询语法和用法。
- 探索工作项字段索引,查看所有可用的工作项字段。
- 选择项目集合的流程模型,根据需要选择适当的流程模型。
- 根据项目的要求修改工作项字段。
- 使用 witadmin 管理工作项字段,以执行高级字段管理任务。
- 访问 Azure Boards Analytics 的元数据参考,了解分析元数据和报告功能。