TFS 查询以关闭 EPIC 但任何相关功能或用户故事或任务未关闭

TFS Query to get EPICs closed but any of the related Feature or User Story or Task not closed

我需要一个 TFS 查询来获取处于关闭状态但任何相关功能或用户故事或任务未关闭的 EPIC。即使功能关闭但用户故事或任务未关闭,它也应该工作。用户故事已关闭但任务未关闭。

可以在 TFS 2013 中使用单个 TFS 查询来完成吗?

我能够在用户故事未关闭的情况下关闭功能(或)用户故事已关闭但任务仍未通过 TFS 查询关闭。

我可以在单个 TFS 查询中执行以上 EPIC(已关闭)-> 功能(<> 已关闭)-> 用户故事(<>已关闭)-> 任务(<>已关闭)吗?

不,它不能这样做。

首先,您需要使用树查询(通过 select 工作项树 )来查看多层嵌套的工作列表项目。

要查找链接的子项,您需要select 首先匹配顶级工作项。这是最接近的查询。

但是,正如您已经指出的那样。该查询将判断所有子工作项是否关闭。将return那些未关闭的子工作项。有点

EPIC(已关闭)-> 功能(<> 已关闭)-> 或用户故事(<> 已关闭)-> 或任务(<> 已关闭)

但其实你需要的是:

EPIC(已关闭)-> 功能(<> 已关闭)-> 用户故事(<>已关闭)-> 任务(<>已结束)

如果关闭整个树的子工作项,则不会 return 树。

在单个 TFS 查询中不可用

也没有 build-in 方法可以做到这一点。 工作项的状态完全独立于所有其他工作项,包括链接的工作项。

目前管理它的一些解决方法:

  1. 来自Server-side:您可以向 tfs 添加一个插件,它可以更改工作项。 TFSAggregator 就是一个很好的例子。此解决方案的问题在于,它仅在保存后更改工作项。所以用户仍然可以关闭 child,但服务器将 re-open 它。换句话说,你不能阻止关闭,但你可以在检测到non-allowed动作后立即re-open。

  2. 使用客户端API与Parent-Child关系进行监控。比如EPIC Feature->和User Story->Tasks。如果child没有关闭,那么就不要关闭parent。层层叠叠的树。相同的代码可能对您的参考有帮助:Close a Work Item only if Child Work items are closed

我可以使用以下查询获取数据。

已使用 'Work Items and direct links' 类型查询。

顶级工作项: 工作项类型 'In' 功能、用户故事 AND 区域和迭代路径。 AND 状态 = 关闭

linked 工作项的过滤器: 工作项类型 'In' 用户故事、任务 AND 状态 <> 关闭

过滤选项:只有 return 项具有匹配的 link Return 已选择 link 类型:儿童

我能够获取功能(已关闭)-> 用户故事(<>已关闭)-> 或任务(<>已关闭)和用户故事(已关闭)但任务(<>已关闭)和功能(任何状态)。

会尝试使用更多关卡。