Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TFS查询:仅获取分配给我的最顶层元素_Tfs_Wiql - Fatal编程技术网

TFS查询:仅获取分配给我的最顶层元素

TFS查询:仅获取分配给我的最顶层元素,tfs,wiql,Tfs,Wiql,我正在尝试构建一个tfs查询,它将只返回分配给我的最上面的项。 示例: UserStory(US)已分配给我,并包含已分配的任务 对我来说=>查询只返回美国 我们被分配给其他人, 但它包含分配给我的任务=>查询返回 任务 US分配给我,但任务分配给其他人=> 查询返回美国 我正在努力弄清楚,如何访问任务的父级,或者这甚至不是正确的方法。我正在与VS和TFS 2010合作。想法 [编辑] 另一个想法是编写一个wiql查询,查找分配给我的所有项目,然后检查链接是否有一些属性,但我对此不确定。在T

我正在尝试构建一个tfs查询,它将只返回分配给我的最上面的项。 示例:

  • UserStory(US)已分配给我,并包含已分配的任务 对我来说=>查询只返回美国
  • 我们被分配给其他人, 但它包含分配给我的任务=>查询返回 任务
  • US分配给我,但任务分配给其他人=> 查询返回美国
我正在努力弄清楚,如何访问任务的父级,或者这甚至不是正确的方法。我正在与VS和TFS 2010合作。想法

[编辑]
另一个想法是编写一个wiql查询,查找分配给我的所有项目,然后检查链接是否有一些属性,但我对此不确定。在TFS2013中,应该有类似的内容(“首先匹配顶级工作项”),除非这只是一个排序选项

对于一个查询,这是不可能的,至少您需要2个,因为您不能将链接筛选器与查询的一部分组合在一起:

  • 简单列表
WorkItemType=UserStory,AssignedTo=@ME

  • 工作项和直接链接
WorkItemType=Task并分配给@ME

链接工作项的筛选器:

WorkItemType=UserStory并分配给@ME

返回所有顶级工作项

第一个查询将只列出分配给您的所有用户故事,无论是否链接了某些内容。第二个查询将列出分配给您的所有任务,但没有分配给您的UserStory链接

[编辑]

另一种选择是组合两个查询,但我无法在我的环境中进行测试:

  • 工作项和直接链接
(WorkItemType=Task或WorkItemType=User Story)和AssignedTo=@ME

链接工作项的筛选器:

WorkItemType=UserStory并分配给@ME

返回所有顶级工作项

这将列出分配给您的所有用户故事和任务,但没有链接父用户故事

[编辑二]

<?xml version="1.0" encoding="utf-8"?><WorkItemQuery Version="1"><TeamFoundationServer>http://tfs:8080/tfs/DefaultCollection</TeamFoundationServer><TeamProject>Test</TeamProject><Wiql>SELECT [System.Id], [System.Links.LinkType], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State] FROM WorkItemLinks WHERE ([Source].[System.TeamProject] = @project  AND ( [Source].[System.WorkItemType] = 'Task'  OR  [Source].[System.WorkItemType] = 'UserStory' ) AND  [Source].[System.AssignedTo] = @me) And ([System.Links.LinkType] &lt;&gt; '') And ([Target].[System.WorkItemType] = 'UserStory'  AND  [Target].[System.AssignedTo] &lt;&gt; @me) ORDER BY [System.Id] mode(MayContain)</Wiql></WorkItemQuery>
http://tfs:8080/tfs/DefaultCollectionTestSELECT [System.Id]、[System.Links.LinkType]、[System.WorkItemType]、[System.Title]、[System.AssignedTo]、[System.State]来自WorkItemLinks,其中([Source].[System.TeamProject]=@project和([Source].[System.WorkItemType]='Task'或[Source].[System.WorkItemType]='UserStory')和[Source]。[System.AssignedTo]=@me)和([System.Links.LinkType]'')和([Target].[System.WorkItemType]='UserStory'和[Target].[System.AssignedTo]@me)按[System.Id]模式排序(可能包含)

这并不是我想要的,也许wiql查询会更好。你想在代码中运行wiql吗?因为我不知道其他地方可以使用它。我添加了第三个查询,这可能会解决你的问题。实际上,如果你将查询保存到文件,你会注意到它基本上在标记之间包含wiql代码。因此你可以创建吃下任何Wiql查询并运行它,这样您就不受vs查询编辑器的限制。为第三个查询添加Wiql我非常感谢您的努力(upvote),但正如您所理解的,您的解决方案并不完全是我想要的。