定义全局列表
Azure DevOps Server 2020 |Azure DevOps Server 2019 |TFS 2018
重要
本文适用于托管 XML 和本地 XML 进程模型的项目自定义。 托管 XML 自定义支持使用进程更新添加和更新全局列表。 若要了解详细信息,请参阅 流程模板自定义差异。
继承过程模型不支持全局列表。 有关流程模型的概述,请参阅 自定义工作跟踪体验。
通过使用全局列表,可以最大程度地减少更新多个工作项类型定义中显示的列表所需的工作, (WIT) 。 全局列表是可包括在一个或多个字段和 WIT 定义内的选择列表。
可以通过包括一个或多个 GLOBALLIST 元素中的列表项,在集合的多个 WIT 之间共享列表项。
定义 WIT 时,你可能会发现一些字段共享相同的值。 通常,你可以跨多个 WIT 共享,甚至跨多个项目共享。 其中的一些值(例如每夜生成的生成号、更改频率),需要管理员在多个位置中频繁更新这些列表。 当列表必须派生自外部系统时,全局列表尤其有用。 例如,假设公司维护一个单独的客户数据库。 当你提交客户发现的 bug 时,客户的名称将输入到自定义 Found By Customer 字段中。
你可以管理集合的全局列表,以作为可列出、导入、导出和删除的 XML 文件。 每个全局列表的名称最长可为 254 个 Unicode 字符,在一个集合中必须唯一。
注意
默认进程或进程模板中没有系统定义或预定义的全局列表。
先决条件
对于定义全局列表的项目集合,必须具有以下权限集:
若要导出或列出全局列表,您必须是 项目集合有效用户组 的成员,或者将 视图集合级信息 权限设置为 “允许”。
若要导入全局列表,你必须是 Project Collection Administrators 安全组的成员。
若要添加或修改全局列表,请使用 witadmin 命令行工具导入和导出全局列表的定义。 请参阅 “管理全局列表”。 若要使用全局列表,请将其添加到 FIELD 工作项类型中的定义。 请参阅 “所有 FIELD”元素。
添加和管理全局列表
全局列表是集合中所有项目全局存储和使用的一组 LISTITEM 元素。 全局列表适用于在多种工作项中定义的字段,例如操作系统、“在生成中查找”和“生成中已修复”。
可以根据使用的进程模型,使用以下方法之一定义一个或多个全局列表及其项:
- 在添加到项目或进程模板的 WIT XML 定义中, (托管的 XML 和本地 XML)
- 在导入到项目集合的全局列表 XML 定义文件中, (本地 XML)
- 在导入到项目集合的 全局工作流 XML 定义文件中 , (本地 XML) 。
备注
对于 Hosted XML 进程模型,以下限制放置在全局列表导入上:
- 共有 64 个全局列表
- 每个列表总共 512 个项目
- 可以在所有 WIT 中指定的所有全局列表中定义大约 10K 个项。
语法结构
下表描述了 GLOBALLIST 和 LISTITEM 元素。 你可以使用这些元素将向用户显示的值列表枚举为项的选取列表或下拉菜单。
元素
说明
GLOBALLIST
定义一组为集合存储的 LISTITEM 元素,以及集合中的所有项目都可以使用。
<GLOBALLIST name="globalListName">
<LISTITEM> . . . </LISTITEM>
</GLOBALLIST>
globalListName:包含 1 到 255 个字符的文本字符串。
GLOBALLIST 是 GLOBALLISTS 元素的必需子元素,也是 和元素的ALLOWEDVALUESSUGGESTEDVALUESPROHIBITEDVALUES可选子元素。 有关详细信息,请参阅 ALLOWEDVALUES、SUGGESTEDVALUES 和 PROHIBITEDVALUES XML 元素。
LISTITEM
定义有效列表值。 全局列表不得包含项目范围的组,因为它们的应用范围未限定为项目。
<LISTITEM value="Name" />
LISTITEM 是 GLOBALLIST 的必需子元素,也是元素的ALLOWEDVALUESSUGGESTEDVALUESPROHIBITEDVALUES可选子元素。
示例全局列表
通过添加以下语法,你可以定义工作项类型的 XML 定义文件中的全局列表或全局工作流:
<GLOBALLISTS>
<GLOBALLIST name="name of global list">
<LISTITEM value="List item 1" />
<LISTITEM value="List item 2" />
<LISTITEM value="List item 3" />
<LISTITEM value="List item 4" />
. . .
<LISTITEM value="List item n" />
</GLOBALLIST>
</GLOBALLISTS>
通过使用以下语法,你可以引用工作项类型的 XML 定义文件中的全局列表:
<GLOBALLISTS>
<GLOBALLIST name=" name of global list 1" />
<GLOBALLIST name=" name of global list 2" />
. . .
<GLOBALLIST name=" name of global list n" />
</GLOBALLISTS>
有关工作项或全局工作流类型定义文件的结构和位置的信息,请参阅 所有 WITD 元素 或 GLOBALWORKFLOW。
为项目集合维护的示例全局列表
若要将全局列表添加到项目集合,可以使用 witadmin importgloballist 命令导入以下语法:
<gl:GLOBALLISTS xmlns:gl="http://schemas.microsoft.com/VisualStudio/2008/workitemtracking/globallists">
<GLOBALLIST name="NameOfGlobalList">
<LISTITEM value="ListItem1" />
<LISTITEM value="ListItem2" />
<LISTITEM value="ListItem3" />
<LISTITEM value="ListItem4" />
. . .
<LISTITEM value="ListItemN" />
</GLOBALLIST>
</gl:GLOBALLISTS>
全局列表不能为空。 每个 GLOBALLIST 元素必须至少定义一个 LISTITEM 元素。
相关文章
是否有任何全局列表自动填充数据?
对于本地Azure DevOps Server是的。 名为 Builds 的全局列表。每次运行生成时都会追加 TeamProjectName 。 随着时间的推移,该列表会变得很长。 最佳做法是定期从该列表中删除不使用的项目。
若要了解有关使用此列表的详细信息,请参阅 基于生成和测试集成字段的查询。