定义要添加到过程模板中的工作项查询

可在团队资源管理器中很轻松地创建工作项查询 (.wiq) 文件。 在现有团队项目中,你可以使用团队资源管理器创建要添加到过程模板的所有工作项查询,然后按照本主题中的步骤将每个查询另存为 .wiq 文件。 有关如何创建工作项查询的详细信息,请参阅查询工作项

要求

  • 若要创建查询,你必须是**“Readers (访问者)”组的成员,或者你对查询中每个团队项目的“查看此节点中的工作项”权限必须设置为“允许”**。

  • 若要将查询另存为团队查询,你必须具有设置查询的权限中介绍的适当权限。

将工作项查询另存为 .wiq 文件

  1. 在团队资源管理器中,打开要保存的查询。

  2. 在**“文件”菜单上,选择“将 <查询名称> [Query] 另存为”**。

  3. 在**“将查询另存为”对话框中,选择“文件”,然后指定 .wiq 文件的位置和文件名。 或者,选择“浏览”,指定文件名,浏览到要保存文件的位置,然后选择“保存”**。

  4. 将文件复制到 \WorkItem Tracking\Queries 文件夹中,该文件夹位于下载过程模板的文件夹中。

  5. 在文本编辑器中打开 .wiq 文件。

  6. 移除**“<TeamFoundationServer>”“<TeamProject>”**元素,这两个元素将查询与运行 Visual Studio Team Foundation Server 的特定服务器和特定团队项目关联,如以下示例所示:

    <TeamFoundationServer>CollectionURL</TeamFoundationServer>
    <TeamProject>ProjectName</TeamProject>
    

    备注

    必须在文本编辑器中编辑 .wiq 文件,并移除将查询与特定服务器和团队项目关联的“<TeamFoundationServer>”“<TeamProject>”元素。否则,当将过程模板上载到其他服务器时,查询将不能正常工作。或者,也可以在可使用宏的地方使用它,以便查询不包含当前团队项目的显式名称或任何其他特定于某个环境的值。

  7. 移除特定于某用户的任何其他元素。

创建引用迭代路径的工作项查询

通过包括团队项目 $$PROJECTNAME$$ 的宏以及在分类插件文件中定义的迭代路径的名称,可以定义引用特定迭代路径的查询。 例如,以下语法指定只包括那些迭代路径位于迭代 1 下的工作项的查询。

AND  [Source].[System.IterationPath] UNDER '$$PROJECTNAME$$\Iteration 1'

创建团队项目时,宏将替换为团队项目的名称。

通过使用此宏,你可以定义引用特定迭代路径的工作簿。 MSF 敏捷软件开发的过程模板包含一个特定于迭代的查询 Iteration1Backlog.wiq,该查询支持特定于迭代的工作簿 Iteration Backlog.xlsm。

上载特定于迭代的查询时,处理 Classification.xml 文件的任务必须在处理查询文件的任务之前完成。 有关详细信息,请参阅在分类插件中定义初始区域和迭代使用过程模板插件文件定义根任务

迭代特定工作项查询示例

下面的示例演示了支持“迭代积压工作”工作簿的 Iteration1Backlog 工作项查询。

<?xml version="1.0" encoding="utf-8"?>
<WorkItemQuery Version="1">
  <Wiql>
    SELECT [System.Id],
           [System.WorkItemType],
           [System.Title],
           [System.State],
           [System.AssignedTo],
           [Microsoft.VSTS.Scheduling.RemainingWork],
           [Microsoft.VSTS.Scheduling.CompletedWork],
           [Microsoft.VSTS.Scheduling.StoryPoints],
           [Microsoft.VSTS.Common.StackRank],
           [Microsoft.VSTS.Common.Priority],
           [Microsoft.VSTS.Common.Activity],
           [System.IterationPath],
           [System.AreaPath]
      FROM WorkItemLinks
     WHERE (Source.[System.TeamProject] = @project 
       AND  [Source].[System.AreaPath] UNDER @project
       AND  [Source].[System.IterationPath] UNDER '$$PROJECTNAME$$\Iteration 1'
       AND (
               Source.[System.WorkItemType] = 'User Story' 
            OR Source.[System.WorkItemType] = 'Task'
           )
           )
       AND [System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward'
       AND [Target].[System.WorkItemType] = 'Task'
       ORDER BY [Microsoft.VSTS.Common.StackRank], [Microsoft.VSTS.Common.Priority]
       mode(Recursive)
  </Wiql>
</WorkItemQuery>

WorkItemQuery 元素引用

下面的语法演示了 WorkItemQuery 元素及其子元素的结构。

<WorkItemQuery Version="1">
   <TeamFoundationServer>collectionURL </TeamFoundatonServer>
   <TeamProject>TeamProjectName </TeamProject>
   <Wiql>
      WorkItemQueryLanguage
   </Wiql>
</WorkItemQuery>

元素

语法

描述

TeamFoundationServer

<TeamFoundationServer>collectionURL
</TeamFoundatonServer>

WorkItemQuery 的可选子元素。

重要

一般而言,可从添加到过程模板的查询移除此元素。

指定以下格式的团队项目集合的 URI:

http://ServerName:Port/VirtualDirectoryName/CollectionName

如果未使用虚拟目录,则对 URI 使用以下格式:

http://ServerName:Port/CollectionName

特性类型是 ServerNameType,其最大长度为 2047 个字符。

TeamProject

<TeamProject>TeamProjectName</TeamProject>

WorkItemQuery 的可选子元素。

重要

一般而言,可从添加到过程模板的查询移除此元素。

指定要对其运行查询的团队项目。

特性类型是 ProjectNameType,其最大长度为 255 个字符。

Wiql

<Wiql>WorkItemQueryLanguage</Wiql>

WorkItemQuery 的必需子元素。

指定作为筛选条件的结构化查询语言 (SQL) 命令序列,以在团队项目中查找一组工作项并返回分配给一定数量的字段的值。

MSF 过程模板提供了 Wiql 元素支持的 SQL 命令的几个示例。 这些文件位于 WorkItem Tracking 文件夹的 Queries 文件夹中。

请参见

概念

查询工作项

使用工作项跟踪插件来定义用于跟踪工作项的对象