Язык запросов

Для создания сложных фильтров, использующих условия "ИЛИ", отрицание и другие возможности, непредусмотренные простыми фильтрами, используйте язык запросов. Для написания сложного фильтра введите в строке фильтра знак вопроса ? (или звездочку *), после чего система предложит выбрать атрибут для фильтрации, логическую операцию или указать значение для фильтра. Сложный фильтр можно использовать в комбинации с простым, который задается выпадающими списками.


Синтаксис языка запросов

Запрос состоит из логических операторов AND, OR, NOT, операторов равенства и неравенства, оператора выборки из множества IN. Для поиска вида "содержит" используйте символ тильда. Вы можете использовать повышение приоритета логической операции при помощи скобок. Между операндами и значениями необходимо оставлять пробел.


Левым операндом является путь к атрибуту. В простом случае это системное имя атрибута, например, Caption. Система подсказывает какие атрибуты можно выбрать. Полный набор атрибутов доступен также в модуле "Справочник разработчика".

Id - это атрибут, содержащий идентификатор объекта. Например, выражение ?Id = 123 используется для фильтра данных по конкретному ИД объекта.

Некоторые атрибуты являются ссылками на другие объекты. Для доступа к ним используйте символ точки. Например, выражение ?Project.CodeName = "test" позволит выбрать данные для конкретного проекта.

Если необходимо в фильтре использовать название объекта, то атрибут Caption можно не использовать. Например, выражение ?Tags = "один" AND NOT Tags = "два" позволит выбрать данные, где указан тег с названием "один" и отсутствует тэг с названием "два".


Правым операндом является скалярное значение (число или текст, указанный в кавычках).

При использовании оператора IN перечисление значений указывается через запятую, например IN "один, два, три"

Правым операндом также может быть атрибут объекта. Например, выражение ?Planned < Fact позволяет выбрать задачи, по которым превышены фактические трудозатраты над плановыми.

Есть несколько встроенных ключевых слов, которые можно использовать в качестве правого операнда:

  • user - текущий пользователь. Например, выражение ?Author = user позволит выбрать объекты, где в качестве автора указан текущий пользователь.
  • project - текущий проект. Например, выражение ?Project = project позволит выбрать объекты только текущего проекта.

При указании даты можно использовать относительные выражения, например, now - сегодня, "-1 days" - "вчера".


В запросах поиска можно указывать сортировку результатов. Для этого необходимо в конце добавить фразу ORDER BY и указать системное имя атрибута. Направление сортировки задается фразами ASC - для прямой сортировки и DESC - для обратной. Для сортировки по нескольким полям используйте запятую, например ORDER BY Caption ASC, Email DESC


Примеры запросов:

  • Пожелания, в названии которых содержится текст: ?Caption ~ "текст"
  • Текущие итерации: ?FinishDate > "now"
  • Записи, созданные сегодня: ?RecordCreated = "today"
  • Записи, созданные вчера и сегодня: ?RecordCreated >= "-1 today"
  • Записи, созданные на прошлой неделе: ?RecordCreated >= "previous week" AND RecordCreated <= "last friday"
  • Записи, созданные на текущей неделе: ?RecordCreated >= "last monday" AND RecordCreated <= "next friday"
  • Пожелания или истории, где текущий пользователь является исполнителем или числится в составе наблюдателей: ?Owner = user OR Watchers.SystemUser = user
  • Требования определенных типов: ?PageType.ShortCaption IN "ВИ,СТ"
  • Требования, у которых есть связанные с ними тестовые сценарии: ?TestScenario.Id != ""
  • Требования тестируются, но не покрыты тестовой документацией: ?PageType.IsTesting = "Y" AND NOT TestScenario.Id != ""
  • Требования, по которым результаты тестирования "Провалены": ?LatestTestCaseExecution.Result.ReferenceName = "failed"