Определение запроса рабочего элемента
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Запросы рабочих элементов в Azure Board создают списки рабочих элементов на основе критериев фильтра, предоставленных вами. Вы можете сохранить и поделиться этими управляемыми запросами с другими пользователями.
Запросы можно создавать на веб-портале или из поддерживаемого клиента, например Visual Studio Team Explorer. Для поддержки массовых обновлений или добавлений импортируйте или экспортируйте запросы с помощью файлов Excel или .csv.
Примечание.
Следующие изображения отображают пользовательский интерфейс с функцией New Boards Hub, включенной по умолчанию. Дополнительные сведения см. в разделе Управление или включение функций.
Ознакомьтесь с нашими рекомендуемыми рекомендациями далее в этой статье.
Предварительные условия
Примечание.
Пользователи с доступом заинтересованных лиц для общедоступного проекта имеют полный доступ к функциям запросов, как и пользователи с базовым доступом. Дополнительные сведения см. в кратком справочнике по правам доступа для заинтересованных лиц.
Категория | Требования |
---|---|
Уровни доступа | — Для просмотра и выполнения общих запросов: член проекта . — Чтобы добавить и сохранить общий запрос: по крайней мере базовый доступ. |
Разрешения | Установите разрешение на Разрешить для папки, в которую вы хотите добавить запрос. По умолчанию у группы участников нет этого разрешения. |
Выбор фильтра запросов
В Редактор запросов выберите фильтр, чтобы перейти к статье с примерами запросов. Наряду с фильтрами запросов можно интерактивно применять фильтры к результатам запроса.
Примечание.
Управляемые запросы не поддерживают поиск по близости, однако семантические поиски их поддерживают. Семантические поиски также поддерживают и *
?
как подстановочные знаки, и вы можете использовать несколько подстановочных знаков для сопоставления нескольких символов. Дополнительные сведения см. в разделе "Поиск функциональных рабочих элементов".
Функции фильтрации
Макросы
Вы можете интерактивно отфильтровать запрос с помощью функции фильтра.
Открытые запросы
В веб-браузере (1) убедитесь, что выбран правильный проект, (2) выберите Доски > Запросы, а затем (3) выберите Все.
Откроется страница "Запросы " на вкладке "Избранное ", в которую перечислены запросы, заданные в качестве избранного. Вы можете выбрать вкладку "Все ", чтобы просмотреть все определенные и общие запросы для проекта.
Совет
Запросы, выбранные вами или командой в качестве избранного, отображаются на странице "Избранное ". На странице Project также отображаются избранные запросы вместе с другими объектами. Дополнительные сведения см. в разделе "Настройка личных или избранных команд".
В вашем проекте выберите Доски > Запросы, а затем выберите Все.
Откроется страница "Запросы " на вкладке "Избранное ", в которую перечислены запросы, заданные в качестве избранного. Вы можете выбрать вкладку "Все ", чтобы просмотреть все определенные и общие запросы для проекта.
Совет
Запросы, выбранные вами или командой в качестве избранного, отображаются на странице "Избранное ". На странице Project также отображаются избранные запросы вместе с другими объектами. Дополнительные сведения см. в разделе "Настройка личных или избранных команд".
Определение запроса с неструктурированным списком
Запустите новый запрос на вкладке "Запросы " на веб-портале или на вкладке "Рабочие элементы " в Team Explorer.
- Выберите новый>запрос.
Редактор запросов отображается со следующими параметрами по умолчанию: неструктурированный список рабочих элементов, рабочий тип=[Любой], и State=[Any].
- Измените значения и добавьте или удалите предложения или измените тип запроса на рабочие элементы и прямые ссылки или дерево рабочих элементов.
- Выберите новый>запрос.
Редактор запросов отображается со следующими параметрами по умолчанию: неструктурированный список рабочих элементов, рабочий тип=[Любой], и State=[Any].
- Измените значения и добавьте или удалите предложения или измените тип запроса на рабочие элементы и прямые ссылки или дерево рабочих элементов.
Запрос между проектами или внутри проектов
По умолчанию новые запросы ограничиваются областью текущего проекта. Но вы можете создавать запросы для поиска рабочих элементов, определенных в организации или коллекции проектов. Однако все сохраненные запросы сохраняются в определенном проекте.
Чтобы вывести список рабочих элементов, определенных в двух или нескольких проектах, установите флажок "Запрос" в проектах. Например, следующий запрос находит все функции, созданные во всех проектах за последние 30 дней.
При включенной опции Запрос между проектами можно добавить поле Командный проект для фильтрации определённых проектов.
Примечание.
- Разделите несколько имен проектов с разделителем списка, соответствующим региональным параметрам, определенным для клиентского компьютера, например запятой
,
. - При использовании поля State в запросе в нескольких проектах отображаемые значения ограничиваются значениями, определенными в проекте по умолчанию. Это означает, что если вы выполняете запросы по нескольким проектам, вы можете не увидеть все возможные значения состояния из каждого проекта, а только те, которые принадлежат проекту, установленному по умолчанию. Например, если у вас есть три проекта : Project A, Project B и Project C, а только Project A имеет состояние "В проверке", в то время как проекты B и C имеют разные состояния, запросы между этими проектами показывают только состояния, определенные в Project A.
- Поле Командный проект становится доступным только после включения Запроса по всем проектам.
- При выборе параметра Запрос между проектами все поля из всех типов рабочих элементов, представленных во всех проектах коллекции, отображаются в раскрывающемся меню "Поле".
- Если Запрос через проекты снят, в раскрывающемся меню Поле отображаются только те поля из этих типов рабочих элементов, как они определены в текущем проекте.
Определение предложения
Чтобы создать запрос, определите одно или несколько предложений. Каждое предложение определяет критерии фильтра для одного поля.
Пример пункта запроса
и/или | Поле | Оператор | Значение |
---|---|---|---|
И | Назначено | = | @Me |
Для списка доступных операторов на основе типа данных поля см. Краткий справочник по индексу запросов.
Все условия добавляются как оператор And. Выберите или измените группирование. Сгруппируйте предложения, чтобы гарантировать, что условия конструкций выполняются в требуемой последовательности.
Выберите " Добавить новое предложение", чтобы добавить другое предложение в конце запроса, а затем выберите поле, оператор и значение для этого предложения.
Например, выполните поиск всех рабочих элементов, назначенных вам, указав поле "Назначенный кому", оператор 'равно' (=) и макрос @Me, представляющий ваш идентификатор пользователя.
Совет
Чтобы просмотреть синтаксис WIQL для запроса и как скобки используются для группирования предложений, установите редактор Wiql Marketplace. Это расширение поддерживает просмотр синтаксиса WIQL и экспорт его в WIQL-файл для использования в вызовах REST API. Дополнительные сведения см. в разделе Синтаксис языка запросов рабочих элементов (WIQL).
Контрольный список для определения условия запроса
В первой пустой строке в заголовке столбца "Поле " щелкните стрелку вниз, чтобы отобразить список доступных полей и выбрать элемент в списке. Дополнительные сведения см. в разделе "Поля запроса" и "Значения".
В той же строке в заголовке столбца оператора щелкните стрелку вниз, чтобы отобразить список доступных операторов, а затем выберите элемент в списке. Дополнительные сведения см. в статье Операторы.
В той же строке в заголовке столбца "Значение " введите значение или щелкните стрелку вниз, а затем выберите элемент в списке. Дополнительные сведения об использовании макроса или переменной для указания текущего проекта, пользователя, даты или другого выбора см. в разделе "Переменные".
Чтобы добавить предложение, нажмите кнопку "Добавить новое предложение".
Предложение можно добавить в конец запроса или выполнить следующие задачи с соответствующими значками:
-
Вставка новой строки фильтра
-
Удаление этой строки фильтра
-
Группировать выбранные предложения
-
Разгруппировать предложения
-
Использование дерева рабочих элементов для просмотра иерархий
Используйте запрос дерева рабочих элементов для просмотра многоуровневого вложенного списка рабочих элементов. Например, можно просмотреть все элементы невыполненной работы и связанные задачи. Чтобы сосредоточиться на разных частях дерева, выберите
"Развернуть все" или
"Свернуть все".
Примечание.
Невозможно создать запрос, показывающий иерархическое представление планов тестирования, наборов тестов и тестовых вариантов. Эти элементы не связаны друг с другом с помощью типов ссылок родитель-дети. Однако можно создать запрос прямых ссылок, который перечисляет тестовые рабочие элементы. Кроме того, вы можете просмотреть иерархию на странице "Планы тестирования".
Определите критерии фильтра для родительских и дочерних рабочих элементов. Чтобы найти связанные дочерние элементы, выберите Сопоставление рабочих элементов верхнего уровня в первую очередь. Чтобы найти связанных родителей, сначала выберите Сначала сопоставить связанные рабочие элементы.
Использование прямых ссылок для просмотра зависимостей
Используйте запрос рабочего элемента и прямых ссылок для отслеживания рабочих элементов, зависящих от других отслеживаемых работ, таких как задачи, ошибки, проблемы или функции. Например, можно просмотреть элементы невыполненной работы, зависящие от других элементов, реализованных или исправленных ошибок.
Используйте запрос прямых ссылок для отслеживания зависимостей между командами. Запрос также помогает управлять обязательствами вашей команды. Выберите критерии фильтра для верхних и связанных рабочих элементов. И выберите типы ссылок для фильтрации зависимостей.
Отфильтруйте список рабочих элементов первого уровня, выбрав один из следующих вариантов:
- Возвращают только элементы с соответствующими ссылками: возвращается рабочий элемент первого уровня, но только если они имеют ссылки на рабочие элементы, указанные критериями фильтрации связанных рабочих элементов.
- Возвращает все элементы верхнего уровня: все рабочие элементы первого уровня возвращаются, несмотря на критерии фильтрации связанных рабочих элементов. Рабочие элементы второго уровня, связанные с первым уровнем, возвращаются, если они соответствуют критериям фильтра связанных рабочих элементов.
- Возвращаются только те элементы, которые не имеют сопоставленных ссылок: возвращаются рабочие элементы первого уровня, но только если они не имеют ссылок на рабочие элементы, указанные критериями фильтра связанных рабочих элементов.
Дополнительные сведения о каждом типе ссылки см. в справочнике по типу ссылок.
Использование логических операторов «и» или «или» в выражении
Укажите And
или Or
для создания логических выражений ваших предложений запроса. Используется And
для поиска рабочих элементов, которые соответствуют критериям в текущем предложении и предыдущем предложении. Используется Or
для поиска рабочих элементов, которые соответствуют критерию в текущем предложении или предыдущем предложении.
Добавьте одно новое условие для каждого поля рабочего элемента, чтобы уточнить критерии поиска. Добавьте предложения, чтобы вернуть только нужный набор рабочих элементов. Если вы не получаете ожидаемые результаты из запроса, измените его. Вы можете добавлять, удалять, группировать или разгруппировать предложения запросов, чтобы улучшить результаты запроса.
Группировать условия запроса, чтобы они работали как единое целое, отдельно от остальных частей запроса. Предложения группировки похожи на размещение скобок вокруг выражения в математическом уравнении или инструкции логики. Когда вы группируете предложения, And
Or
первое предложение в группе применяется ко всей группе.
Групповые условия
Сгруппированные предложения работают отдельно от остальной части запроса. Предложения группировки похожи на размещение скобок вокруг математического уравнения или выражения логики. Оператор 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 не должна превышать 32K символов для запросов 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-минутного периода. Таким образом, система может изучить и искать план оптимизации, наиболее подходящий для вашего запроса.