查询工作项
使用搜索框查找工作项。 输入 ID 或使用筛选器。 如果你需要工作项的简单列表、使用树查询的分层列表或使用直接链接查询的显示依赖项的列表,请使用查询编辑器来选择查询类型。
可在在 Visual Studio Online、Team Web Access (TWA) 和团队资源管理器中创建查询。 此外,可以在 Excel 或 Project 中打开查询以执行批量修改。
使用搜索框可按照其 ID 查找工作项
在“搜索工作项”框中输入 ID,然后选择搜索图标。
通过使用 上下文菜单,可以根据分配、状态、关键字或工作项类型将筛选器添加到列表项。
例如,输入 A=@Me T=Task 可列出分配给你的所有任务。
打开和编辑简单列表查询
定义查询的最简单方法是从现有共享查询开始。 以下示例演示如何通过修改与 Agile 过程模板一起提供的“活动 Bug”共享查询,来查找所有已关闭的 Bug。 这些示例基于通过 web 浏览器提供的用户界面。
打开共享查询。 例如,打开“活动 Bug”或类似的简单列表查询。
编辑查询以查找已关闭的 Bug,然后运行查询。 使用 (插入新的筛选器行)可在当前子句的上方插入一个子句。 使用 (移除筛选器行)可删除子句。
将查询保存到“我的查询”文件夹。
若要将查询保存到“共享查询”文件夹,你需要是团队管理员、Project 管理员组的成员,或这你对文件夹的**“参与”**权限已设置为“允许”。
创建查询
从 TWA 中查询页上的**“新建”**菜单或团队资源管理器中的工作项页开始。
将子句分组以优化列表
已分组的子句作为独立于查询的其余部分的一个单元来工作,这类似于在数学等式或逻辑表达式两侧加上括号。 组中第一个子句的 And 或 Or 运算符将应用于整个组。
在下一示例中,第一个表达式返回优先级为 1 的所有工作项和任意优先级的所有活动 Bug。 第二个表达式返回优先级为 1 的所有活动工作项以及优先级为 1 的所有 Bug(无论活动与否)。
分组子句 |
逻辑表达式。 |
---|---|
Priority=1 OR (Work Item Type=Bug AND State=Active) |
|
Priority=1 AND (Work Item Type=Bug OR State=Active) |
若要对一个或多个子句分组,请选择这些子句,然后选择 “将子句分组”图标。
如果查询结果未返回预期的工作项集,请执行以下步骤:
确保每个子句按预期方式定义。
验证每个子句的**“与/或”赋值。 如果结果包含的工作项超出预期,往往因为使用了“或”子句而非“和”**子句。
确定你是否需要分组或更改查询子句的分组以及每个分组子句的**“And/Or”**赋值。
添加更多查询子句以细化查询筛选条件。
检查可用于指定字段、运算符和值的选项。
使用树查询可查看分层列表
使用树查询 () 可查看多层、嵌套工作项列表。 例如,你可以查看所有积压工作 (backlog) 项及其链接的任务。
展开 () 或折叠 () 叶节点以关注树的不同部分。
定义父工作项和子工作项的筛选条件。
若要查找链接的子级,请选择**“首先匹配顶级工作项”。 若要查找链接的父级,请选择“首先匹配已链接的工作项”**。
使用直接链接查询来查看依赖项
使用直接链接查询 () 跟踪依赖于其他跟踪的工作的工作项,如任务、Bug、问题或功能。 例如,可以查看取决于其他正在实现的项或正在修复的 Bug 的积压工作 (backlog) 项。
使用直接链接查询可跟踪你的团队具有的并且其他团队正在工作的依赖项,或管理你的团队对其他团队的承诺。 为顶部和链接的工作项指定筛选条件,并选择用于筛选依赖项的链接类型。
通过选择下列选项之一来筛选第一层工作项列表:
仅返回具有指定链接的项:返回第一层工作项,但只有当返回的工作项具有链接工作项筛选条件所指定的工作项链接时。
“返回所有顶级工作项”:返回所有第一层工作项,而不考虑链接工作项筛选条件。 如果链接到第一层的第二层工作项匹配链接的工作项筛选条件,则会返回第二层工作项。
仅返回不具有指定链接的项:返回第一层工作项,但只有当返回的工作项不具有链接工作项筛选条件指定的工作项链接时。
问题解答
问:我可以使用什么查询运算符和变量?
答:可用于选择的运算符和变量取决于你所选的字段。 四个变量为:“@Project”(针对项目名称字段)、“@Me”(针对人名字段)、“@Today”(针对日期-时间字段)、“[Any]”。 请参阅查询字段、运算符、值和变量。
问:还有哪些查询示例?
问:如何用图表来表示查询结果?
**答:**从 Visual Studio Online 和 TWA 中,你可以将任意简单列表查询的结果绘制成图表。 你必须是 TWA 中的高级访问权限组的成员。
或者,可以在 Excel 中打开查询并使用 Excel 的功能来生成图表。
问:如何基于当前冲刺 (sprint) 或迭代自动更新查询?
**答:**无法自动执行此操作;你必须手动更新查询以指向当前冲刺 (sprint)。 如果团队项目基于 Scrum 或 Agile,你将在当前冲刺 (sprint) 或当前迭代文件夹下找到一组查询。 对于要返回为当前冲刺 (sprint) 定义的项的每个查询,你必须根据日期更新当前迭代的迭代路径。
通过将许多查询另存为 .wiq 文件,可以更改这些查询。 在团队资源管理器中打开查询,选择**“编辑查询”,然后选择“文件,另存为”**将每个查询另存为 .wiq 文件。 以下是“正在进行的工作”查询的示例,它已更新为支持 Release 2\Sprint 59。
<?xml version="1.0" encoding="utf-8"?>
<WorkItemQuery Version="1">
<Wiql>
SELECT [System.Id],
[System.WorkItemType],
[System.Title],
[System.AssignedTo],
[System.State],
[Microsoft.VSTS.Scheduling.RemainingWork],
FROM WorkItems
WHERE [System.TeamProject] = @project and
[System.IterationPath] under 'FabrikamPrime\Release 2\Sprint 59' and
[System.WorkItemType] in group 'Microsoft.TaskCategory' and
[System.State] = 'In Progress'
ORDER BY [System.AssignedTo],
[Microsoft.VSTS.Common.BacklogPriority],
[System.Id]
</Wiql>
</WorkItemQuery>
问:如何在结果列表中添加或更改列?
**答:打开“列选项”**以添加或移除列,更改列顺序以及更改列中的排序顺序。
此外,可以将列从结果列表中拖动到新位置并选择列标题来更改列的排序顺序。
问:我是否能使用标记筛选查询?
**答:**是,前提是你使用 Visual Studio Online 或你的本地 TFS 包含随 TFS 2013 Update 2 一起添加的更新,否则,对于本地部署,答案为否。
对于 Visual Studio Online 以及 Visual Studio 2013 Update 2,你可以选择“标记”作为要筛选的字段。 此外,可以从 Excel 中打开一个查询并批量修改分配到工作项的标记。 还可以使用 Visual Studio 将标记添加到工作项。
可以从适用于 Eclipse 的团队资源管理器插件中按标记对查询进行筛选,但不能从用户界面添加或修改标记。 必须使用 Web 门户来添加和修改标记。
对于不包含 TFS 2013 Update 2 的 本地 TFS,可以在查询结果中将标记显示为列,也可以基于标记筛选列表,但不能将标记作为子句添加到筛选条件。
问:我是否能使用查询结果来快速修改链接的关系?
**答:**从适用于 Visual Studio 的团队资源管理器插件中,你可以降级 ()、升级 () 以及拖动工作项以修改层次结构。
此外,你可以在 Excel 或 Project 中打开查询以批量修改父-子和前置-后续链接关系。
问:如何防止别人更改我与团队共享的查询?
答:将查询的权限设置为读取。
问:如何将查询添加到“共享查询”或添加为团队收藏夹?
**答:**若要将查询保存到“共享查询”文件夹,你需要添加为团队管理员组或具有对共享查询下的文件夹设置的权限。
若要将查询添加为团队收藏夹,请打开查询的 上下文菜单并将其添加为团队收藏夹。 若要将查询添加到团队收藏夹,你需要是团队管理员。
你只能将共享查询添加到团队收藏夹,并且仅当你拥有团队管理员权限时才能这样做。
问:我是否能将文件夹添加到团队收藏夹?
**答:否。 你只能将文件夹添加到“我的查询”和“共享查询”**下。
问:我是否能通过电子邮件发送查询?
**答:**可以。 请参阅通过电子邮件发送 TFS 工作项和查询 URL 链接。
问:我能否定义打开查询的超链接?
**答:**可以。 定义超链接的最简单方法是创建一个与所需内容匹配的查询,然后复制该查询的 URL。 超链接使用工作项查询语言 (WIQL)(该语言类似于 Transact-SQL)并符号以下语法:
**http://ServerName:**Port/ /tfs/CollectionName/TeamProjectName/**q.aspx?pname=Project&wiql=**WorkItemQueryLanguage
例如,下面的超链接列出了所有 Bug(具有为 AdventureWorksProject 项目定义的生成号 9.0.30304)的 ID、标题和状态。
http://AdventureWorks:8080/tfs/ /q.aspx?pname=AdventureWorksProject&wiql==SELECT [System.ID], [System.Title], [System.State] FROM WorkItems WHERE [System.TeamProject]='AdventureWorksProject' AND [System.WorkItemType]='Bug' AND [System.FoundIn]='9.0.30304' http://Server1:8091/tfs/web/wi.aspx?id=9035
问:我是否能导出查询?
**答:**可以。 从团队资源管理器的查询编辑器中,使用“文件”菜单可将查询另存为 .wiq 文件。 创建团队项目后,将基于过程模板中定义的 .wiq 文件创建共享查询。
问:为何任务板的内容与其已创建的查询中列出的内容不同?
**答:**可以将任务分配给迭代,但不能将其链接到父积压工作 (backlog) 项。 这些项将显示在创建的查询中,但不会在任务板本身上显示。 TFS 将运行查询并在显示任务板项之前应用几个后台进程。
以下三个原因可能导致属于任务类别的工作项不会出现在冲刺 (sprint) 积压工作 (backlog) 页或任务板上:
未将该任务链接到父积压工作 (backlog) 项。 只有其迭代路径设置到冲刺 (sprint) 的已链接到父产品积压工作 (backlog) 项 (Scrum)、用户情景 (Agile) 或要求 (CMMI) 的这些 Bug 和任务将显示在冲刺 (sprint) 积压工作 (backlog) 页上。
该任务是其他任务的父任务。 如果已经创建任务的层次机构,则仅显示结构底层的子任务。
该任务链接的父任务对应于为其他团队定义的积压工作 (backlog) 项。 或者,该任务的父积压工作 (backlog) 项的区域路径与该任务不同。
问:我是否能以编程方式查询工作项?是否可以创建动态查询?
**答:**可以。 请参阅查询 Bug、任务和其他工作项。