我正在尝试查找过去30天内分配给某人X的所有WorkItem 我遇到的最大问题是“过去30天” - 部分。
我考虑使用“ever”或“asof”关键字,但找不到一个好的答案......类似于WHERE [Assigned To] = 'X' AND (([Assigned To] != 'X') asof '<30daysago>')
。
但这仍然不是一个防弹解决方案。
有更好的想法吗?
谢谢&amp;亲切的问候
西蒙
答案 0 :(得分:14)
似乎只使用WIQL是不可能的,但你可以接近。
关键字@Today
将为您提供今天的日期,然后从中减去您的范围。 EVER
关键字应用于[Status]='AssignedTo'
,并将过去30天的日期与[StateChangeDate]进行比较,这是您完成此操作所需的内容。
尽可能接近WIQL和现有字段:
这表示,从所有修订(状态更改)返回用户'X'曾经被AssignedTo并且状态在过去30天内发生了变化的记录。这基本上会让你对上个月用户的工作情况略显模糊。
WHERE [Microsoft.VSTS.Common.StateChangeDate] >= @today - 30
AND [System.AssignedTo] EVER 'Bennett Aaron'
ORDER BY [System.State]
添加缺少的字段:
您可以添加一个名为AssignedDate的自定义字段,该字段在您在工作项定义XML中创建的New-&gt; AssignedTo工作流转换期间捕获。您可以使用Visual Studio的Team Foundation Server Power Tools扩展来完成此操作。这将为您提供您所需的确切内容以及未来的其他报告选项。
TFS API
我无法帮助您解决这个问题,但我相信您可以使用TFS API进行查询。
我经历过几次快速陷阱,以节省您在ASOF和EVER上的时间:
AsOf
本身不会帮助您,因为它不支持一系列日期。它允许您查询它是否是另一个日期。换句话说,如果您忘记昨天捕获查询的结果,则可以使用AsOf查询来获取昨天运行时可能获得的结果。我的理解是你想查询一个基本的日期范围。
EVER
可能无法按预期对日期起作用,因为我认为它使用了字段的确切值(包括日期字段的时间戳部分)。只需确保EVER关键字用于状态字段而不是日期。