Запрос по дате или текущей итерации
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Из этой статьи вы узнаете, как вывести список рабочих элементов на основе их создания, закрытия, разрешения или изменения. Можно указать дату или использовать поддерживаемый макрос.
@Today
Используйте макрос и укажите плюс или минус число дней для относительных дат. Для запросов, которые перечисляют рабочие элементы, назначенные на текущий спринт команды, используйте @CurrentIteration
.
Например, найдите рабочие элементы, которые были изменены за последние три дня с помощью следующего запроса.
Кроме того, макрос CurrentIteration +/- _n_
можно использовать для создания запросов на основе скользящего временного окна итераций команды.
Необходимые условия
Категория | Требования |
---|---|
уровни доступа | — Для просмотра и выполнения общих запросов: член проекта. — Чтобы добавить и сохранить совместный запрос: по крайней мере базовый доступ. |
разрешения | Набор прав Вклад установлен на Разрешить для папки, в которую требуется добавить запрос. По умолчанию у группы Contributors нет этого разрешения. |
Примечание.
Пользователи с доступом уровня Участник к общественному проекту имеют полный доступ к функциям запросов, как и пользователи с доступом Базовый. Дополнительные сведения см. в кратком справочникепо доступу для заинтересованных лиц.
Категория | Требования |
---|---|
уровни доступа | — Для просмотра и выполнения общих запросов: член проекта. — Чтобы добавить и сохранить общий запрос: требуется как минимум базовый доступ. |
разрешения | Набор прав Вклад установлен на Разрешить для папки, в которую требуется добавить запрос. По умолчанию у группы Contributors нет этого разрешения. |
Поддерживаемые операторы и макросы
Предложения запросов, указывающие поле DateTime или поле пути итерации, могут использовать операторы и макросы, перечисленные в следующей таблице.
Тип данных
Поддерживаемые операторы и макросы
Дата/время
= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], In, Not In, Was Ever
Макросы: @StartOfDay
, @StartOfWeek
, @StartOfMonth
, @StartOfYear
, и @Today
.
Вы можете использовать +/- _n_
с каждым из поддерживаемых макросов.
ДеревоПуть
=, <>, Под, Не под
Макросы: @CurrentIteration
1 и @CurrentIteration +/- n
2 допустимы с полем "Путь итерации".
Примечания:
- Макросы
@StartOfDay
,@StartOfWeek
,@StartOfMonth
и@StartOfYear
поддерживаются для Azure DevOps Server 2019.1 и более поздних версий. Они поддерживаются только при запуске с веб-портала. - Макрос
@CurrentIteration +/- n
поддерживается для Azure DevOps Server 2019 и более поздних версий и поддерживается только при запуске с веб-портала.
Совет
Оператор WasEver
можно использовать с полем "Путь итерации", но только при определении с помощью синтаксиса WIQL. Например, см. справочник по синтаксису языка запросов рабочих элементов (WIQL).
Шаблон даты и времени
Шаблон даты и времени, который вы вводите для полей DateTime, должен совпадать с тем, который вы выбираете в вашем профиле. Чтобы просмотреть или изменить выбранный вариант, см. раздел "Настройка параметров пользователя".
Ограничения клиента на использование @CurrentIteration макросов
Макрос @CurrentIteration
можно использовать в запросе из следующих клиентов:
- Веб-портал, который подключается к Azure Boards
- Visual Studio 2019 или более поздней версии, подключенные к Azure Boards
- REST API
Макрос @CurrentIteration +/- n
можно использовать в запросах к Azure Boards, Azure DevOps Server 2019 и более поздним версиям, а также с REST API, который включает команду в качестве параметра. Например, @CurrentIteration('[Project]\Team')
.
Ошибка возникает при открытии запроса, содержащего @CurrentIteration
макрос в более ранних версиях Visual Studio, или в Microsoft Excel или Microsoft Project. Кроме того, макрос нельзя использовать при копировании или клонирования наборов тестов и тестовых вариантов, определении оповещений или с помощью REST API.
Запросы на основе дат
Фильтруйте рабочие элементы по дате их изменения или определенному периоду времени. Ограничить область запроса. Этот подход может помочь с производительностью, возвращая только результаты, которые соответствуют диапазону дат, который вы включили. Если вы не знакомы с созданием запросов, см. статью "Определение запроса рабочего элемента".
Не все поля допустимы для всех типов рабочих элементов. Перейти к полям дат для набора полей, которые можно включить в запросы, и типы рабочих элементов, к которым они применяются.
Совет
- Не забудьте ввести даты в поле "Шаблон даты", заданном для личного профиля.
- Чтобы понять, как
AND/OR
группируются предложения, см. Группировка предложений. Чтобы просмотреть синтаксис WIQL для запроса, установите расширение редактора WIQL, позволяющее просмотреть версию WIQL любой записи Редактор запросов.
Фильтр для
Включить эти условия запроса
Элементы, созданные за последние 30 дней.
Элементы, измененные на определенную дату.
Вопросы, решённые сегодня.
Элементы закрыты в течение указанного периода времени.
Элементы, которые не закрыты. Дата закрытия имеет значение NULL.
Элементы, состояние которых было обновлено за последнюю неделю.
Элементы закрыты во время текущего спринта. Макрос <xref href="CurrentIteration" data-throw-if-not-resolved="False" data-raw-source="@CurrentIteration"></xref>
ссылается на спринт, определенный для контекста текущей команды.
Создание запросов, основанных на начале дня, недели, месяца или года
В следующих примерах показано, как использовать StartOf...
макросы для фильтрации рабочих элементов с различными смещениями. Дополнительные сведения см. в синтаксисе языка запросов рабочих элементов (WIQL).
Фильтр для
Включить эти условия запроса
Ошибки закрылись за последние две недели.
Элементы, измененные за последние 10 дней.
Функции, запланированные на выполнение в течение следующих трех месяцев.
Не все поля допустимы для всех типов рабочих элементов. Перейдите к полям дат, чтобы увидеть набор полей, которые можно включить в запросы, и типы рабочих элементов, к которым они применяются.
Создайте запросы для текущей итерации вашей команды
Если ваша команда следует процессам Scrum, вы планируете выполнить работу в спринтах. Вы можете отслеживать ход выполнения требований, ошибок и других работ, которые необходимо выполнить в текущем спринте с помощью @CurrentIteration
макроса. Дополнительные сведения см. в разделе "Управление временными шкалами спринта".
Запрос находит любой элемент, назначенный спринту, который соответствует текущему пути итерации для команды. Например, если команда находится в спринте 5, запрос возвращает элементы, назначенные на спринт 5. Позже, когда команда работает в Sprint 6, тот же запрос возвращает элементы, назначенные в Sprint 6.
Примечание.
@CurrentIteration
Чтобы макрос работал, команда должна выбрать путь итерации, диапазон дат которого охватывает текущую дату. Дополнительные сведения см. в разделе "Выбор спринтов команды и установка пути итерации по умолчанию". Кроме того, запросы, содержащие этот макрос, допустимы только при запуске с веб-портала.
См. также Client restrictions on the use of the @CurrentIteration macros ранее в этой статье.
Azure Boards добавляет параметр команды при выборе макросов @CurrentIteration или @CurrentIteration +/- n . Параметр команды является производным от текущего контекста команды.
Совет
@CurrentIteration
Если макрос не работает, убедитесь, что для вашей команды выбрана ожидаемая итерация, а для нее заданы даты. Дополнительные сведения см. в разделе "Выбор спринтов команды".
Чтобы изменить параметр команды, который система автоматически задает, выберите его, введя имя команды в поле параметра, добавленном под макросом @CurrentIteration .
Создайте скользящее окно для запроса итераций вашей команды
@CurrentIteration +/- n
Используйте макрос, если вы хотите отслеживать работу команды, запланированной для предстоящих спринтов, и для понимания работы, которая не была завершена в предыдущих спринтах.
Примечание.
@CurrentIteration +/- n
Чтобы макрос работал, команда должна выбрать пути итерации, соответствующие +/- n
критериям. Диапазоны дат должны охватывать текущую дату для @CurrentIteration
. Дополнительные сведения о выборе командных путей итерации см. в разделе "Выбор спринтов команды" и установка пути итерации по умолчанию.
См. также Client restrictions on the use of the @CurrentIteration macros ранее в этой статье.
На следующем изображении показано, как перечислить все типы рабочих элементов, таких как история пользователя и ошибки, которые назначены в пределах скользящего окна. Окно охватывает последние два спринта, текущий и следующие два, выбранные для команды по администрированию облака и инструментам.
Чтобы использовать этот макрос, указанная команда должна выбрать набор спринтов , охватывающих +/- n
значение, введенное для макроса.
Список рабочих элементов, перемещенных из спринта
Список рабочих элементов, которые были определены для спринта, но позже перенесены с помощью запроса с условием, содержащим оператор
Например, следующие синтаксические запросы для рабочих элементов соответствуют следующим критериям:
- Определен в текущем проекте.
- Тип рабочего элемента равен "История пользователя" или "Ошибка".
- Рабочие элементы находятся в разделе "Путь к области веб-группы Fabrikam Fibre".
- Рабочие элементы не находятся в состоянии
Closed
,Completed
,Cut
илиResolved
. - Не на текущем пути итерации для команды Fabrikam Fiber Web.
- Мы были назначены на текущий путь итерации для команды Fabrikam Fiber Web.
- Теперь назначены для текущей итерации плюс один для команды Fabrikam Fiber Web.
- Были изменены за последние 30 дней (длина спринта).
SELECT
[System.Id],
[System.WorkItemType],
[System.AssignedTo],
[System.Title],
[System.State],
[System.Tags],
[System.IterationPath],
[System.AreaPath]
FROM workitems
WHERE
[System.TeamProject] = @project
AND [System.WorkItemType] IN ('User Story', 'Bug')
AND [System.AreaPath] UNDER 'FabrikamFiber\Web'
AND NOT [System.State] IN ('Completed', 'Closed', 'Cut', 'Resolved')
AND NOT [System.IterationPath] = @currentIteration('[FabrikamFiber]\Web <id:cdf5e823-1179-4503-9fb1-a45e2c1bc6d4>')
AND (
EVER (
[System.IterationPath] = @currentIteration('[FabrikamFiber]\Web <id:cdf5e823-1179-4503-9fb1-a45e2c1bc6d4>')
)
AND [System.IterationPath] = @currentIteration('[FabrikamFiber]\Web <id:cdf5e823-1179-4503-9fb1-a45e2c1bc6d4>') + 1
AND [System.ChangedDate] >= @today - 30
)
ORDER BY [System.Id]
Представление синтаксиса в Редакторе запросов отображается, как показано ниже.
Примечание.
В Редакторе запросов отображается значок информации рядом с оператором Was Ever
, указывающий на проблему с предложением. Однако запрос по-прежнему выполняется и вы можете создавать диаграммы запросов. Чтобы изменить запрос, необходимо использовать редактор WIQL.
Снимок экрана, на котором показано, что рабочие элементы редактора запросов перемещены из спринта.
Список рабочих элементов, добавленных в спринт после начала
Чтобы получить список только что созданных рабочих элементов, добавленных в спринт после даты начала, используйте запрос, аналогичный приведенному на следующем рисунке. Этот запрос работает путем фильтрации рабочих элементов, назначенных текущему спринту, но созданных после начала спринта. Используйте оговорку created Date = @Today - 28
.
Для других вариантов запроса изменений в рамках спринта см. раздел Sprint Scope Change.
Поля "Дата и путь итерации"
Используйте поля даты для фильтрации запросов. Некоторые из этих полей заполняются информацией по мере продвижения рабочего элемента из одного состояния в другое. Некоторые из этих полей не отображаются в форме рабочего элемента, но они отслеживаются для этих типов рабочих элементов, перечисленных в следующей таблице.
Имя поля
Description
Типы рабочих элементов
Дата активации (заметки 1 и 2)
Дата и время создания рабочего элемента или когда его состояние было изменено с Closed
, Completed
либо Done
на New
состояние или Active
состояние.
Имя ссылки=Microsoft.VSTS.Common.ActivatedDate, тип данных=DateTime
Ошибка, запрос на изменение, эпик, фича, проблема, элемент продуктового накопителя, требование, проверка, риск, совместный шаг, задача, тест-кейс, история пользователя
Дата изменения
Дата и время изменения рабочего элемента.
Имя ссылки=System.ChangedDate, Тип данных=DateTime
Все
Дата закрытия (примечание 2)
Дата и время закрытия рабочего элемента.
Эталонное имя=Microsoft.VSTS.Common.ClosedDate, тип данных=DateTime
Все
Дата создания
Дата и время создания рабочего элемента.
Имя ссылки=System.CreatedDate, Тип данных=DateTime
Все
Срок
Прогнозируемая дата представления для решения проблемы.
Эталонное имя=Microsoft.VSTS.Scheduling.DueDate, тип данных=DateTime
Задача (Agile)
Дата окончания (примечание 3)
Дата и время, когда расписание указывает на завершение задачи.
Эталонное имя=Microsoft.VSTS.Scheduling.FinishDate, тип данных=DateTime
Требования, задача, тестовый план, история пользователя
Путь итерации
Группирует рабочие элементы по именованным спринтам или периодам времени. Итерация должна быть допустимым узлом в иерархии проекта. Вы определяете пути итерации для проекта и выбираете пути итерации для команды.
Reference name=System.IterationPath, Data type=TreePath
Все
Дата решения (примечания 1 и 2)
Дата и время перемещения рабочего элемента в Resolved
состояние.
Эталонное имя=Microsoft.VSTS.Common.ResolvedDate, тип данных=DateTime
Ошибка, запрос на изменение, эпик, фича, проблема, элемент бэклога, требование, проверка, риск, общий шаг, задача, тестовый случай, пользовательская история
Дата начала (примечание 3)
Дата и время, когда по графику начинается задача.
Примечание.
Планы поставок используют поля "Дата начала" и "Целевая дата" для отображения диапазона функций, эпиков и других элементов портфеля невыполненных задач.
Эталонное имя=Microsoft.VSTS.Scheduling.StartDate, тип данных=DateTime
Эпик, Функционал, Требование, Задача, План тестирования, Пользовательская история
Дата изменения состояния
Дата и время изменения значения поля State .
Эталонное имя=Microsoft.VSTS.Common.StateChangeDate, тип данных=DateTime
Все
Целевая дата
Дата, к которой функция, рабочий элемент или проблема должны быть завершены или устранены.
Примечание.
Delivery Plans используют поля "Дата начала" и "Целевая дата" для отображения диапазона функций, эпиков и других элементов портфельного бэклога.
Эталонное имя=Microsoft.VSTS.Scheduling.TargetDate, тип данных=DateTime
Эпик, Фича
Примечания:
См. также запрос по назначению или изменениям рабочего процесса.
Для определения этих полей для типа рабочего элемента они должны быть включены в
WORKFLOW
раздел определения типа рабочего элемента. Например, этот синтаксис включается вFIELDS
определение при переходе к состояниюResolved
.<FIELD refname="Microsoft.VSTS.Common.ResolvedDate" /> <SERVERDEFAULT from="clock" /> </FIELD >
Значения даты начала и окончания вычисляются, если вы создаете план проекта в Project, а затем синхронизируете этот план с задачами, хранящимися в Azure Boards. Эти поля могут не отображаться в форме рабочего элемента, но они вычисляются для элементов невыполненной работы и задач, связанных с элементами невыполненной работы. Их значения доступны только для чтения в результатах запроса или из Excel.
Внимание
Интеграция Microsoft Project и
TFSFieldMapping
команда не поддерживаются для:- Visual Studio 2019 и Azure DevOps Office Integration 2019.
- Azure DevOps Server 2019 и более поздних версий, включая Azure DevOps Services.
Поддерживается полная поддержка интеграции Microsoft Excel, что позволяет выполнять массовый импорт и обновление рабочих элементов. К альтернативным вариантам использования Microsoft Project относятся:
- Планы выполнения
- Расширения Marketplace, такие как Project Connect или диаграмма Ганта
Связанные статьи
- Запрос по назначению или изменению рабочего процесса
- Определение путей итерации (спринта) и настройка итерации команды
- Определение запроса рабочего элемента в Azure Boards
- Поля запросов, операторы и макросы
- Поля и атрибуты рабочих элементов
- Синтаксис языка запросов рабочих элементов (WIQL)
REST API
Сведения о программном взаимодействии с запросами см. в одном из следующих ресурсов REST API: