13

過去30日間に人物Xに割り当てられたすべてのWorkItemを検索しようとしています。
私が抱えている大きな問題は、「過去30日間」の部分です。

「ever」または「asof」キーワードを使用することを考えましたが、まだ良い答えを見つけることができませんでしたWHERE [Assigned To] = 'X' AND (([Assigned To] != 'X') asof '<30daysago>')
しかし、これはまだ防弾ソリューションではありません。

より良いアイデアはありますか?

よろしくお願いします

サイモン

4

1 に答える 1

14

これはWIQLだけでは不可能なようですが、近づくことはできます。

キーワード@Todayは今日の日付を示し、それから範囲を引くだけです。[StateChangeDate]に EVER適用されるキーワードと30日前の日付との比較は、これを達成するために必要なものです。[Status]='AssignedTo'

WIQLと既存のフィールドで可能な限り近い
これは、すべてのリビジョン(ステータスの変更)から、ユーザー「X」がこれまでに割り当てられ、状態が過去30日間に変更されたレコードを返すことを意味します。これにより、基本的に、ユーザーが先月取り組んでいることを少し曖昧に把握できます。

WHERE [Microsoft.VSTS.Common.StateChangeDate] >= @today - 30  
  AND  [System.AssignedTo] EVER 'Bennett Aaron' 
    ORDER BY [System.State]

欠落しているフィールドを追加する
作業項目定義XMLで作成するNew->AssignedToワークフロー遷移中にキャプチャされるAssignedDateというカスタムフィールドを追加できます。これは、VisualStudioのTeamFoundation ServerPowerTools拡張機能を使用して実現できます。これにより、必要なものだけでなく、今後の追加のレポートオプションも提供されます。

TFS API
これについてはお役に立てませんが、TFSAPIを使用してクエリを実行できると思います。



ASOFおよびこれまでの時間を節約するために私が経験したいくつかの簡単な落とし穴:

AsOf日付の範囲をサポートしていないため、これだけでは役に立ちません。別の日付であるかのようにクエリを実行できます。つまり、昨日のクエリの結果をキャプチャするのを忘れた場合は、AsOfクエリを使用して、昨日実行した場合に得られたであろう結果を取得できます。私が理解しているのは、基本的な日付範囲を照会したいということです。

EVERテスト対象のフィールドの正確な値(日付フィールドのタイムスタンプ部分が含まれる)を使用していると思われるため、日付に対して期待どおりに機能しない可能性があります。日付ではなく、ステータスフィールドに対してEVERキーワードが使用されていることを確認してください。

于 2011-03-03T16:58:55.237 に答える