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