Подтвердить что ты не робот

Найти WorkItems, которые были назначены X за последние 30 дней

Я пытаюсь найти все WorkItems, которые были назначены человеку X за последние 30 дней.
У меня большая проблема: "за последние 30 дней" - часть.

Я думал об использовании ключевых слов "ever" или "asof", но пока не нашел хорошего ответа... что-то вроде WHERE [Assigned To] = 'X' AND (([Assigned To] != 'X') asof '<30daysago>').
Но это еще не пуленепробиваемое решение.

Любые лучшие идеи?

Спасибо и добрые пожелания

Саймон

4b9b3361

Ответ 1

Похоже, что это невозможно с помощью только 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, которое будет записано во время нового рабочего процесса → AssignedTo, который вы создадите в XML-документе определения рабочего элемента. Вы можете выполнить это, используя расширение Power Tools Team Foundation Server для Visual Studio. Это даст вам именно то, что вам нужно, а также дополнительные параметры отчетности в будущем.

API TFS
Я не могу помочь вам с этим, но я считаю, что вы можете запросить использование TFS API.



Несколько быстрых ошибок, которые я испытал, чтобы сэкономить ваше время на ASOF и EVER:

AsOf не поможет вам сам по себе, поскольку он не поддерживает ряд дат. Он позволяет запросить, как если бы это была другая дата. Другими словами, если вы забыли взять результаты запроса вчера, вы можете использовать запрос AsOf для получения результатов, которые вы получили бы, если бы они работали вчера. Я понимаю, что вы хотите запросить базовый диапазон дат.

EVER может не работать так, как вы ожидаете от дат, так как я полагаю, что он использует точное значение поля (время метки поля даты будет включено), с которым он тестирует. Просто убедитесь, что ключевое слово EVER используется вместо поля состояния, а не даты.