Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Visual Studio 2019 | Visual Studio 2022
Запросы рабочих элементов в Azure Boards создают списки рабочих элементов на основе указанных критериев фильтра. Эти управляемые запросы можно сохранить и поделиться ими с другими пользователями.
Совет
Вы можете использовать ИИ, чтобы помочь с этой задачей позже в этой статье или ознакомиться с включение помощи ИИ в Azure DevOps MCP Server, чтобы начать работу.
Запросы можно создавать на веб-портале или из поддерживаемого клиента, например Visual Studio Team Explorer. Для поддержки массовых обновлений или добавлений импорт и экспорт запросов с помощью Excel или .csv файлов.
Примечание.
На следующих изображениях показана функция New Boards Hub , включенная по умолчанию. Дополнительные сведения см. в разделе Управление или включение функций.
Ознакомьтесь с рекомендуемыми рекомендациями далее в этой статье.
Предварительные условия
Примечание.
Пользователи с доступом заинтересованных лиц для общедоступного проекта имеют полный доступ к функциям запросов, как и пользователи с базовым доступом. Дополнительные сведения см. в кратком справочнике по правам доступа для заинтересованных лиц.
| Категория | Требования |
|---|---|
| Уровни доступа | — Для просмотра и выполнения общих запросов: член проекта . — Чтобы добавить и сохранить общий запрос: по крайней мере базовый доступ. |
| Разрешения | Разрешение "Вклад" установлено на Разрешено для папки, в которую вы хотите добавить запрос. По умолчанию у группы участников нет этого разрешения. |
Выбор фильтра запросов
В Query Editor выберите фильтр, чтобы перейти к статье с примерами запросов. Наряду с фильтрами запросов можно интерактивно применять фильтры к результатам запроса.
Примечание.
Управляемые запросы не поддерживают поиски по близости, но семантические запросы поддерживают их. Семантические поиски также поддерживают * и ? в качестве подстановочных знаков, и можно использовать более одного подстановочного знака для сопоставления с несколькими символами. Дополнительные сведения см. в разделе "Поиск функциональных рабочих элементов".
Функции фильтрации
Макросы
Функцию
фильтра можно использовать для интерактивного фильтрации запроса.
Открытые запросы
В веб-браузере (1) убедитесь, что выбран правильный проект, (2) выберите Доски > Запросы, а затем (3) выберите Все.
Откроется страница "Запросы " на вкладке "Избранное ", в которую перечислены запросы, заданные в качестве избранного. Вы можете выбрать вкладку "Все ", чтобы просмотреть все определенные и общие запросы для проекта.
Совет
Запросы, выбранные вами или командой в качестве избранного, отображаются на странице "Избранное ". На странице Project также отображаются избранные запросы вместе с другими объектами. Дополнительные сведения см. в разделе "Настройка личных или избранных команд".
В вашем проекте выберите Доски > Запросы, а затем выберите Все.
Откроется страница "Запросы " на вкладке "Избранное ", в которую перечислены запросы, заданные в качестве избранного. Вы можете выбрать вкладку "Все ", чтобы просмотреть все определенные и общие запросы для проекта.
Совет
Запросы, выбранные вами или командой в качестве избранного, отображаются на странице "Избранное ". На странице Project также отображаются избранные запросы вместе с другими объектами. Дополнительные сведения см. в разделе "Настройка личных или избранных команд".
Определение запроса с неструктурированным списком
Запустите новый запрос на вкладке "Запросы " на веб-портале или на вкладке "Рабочие элементы " в Team Explorer.
- Выберите новый>запрос.
Редактор запросов отображается со следующими параметрами по умолчанию: плоский список рабочих элементов, Work Item Type=[Any] и State=[Any].
- Измените значения и добавьте или удалите предложения или измените тип запроса на рабочие элементы и прямые ссылки или дерево рабочих элементов.
- Выберите новый>запрос.
Редактор запросов отображается со следующими параметрами по умолчанию: плоский список рабочих элементов, Work Item Type=[Any] и State=[Any].
- Измените значения и добавьте или удалите предложения или измените тип запроса на рабочие элементы и прямые ссылки или дерево рабочих элементов.
Запрос между проектами или внутри проектов
По умолчанию новые запросы ограничиваются областью текущего проекта. Но вы можете создавать запросы для поиска рабочих элементов, определенных в организации или коллекции проектов. Однако все запросы, которые вы сохраняете, переходят в определенный проект.
Чтобы вывести список рабочих элементов, определенных в двух или нескольких проектах, выберите "Запрос" в проектах. Например, следующий запрос находит все функции, созданные во всех проектах за последние 30 дней.
Примечание.
- Разделите несколько имен проектов с помощью разделителя списка, определенного региональными параметрами клиентского компьютера, например запятой
,. - При использовании поля State в запросе в нескольких проектах отображаемые значения ограничены элементами, определенными в проекте по умолчанию. При запросе между проектами могут не отображаться все возможные значения состояния из каждого проекта, но только значения из проекта по умолчанию. Например, если у вас есть три проекта — Project A, Project B и Project C — и только проект A имеет состояние, которое называется "В проверке", в то время как проекты B и C имеют разные состояния, запрос отображает только состояния, определенные в Project A.
При создании запросов в нескольких проектах доступность полей в раскрывающемся меню "Поле " зависит от того, включен ли параметр запроса в проектах . Имейте в виду следующее ключевое поведение:
- Поле "Командный проект" становится доступным только после выбора запроса в проектах.
- При выборе запроса между проектами все поля из всех типов рабочих элементов, определенных во всех проектах в коллекции, отображаются в раскрывающемся меню "Поле ".
- При очистке запросов между проектами в раскрывающемся меню " Поле " отображаются только поля из типов рабочих элементов, определенных в текущем проекте.
При выборе запроса между проектами можно добавить поле "Командный проект ", чтобы отфильтровать количество проектов.
Определение предложения
Чтобы создать запрос, определите одно или несколько предложений. Каждое предложение определяет критерии фильтра для одного поля.
Пример пункта запроса
| и/или | Поле | Оператор | Значение |
|---|---|---|---|
| И | Назначено | = | @Me |
Для списка доступных операторов на основе типа данных поля см. Краткий справочник по индексу запросов.
Добавьте все клаузулы в виде инструкции And. Выберите или измените группирование. Упорядочьте условные операторы, чтобы убедиться, что они выполняются в требуемой последовательности.
Выберите " Добавить новое предложение", чтобы добавить другое предложение в конце запроса, а затем выберите поле, оператор и значение для этого предложения.
Например, выполните поиск всех рабочих элементов, назначенных вам, указав поле "Назначенный кому", оператор 'равно' (=) и макрос @Me, представляющий ваш идентификатор пользователя.
Совет
Чтобы просмотреть синтаксис WIQL для запроса и как скобки используются для группирования предложений, установите редактор Wiql Marketplace. Это расширение поддерживает просмотр синтаксиса WIQL и экспорт его в WIQL-файл для использования в вызовах REST API. Дополнительные сведения см. в разделе Синтаксис языка запросов рабочих элементов (WIQL).
Контрольный список для определения условия запроса
В первой пустой строке в заголовке столбца "Поле " щелкните стрелку вниз, чтобы отобразить список доступных полей и выбрать элемент в списке. Дополнительные сведения см. в разделе "Поля запроса" и "Значения".
В той же строке в заголовке столбца оператора щелкните стрелку вниз, чтобы отобразить список доступных операторов, а затем выберите элемент в списке. Дополнительные сведения см. в статье Операторы.
В той же строке в заголовке столбца "Значение " введите значение или щелкните стрелку вниз, а затем выберите элемент в списке. Дополнительные сведения об использовании макроса или переменной для указания текущего проекта, пользователя, даты или другого выбора см. в разделе "Переменные".
Чтобы добавить предложение, нажмите кнопку "Добавить новое предложение".
Вы можете добавить предложение в конец запроса или выполнить следующие задачи с помощью соответствующих значков:
-
Вставка новой строки фильтра -
Удаление этой строки фильтра -
Группировать выбранные предложения -
Разгруппировать предложения
-
Использование дерева рабочих элементов для просмотра иерархий
Используйте запрос дерева рабочих элементов для просмотра многоуровневого вложенного списка рабочих элементов. Например, можно просмотреть все элементы невыполненной работы и связанные задачи. Чтобы сосредоточиться на разных частях дерева, выберите
"Развернуть все" или
"Свернуть все".
Примечание.
Невозможно создать запрос, показывающий иерархическое представление планов тестирования, наборов тестов и тестовых вариантов. Эти элементы не связаны друг с другом с помощью типов ссылок родитель-дети. Однако можно создать запрос прямых ссылок, который перечисляет тестовые рабочие элементы. Кроме того, вы можете просмотреть иерархию на странице "Планы тестирования".
Определите критерии фильтра для родительских и дочерних рабочих элементов. Чтобы найти связанные дочерние элементы, выберите Сопоставление рабочих элементов верхнего уровня в первую очередь. Чтобы найти связанных родителей, сначала выберите Сначала сопоставить связанные рабочие элементы.
Использование прямых ссылок для просмотра зависимостей
Используйте запрос
рабочего элемента и прямых ссылок для отслеживания рабочих элементов, зависящих от других отслеживаемых работ, таких как задачи, ошибки, проблемы или функции. Например, можно просмотреть элементы невыполненной работы, зависящие от других элементов, реализованных или исправленных ошибок.
Используйте запрос прямых ссылок для отслеживания зависимостей между командами. Запрос также помогает управлять обязательствами вашей команды. Выберите критерии фильтра для верхних и связанных рабочих элементов. И выберите типы ссылок для фильтрации зависимостей.
Отфильтруйте список рабочих элементов первого уровня, выбрав один из следующих вариантов:
- Возвращает только элементы с соответствующими ссылками: возвращает рабочие элементы первого уровня, но только если они имеют ссылки на рабочие элементы, указанные критериями фильтрации связанных рабочих элементов.
- Возвращает все элементы верхнего уровня: возвращает все рабочие элементы первого уровня, несмотря на критерии фильтрации связанных рабочих элементов. Возвращает рабочие элементы второго уровня, связанные с первым уровнем, если они соответствуют критериям фильтра связанных рабочих элементов.
- Возвращает только элементы, не соответствующие ссылкам: возвращает рабочие элементы первого уровня, но только если они не имеют ссылок на рабочие элементы, указанные критериями фильтра связанных рабочих элементов.
Дополнительные сведения о каждом типе ссылки см. в справочнике по типу ссылок.
Использование логических операторов «и» или «или» в выражении
Укажите And или Or для создания логических выражений ваших предложений запроса. Используется And для поиска рабочих элементов, которые соответствуют критериям в текущем предложении и предыдущем предложении. Используется Or для поиска рабочих элементов, которые соответствуют критерию в текущем предложении или предыдущем предложении.
Добавьте одно новое условие для каждого поля рабочего элемента, чтобы уточнить критерии поиска. Добавьте предложения, чтобы вернуть только нужный набор рабочих элементов. Если вы не получаете ожидаемые результаты из запроса, измените его. Вы можете добавлять, удалять, группировать или разгруппировать предложения запросов, чтобы улучшить результаты запроса.
Группировать условия запроса, чтобы они работали как единое целое, отдельно от остальных частей запроса. Предложения группировки похожи на размещение скобок вокруг выражения в математическом уравнении или инструкции логики. Когда вы группируете предложения, AndOr первое предложение в группе применяется ко всей группе.
Групповые условия
Сгруппированные предложения действуют как единая единица, отдельная от остальной части запроса. Предложения группировки похожи на размещение скобок вокруг математического уравнения или выражения логики. Оператор And или Or для первого предложения в группе применяется ко всей группе.
Как показано в следующих примерах, сгруппированные предложения преобразуются в соответствующее логическое выражение.
| Запрос | Сгруппированные предложения | Логическое выражение |
|---|---|---|
| 1 |
|
|
| 2 |
|
|
| 3 |
|
|
Эти запросы возвращают рабочие элементы типа «Ошибка» и соответствуют следующим логическим выражениям:
-
Запрос 1.
AND State=Active OR Assigned to @Me -
Запрос 2.
AND (State=Active OR Assigned to @Me) -
Запрос 3.
OR (State=Active AND Assigned to @Me)
Чтобы сгруппировать одно или несколько предложений, выберите их и щелкните
значок предложений группы.
Можно также сгруппировать несколько сгруппированных предложений. Установите флажки каждого пункта. Затем выберите
значок предложений группы.
Если результаты запроса не возвращают ожидаемые результаты, выполните следующие действия.
- Убедитесь, что каждое положение определено согласно вашему намерению.
- Проверьте
And/Orназначения для каждого условия. Если результаты содержат больше рабочих элементов, чем ожидалось, частоOrпредложение присутствует вместоAndпредложения. - Определите, нужно ли группировать или изменять группировку условий запросов и
And/Orназначение каждого сгруппированного условия. - Добавьте больше условий запросов, чтобы уточнить условия фильтрации.
- Просмотрите параметры, доступные для указания полей, операторов и значений.
- Смотрите рекомендации по использованию, далее в этой статье.
Разгруппировать предложение
Чтобы разгруппировать предложение, выберите
значок несгруппированных предложений для сгруппированного предложения.
Установка ширины столбца по умолчанию в результатах запроса
Чтобы задать ширину столбца по умолчанию в результатах запроса, выполните следующие действия.
- Откройте запрос, который требуется изменить.
- Вручную настройте ширину столбца на нужный размер, перетащив края заголовков столбцов.
- Нажмите кнопку "Сохранить" или "Сохранить как если вы хотите сохранить его в качестве нового запроса".
- Закройте и повторно откройте запрос, чтобы обеспечить сохранение ширины столбца.
Azure DevOps в настоящее время не поддерживает настройку ширины столбца по умолчанию, которая сохраняется во всех сеансах. Ширина столбца сохраняется для каждого запроса, поэтому необходимо настроить и сохранить их для каждого запроса по отдельности.
Просмотр результатов запроса на панели мониторинга
В следующих двух мини-приложениях отображаются результаты запроса. Рабочие элементы можно открывать непосредственно из этих мини-приложений.
- Работа назначена мне: перечисляет все предлагаемые или активные рабочие элементы, назначенные пользователю, вошедшего в систему. Перечисляет поля ID, состояние и заголовок.
- Виджет результатов запроса: отображает результаты плоского, иерархического или запроса прямых ссылок. Вы можете настроить поля, отображаемые с помощью виджета, изменить размер столбцов и развернуть и свернуть дерево и запрос прямых ссылок.
Дополнительные сведения см. в разделе "Добавление мини-приложений" на панель мониторинга.
Просмотр виджета результатов запроса с родительскими названиями
Чтобы просмотреть результаты запроса с отображаемым заголовком Parent , выполните следующие действия:
- Создайте запрос, который фильтрует интересующие рабочие элементы. Запрос может быть в виде плоского списка, древовидным запросом или запросом с прямыми ссылками.
- Добавьте поле Parent в качестве столбца. Хотя можно включить поле "Родительский" , поведение по умолчанию может отображать только идентификатор родительского рабочего элемента. Чтобы убедиться, что имя отображается вместе с идентификатором, объедините поля "Тип рабочего элемента " и "Родительский " с полем "Заголовок " в структуре запроса.
- Сохраните запрос как общий запрос или избранное группы.
- Добавьте виджет результатов запроса в панель мониторинга и настройте запрос. Убедитесь, что поле "Родитель" установлено на отображение.
На следующем рисунке показан мини-приложение результатов запроса, отображающее поле Parent .
Определение запроса в виде гиперссылки
Гиперссылка запроса использует язык запросов рабочих элементов (WIQL), который напоминает Transact-SQL. Дополнительные сведения см. в разделе Синтаксис языка запросов рабочих элементов (WIQL).
Примечание.
Большинство браузеров применяют ограничение в диапазоне от 2000 до 2083 символов для строки URL-адреса.
Синтаксис гиперссылки запроса
Кодируйте часть WIQL в синтаксисе URL-адреса. Для кодирования URL-адреса можно использовать любой инструмент кодировщика URL-адресов.
https://dev.azure.com/OrganizationName/ProjectName/_workitems?_a=query&wiql={Encoded WorkItemQueryLanguage}
Например, следующая гиперссылка содержит идентификатор и заголовок всех активных ошибок, определенных в пути к области FabrikamFiber/Web для организации Fabrikam.
https://dev.azure.com/fabrikam/FabrikamFiber/_workitems?_a=query&wiql=SELECT%20%5BSystem.ID%5D%2C%20%5BSystem.Title%5D%20FROM%20WorkItems%20WHERE%20%5BSystem.TeamProject%5D%3D'FabrikamFiber'%20AND%20%5BSystem.WorkItemType%5D%3D'Bug'%20AND%20%5BSystem.State%5D%3D'Active'%20AND%20%5BSystem.AreaPath%5D%3D'FabrikamFiber%5CWeb'
Декодированный WIQL соответствует:
SELECT [System.ID], [System.Title]
FROM WorkItems
WHERE [System.TeamProject]='FabrikamFiber'
AND [System.WorkItemType]='Bug'
AND [System.State]='Active'
AND [System.AreaPath]='FabrikamFiber\Web'
Примечание.
Длина WIQL не должна превышать 32-K символов для Azure Boards запросов.
Синтаксис гиперссылки запроса
https://{ServerName}/{CollectionName}/{ProjectName}/_workitems?_a=query&wiql={Encoded WorkItemQueryLanguage}
Например, следующая гиперссылка содержит идентификатор, заголовок и состояние всех ошибок в области пути FabrikamFiber/Web.
http://fabrikam:8080/tfs/DefaultCollection/FabrikamFiber/_workitems?_a=query&wiql=SELECT%20%5BSystem.ID%5D%2C%20%5BSystem.Title%5D%2C%20%5BSystem.State%5D%20FROM%20WorkItems%20WHERE%20%5BSystem.TeamProject%5D%3D'FabrikamFiber'%20AND%20%5BSystem.WorkItemType%5D%3D'Bug'%20AND%20%5BSystem.AreaPath%5D%3D'FabrikamFiber%5CWeb'%20%20
Например, см. следующую некодированную запись.
http://fabrikam:8080/tfs/DefaultCollection/FabrikamFiber/_workitems?_a=query&wiql=
SELECT [System.ID], [System.Title], [System.State]
FROM WorkItems
WHERE [System.TeamProject]='FabrikamFiber'
AND [System.WorkItemType]='Bug'
AND [System.AreaPath]='FabrikamFiber\Web'
Лучшие практики
Следующие рекомендации применяются к запросам, которые можно создать:
Создание ориентированных, выборочных запросов
Определите высокоизбирательный запрос, применяя все необходимые фильтры. Чем более выборочный запрос, тем меньше набор результатов. Меньший результирующий набор означает, что ваш запрос является более целевым и выборочным.
Использование тегов для классификации рабочих элементов
Используйте теги рабочих элементов для классификации рабочих элементов вместо использования настраиваемого поля. Запросы, которые фильтруют теги, обычно выполняются быстрее, чем те запросы, которые фильтруют по строковым совпадениям.
В отличие от совпадений настраиваемого поля или частичных совпадений, запрос с Tags Contains операцией не требует полного сканирования всех таблиц рабочих элементов.
Используйте Contains words для строковых совпадений
Чтобы отфильтровать соответствие строк, используйте Contains Words оператор вместо Contains оператора. Оператор Contains Words выполняет полнотекстовый поиск по указанному полю, что, как правило, выполняется быстрее.
Оператор Contains выполняет проверку таблицы, которая является более медленной операцией, чем Contains Words оператор. Он также потребляет больше циклов ЦП. Эти циклы ЦП могут привести к возникновению ограничений скорости. См. Тарифы и ограничения на использование для получения дополнительной информации.
Укажите небольшие группы с помощью оператора In Group
Оператор In Group фильтрует рабочие элементы на основе совпадений в группе значений. Группа значений соответствует значениям, содержащимся в группе, группе безопасности или категории отслеживания работы. Например, можно создать запрос, чтобы найти все рабочие элементы, назначенные любому участнику команды. Или найдите все рабочие элементы, принадлежащие категории требований (Microsoft.RequirementCategory).
При фильтрации по группе, содержащей большое количество элементов, результирующий набор, как правило, будет большим и неизбирательным. Кроме того, если группа соответствует крупной группе в Microsoft Entra, запрос вызывает значительные затраты на обработку этой группы из Microsoft Entra ID.
Избегайте использования отрицательных операторов
Неисправные операторы, такие как <>, Not In, Not Under, Not In Group, как правило, создают неизбирательные запросы и большие результирующие наборы.
Используйте операторы с отрицанием только при необходимости. Всегда старайтесь сначала найти альтернативные варианты. Например, если Field1 имеет значения A, B, C, D; укажите Field1 In A, B, C условие вместо отрицательного Field1 <> D условия.
Избегайте сравнения строк
Запросы, содержащие сравнения строк, создают проверки таблиц, которые по сути неэффективны. Вместо этого используйте теги или определенное настраиваемое поле в качестве альтернативы, особенно если запрос выполняется плохо.
Ограничить Or операторов
Ограничить количество операторов, определенных Or в запросе. Запросы выполняются лучше, если используются меньше Or операторов. Слишком много Or операторов может сделать запрос неизбирательным. Если ваш запрос выполняется медленно, переместите Or операторную конструкцию в начало условий запроса.
Сохранение запроса
Из-за внутренней оптимизации сохраненные запросы, как правило, лучше выполняются по сравнению с несохраненным запросом. Всегда сохраняйте запрос при планировании повторного использования. Даже для запросов WIQL, выполняемых через REST API, сохраните WIQL, используя веб-портал, чтобы выполнять вызовы REST API, чтобы они были менее подвержены будущим регрессиям производительности.
Запустите ваш запрос
Иногда необходимо выполнить запрос несколько раз, чтобы достичь правильного плана оптимизации. Сохраните запрос и запустите его до 10 раз в течение 30 минут. Таким образом, система может изучить и искать план оптимизации, наиболее подходящий для вашего запроса.
Использование ИИ для определения запросов рабочих элементов
Если настроить Azure DevOps MCP Server, можно описать запрос, необходимый для естественного языка, а не создавать предложения вручную в Query Editor.
| Задача | Пример запроса |
|---|---|
| Поиск элементов по состоянию и назначению | List all active bugs assigned to <me> in project <Contoso> |
| Запрос между итерациями | Show user stories completed in the last three sprints for <Contoso> |
| Создать запрос на дерево | Get all tasks that are children of features in area path <Contoso\\Web> |
| Поиск недавно обновленных элементов | Show work items changed in the last 7 days that are tagged "performance" in <Contoso> |
| Запрос с несколькими условиями | Find active bugs in <Contoso> with priority 1, severity 2 or higher, and no one assigned |
| Создание WIQL | Write a WIQL query that returns all user stories in the current iteration for <Contoso> with story points between 3 and 8 |
| Сводка результатов запроса | Run a query for all active work items in <Contoso> and give me a breakdown by type, state, and area path |
| Создание одноэтапного запроса | Show all bugs in <Contoso> along with their related work items |
| Создайте запрос тренда | Show bugs created per week for the last 8 weeks in <Contoso> grouped by area path |
| Запрос с отрицанием | List active user stories in <Contoso> that are not tagged "tech-debt" and not in area path <Contoso\\Maintenance> |
Примечание.
Если вы используете Visual Studio Code, режим агента особенно полезен для построения сложных запросов.