查找过去30天内分配给X的WorkItem

Sim*_*ker 13 tfs tfs-workitem wiql

我正在尝试查找过去30天内分配给X的所有WorkItems.
我遇到的最大问题是"在过去30天内" - 部分.

我想过使用"ever"或"asof"关键字,但还是找不到一个好的答案......就像WHERE [Assigned To] = 'X' AND (([Assigned To] != 'X') asof '<30daysago>').
但这仍然不是一个防弹解决方案.

有更好的想法吗?

谢谢和亲切的问候

西蒙

Aar*_*ett 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]
Run Code Online (Sandbox Code Playgroud)

添加缺少的字段:
您可以添加一个名为AssignedDate的自定义字段,该字段在您在工作项定义XML中创建的New-> AssignedTo工作流转换期间捕获.您可以使用Visual Studio的Team Foundation Server Power Tools扩展来完成此操作.这将为您提供您所需的确切内容以及未来的其他报告选项.

TFS API
我无法帮助您解决这个问题,但我相信您可以使用TFS API进行查询.



我经历过几次快速陷阱,为您节省ASOF和EVER的时间:

AsOf我不会自己帮助你,因为它不支持一系列日期.它允许您查询它是否是另一个日期.换句话说,如果您忘记昨天捕获查询的结果,则可以使用AsOf查询来获取昨天运行时可能获得的结果.我的理解是你想查询一个基本的日期范围.

EVER可能无法正常工作,因为我相信它会使用该字段的确切值(包括日期字段的时间戳部分).只需确保EVER关键字用于状态字段而不是日期.