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

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Из этой статьи вы узнаете, как вывести список рабочих элементов на основе их создания, закрытия, разрешения или изменения. Можно указать дату или использовать поддерживаемый макрос. @Today Используйте макрос и укажите плюс или минус число дней для относительных дат. Для запросов, которые перечисляют рабочие элементы на основе их назначения текущему спринту команды, используйте @CurrentIteration.

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

Снимок экрана: Редактор запросов с полем

Кроме того, макрос можно использовать CurrentIteration +/- _n_ для создания запросов на основе скользящего окна итерации команды.

Поддерживаемые операторы и макросы

Предложения запросов, указывающие поле DateTime или поле пути итерации, могут использовать операторы и макросы, перечисленные в следующей таблице.


Тип данных

Поддерживаемые операторы и макросы


Дата/время

= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], In, Not In, Was Ever

Макросы: @StartOfDay, , @StartOfMonth@StartOfWeek, @StartOfYearи @Today. Вы можете использовать +/- _n_ каждый из поддерживаемых макросов.


TreePath

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


Примечания:

  1. @StartOfWeek@StartOfMonthМакросы @StartOfDayи @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.

Запросы на основе дат

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

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

Совет


Фильтр для

Включить эти предложения запросов


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

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


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

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


Элементы, разрешенные сегодня.

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


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

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


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

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


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

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


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

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


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

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

Примечание.

Требуется Azure DevOps Server 2019 с обновлением 1 или более поздней версии.

Фильтр для

Включить эти предложения запросов


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

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


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

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


Функции, запланированные на выполнение в течение следующих трех месяцев.

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


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

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

Если ваша команда следует процессам Scrum, вы планируете выполнить работу в спринтах. Вы можете отслеживать ход выполнения требований, ошибок и других работ, которые необходимо выполнить в текущем спринте с помощью @CurrentIteration макроса.

Любой элемент, назначенный спринту, соответствующий текущему пути итерации для команды, найден. Например, если команда находится на Sprint 5, запрос возвращает элементы, назначенные Sprint 5. Позже, когда команда работает в Sprint 6, тот же запрос возвращает элементы, назначенные Sprint 6.

Примечание.

@CurrentIteration Чтобы макрос работал, команда должна выбрать путь итерации, диапазон дат которого охватывает текущую дату. Дополнительные сведения см. в разделе "Определение путей итерации" (также называемых спринтами) и настройка итераций команды. Кроме того, запросы, содержащие этот макрос, допустимы только при запуске с веб-портала.

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

Azure Boards добавляет параметр команды при выборе макросов @CurrentIteration или @CurrentIteration +/- n . Параметр команды является производным от текущего контекста команды.

Снимок экрана: фильтр запросов с помощью макроса CurrentIteration с параметром команды.

Совет

@CurrentIteration Если макрос не работает, проверка, что ожидаемое итерация выбрана для вашей команды, а для нее были заданы даты.

Чтобы изменить параметр команды, который система автоматически задает, выберите его, введя имя команды в поле параметра, добавленном под макросом @CurrentIteration .

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

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

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

Примечание.

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

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

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

Снимок экрана: предложения CurrentIteration плюс и минус.

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

Вывод списка рабочих элементов из спринта

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

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

  • Определен в текущем проекте.
  • Тип рабочего элемента равен "История пользователя" или "Ошибка".
  • Рабочие элементы находятся в разделе "Путь к области веб-группы Fabrikam Fibre".
  • Рабочие элементы не являются в Closedсостоянии , CompletedCutили Resolved в состоянии.
  • Не в текущем пути итерации для команды Fabrikam Fibre Web.
  • Были назначены текущему пути итерации для команды Fabrikam Fibre Web.
  • Теперь назначены текущей итерации +1 для команды Fabrikam Fibre 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.

Снимок экрана: Редактор запросов рабочие элементы, созданные и добавленные в спринт после даты начала работы.

Другие варианты запроса изменений на область спринта см. в разделе "Сведения о Sprints", scrum и управлении проектами, Sprint область изменения.

Поля "Путь к дате и итерации"

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

Имя поля

Description

Типы рабочих элементов


Дата активации (заметки 1 и 2)

Дата и время создания рабочего элемента или когда его состояние было изменено с Closed, Completedлибо Done на New состояние или Active состояние. Имя ссылки=Microsoft.VSTS.Common.ActivatedDate, тип данных=DateTime

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

Дата изменения

Дата и время изменения рабочего элемента. Reference name=System.ChangedDate, Data type=DateTime

Все

Дата закрытия (примечание 2)

Дата и время закрытия рабочего элемента. Эталонное имя=Microsoft.VSTS.Common.ClosedDate, тип данных=DateTime

Все

Дата создания

Дата и время создания рабочего элемента. Reference name=System.CreatedDate, Data type=DateTime

Все

Срок

Прогнозируемая дата выполнения для устранения проблемы. Эталонное имя=Microsoft.VSTS.Scheduling.DueDate, тип данных=DateTime

Проблема (гибкая)

Дата окончания (примечание 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

Epic, Feature, Requirement, Task, Test Plan, User Story

Дата изменения состояния

Дата и время изменения значения поля State . Эталонное имя=Microsoft.VSTS.Common.StateChangeDate, тип данных=DateTime

Все

Целевая дата

Дата завершения или устранения проблемы компонента, рабочего элемента или проблемы.

Примечание.

Планы доставки используют поля "Дата начала" и "Целевая дата" для отображения диапазона функций, эпических и других элементов невыполненного портфеля.

Эталонное имя=Microsoft.VSTS.Scheduling.TargetDate, тип данных=DateTime

Epic, Feature

Примечания:

  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: