Поделиться через


Запрос по дате или текущей итерации

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_ с каждым из поддерживаемых макросов.


ДеревоПуть

=, <>, Под, Не под
Макросы: @CurrentIteration1 и @CurrentIteration +/- n2 допустимы с полем "Путь итерации".


Примечания:

  1. Макросы @StartOfDay, @StartOfWeek, @StartOfMonth и @StartOfYear поддерживаются для Azure DevOps Server 2019.1 и более поздних версий. Они поддерживаются только при запуске с веб-портала.
  2. Макрос @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 дней.

Снимок экрана, показывающий условие в Редакторе запросов для поиска элементов, созданных за последние 30 дней.


Элементы, измененные на определенную дату.

Снимок экрана, на котором показано предложение в Редакторе запросов для поиска элементов, измененных на определенную дату.


Вопросы, решённые сегодня.

Снимок экрана, на котором показано предложение редактора запросов для поиска элементов, найденных сегодня.


Элементы закрыты в течение указанного периода времени.

Снимок экрана, который показывает условие в Редакторе запросов для поиска элементов, закрытых в течение указанного временного периода.


Элементы, которые не закрыты. Дата закрытия имеет значение NULL.

Снимок экрана, показывающий условие Редактора запросов для поиска элементов, у которых дата закрытия пуста или отсутствует.


Элементы, состояние которых было обновлено за последнюю неделю.

Снимок экрана, показывающий условие Редактора запросов для элементов, состояние которых было обновлено за последнюю неделю.


Элементы закрыты во время текущего спринта. Макрос <xref href="CurrentIteration" data-throw-if-not-resolved="False" data-raw-source="@CurrentIteration"></xref> ссылается на спринт, определенный для контекста текущей команды.

Снимок экрана, который показывает условие в Редакторе запросов для элементов, закрытых во время текущего спринта.


Создание запросов, основанных на начале дня, недели, месяца или года

В следующих примерах показано, как использовать StartOf... макросы для фильтрации рабочих элементов с различными смещениями. Дополнительные сведения см. в синтаксисе языка запросов рабочих элементов (WIQL).

Фильтр для

Включить эти условия запроса


Ошибки закрылись за последние две недели.

Скриншот, показывающий предложение в Редакторе запросов для поиска ошибок, закрытых за последние две недели.


Элементы, измененные за последние 10 дней.

Снимок экрана, показывающий условия редактора запросов для поиска элементов, измененных за последние 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 .

Снимок экрана: выбор параметра команды.

Создайте скользящее окно для запроса итераций вашей команды

@CurrentIteration +/- n Используйте макрос, если вы хотите отслеживать работу команды, запланированной для предстоящих спринтов, и для понимания работы, которая не была завершена в предыдущих спринтах.

Примечание.

@CurrentIteration +/- n Чтобы макрос работал, команда должна выбрать пути итерации, соответствующие +/- n критериям. Диапазоны дат должны охватывать текущую дату для @CurrentIteration. Дополнительные сведения о выборе командных путей итерации см. в разделе "Выбор спринтов команды" и установка пути итерации по умолчанию.

См. также Client restrictions on the use of the @CurrentIteration macros ранее в этой статье.

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

Снимок экрана, показывающий условия CurrentIteration с плюсами и минусами.

Чтобы использовать этот макрос, указанная команда должна выбрать набор спринтов , охватывающих +/- n значение, введенное для макроса.

Список рабочих элементов, перемещенных из спринта

Список рабочих элементов, которые были определены для спринта, но позже перенесены с помощью запроса с условием, содержащим оператор для поля "Путь итерации". Этот запрос можно создать только с помощью синтаксиса WIQL. Измените синтаксис WIQL в Редактор запросов, установив расширение WIQL Editor Marketplace.

Например, следующие синтаксические запросы для рабочих элементов соответствуют следующим критериям:

  • Определен в текущем проекте.
  • Тип рабочего элемента равен "История пользователя" или "Ошибка".
  • Рабочие элементы находятся в разделе "Путь к области веб-группы 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

Эпик, Фича

Примечания:

  1. См. также запрос по назначению или изменениям рабочего процесса.

  2. Для определения этих полей для типа рабочего элемента они должны быть включены в WORKFLOW раздел определения типа рабочего элемента. Например, этот синтаксис включается в FIELDS определение при переходе к состоянию Resolved .

    <FIELD refname="Microsoft.VSTS.Common.ResolvedDate" />  
       <SERVERDEFAULT from="clock"  />  
    </FIELD >  
    
  3. Значения даты начала и окончания вычисляются, если вы создаете план проекта в 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 относятся:

REST API

Сведения о программном взаимодействии с запросами см. в одном из следующих ресурсов REST API: