Вот наиболее распространенные примеры использования S-JQL.
- Найдите задачи, добавленные в структуру
Цель: предположим, что вы используете структуру под названием «Мой список задач» в качестве набора задач и хотите видеть в Навигаторе задач все задачи, добавленные в эту структуру.
Как это сделать: в навигаторе задач переключитесь на расширенный поиск и выполните следующий запрос:
КОД
issue in structure("My todo list")
Если вы хотите найти задачи, добавленные в структуру по умолчанию, вы можете опустить имя структуры:
КОД
issue in structure()
- Быстрый фильтр для доски JIRA Agile (GreenHopper) Scrum для отображения только низкоуровневых задач в структуре.
Настройка: предположим, что вы используете структуру под названием «Разбивка работ по проекту» для организации задач в рамках «контейнерных» задач более высокого уровня, которые обеспечивают обзор работы вашей команды. В этом случае фактические задачи находятся на нижнем уровне иерархии. Кроме того, предположим, что вы используете Scrum Board JIRA Agile для управления спринтами.
Цель: вы хотите видеть только актуальные задачи в невыполненной работе, скрывая задачи с контейнером.
Как добиться: добавьте быстрый фильтр
Если ваша структура организована таким образом, что на доске JIRA Agile для вас важны два нижних уровня, вы будете искать конечные задачи и их родителей с помощью этого JQL:
КОД
issue in structure("Project work breakdown", "leaf or parent of leaf")
- Получить все эпики с определенным статусом и всех их дочерних элементов.
Настройка: у вас есть структура под названием «Портфолио предприятия» с эпиками на верхнем уровне, историями под ними и задачами с их подзадачами, занимающими нижние уровни иерархии.
Цель: вы должны увидеть эпики со статусом «Назначено» со всеми их дочерними элементами.
Как это сделать: в навигаторе задач переключитесь на расширенный поиск и выполните следующий запрос:
КОД
issue in structure("Enterprise Portfolio", "issueOrAncestor in [type = Epic and status = Assigned]")
Если вы хотите увидеть эти проблемы в структуре, перейдите на доску структуры и введите этот запрос в области поиска в режиме JQL.
Кроме того, вы можете ввести только последнюю часть запроса, если используете режим поиска S-JQL:
КОД
issueOrAncestor in [type = Epic and status = Assigned]
- Найдите тестовые случаи, связанные с историями в активном спринте.
Настройка: предположим, что у вас есть структура под названием «Тестирование корпоративного портфолио», где у вас есть эпики на верхнем уровне, истории на втором уровне, затем следуют тестовые подзадачи и, наконец, тестовые случаи.
Вы также используете JIRA Agile (Greenhopper) для управления спринтами, которые содержат истории. Тот факт, что Test Case связан с Story, фиксируется только в структуре.
Цель: вам нужно найти тестовые наборы, связанные с историями в активном спринте.
Как достичь: вы можете использовать функцию расширенного поиска в Навигаторе задач или открыть структуру на доске структуры и использовать ее область поиска в режиме JQL для запуска этого запроса:
КОД
issue in structure("Enterprise Portfolio Testing", "[type = 'Test Case'] and ancestor in [type = Story and sprint in openSprints()]")
Или вы можете ввести только последнюю часть запроса, если вы используете режим поиска S-JQL на доске структуры:
КОД
[type = 'Test Case'] and ancestor in [type = Story and sprint in openSprints()]
- Найдите все задачи, которые блокируют критические задачи
Настройка: предположим, что у вас есть структура с именем «Структура зависимостей», где отношение родитель-потомок соответствует зависимости: каждый дочерний элемент блокирует своего родителя. (Возможно, вы настроили Links Synchronizer для синхронизации этой структуры со ссылкой на задачу JIRA «Зависимость».)
Предположим также, что вы считаете критическими те вопросы, которые имеют приоритет Критические.
Цель: вы хотите увидеть все проблемы, которые блокируют критические проблемы, в соответствии со структурой.
Как достичь: Вам нужно будет найти детей критических проблем. Вы можете использовать расширенный поиск в Issue Navigator или открыть структуру на доске структуры и использовать ее область поиска в режиме JQL для выполнения этого запроса:
КОД
issue in structure("Dependency structure", "child of [priority = Critical]")
Или вы можете ввести только последнюю часть запроса, если вы используете режим поиска S-JQL на доске структуры:
КОД
child of [priority = Critical]
- Найдите все неназначенные задачи в части проекта
Настройка: предположим, что вы используете структуру под названием «Разбивка работы по проекту», чтобы разбить проект на более мелкие части, так что, если у вас есть проблема где-то в структуре, все ее дочерние элементы на всех уровнях составляют отдельную часть проекта.
Цель: Вы фокусируетесь на части проекта под задачей с ключом PROJ-123 и хотите увидеть неназначенные задачи в этой части проекта.
Как достичь: используйте этот запрос JQL, чтобы найти всех неназначенных потомков PROJ-123:
CODE
issue in structure("Project work breakdown", "[assignee is empty] and descendant of PROJ-123")
- Вид сверху на незавершенные части проекта
Настройка: продолжим со структурой «Разбивка работ по проекту» из предыдущего примера. Предположим, что есть несколько задач верхнего уровня, представляющих разные части проекта.
Цель: Вы хотите получить представление о тех частях проекта, которые еще не завершены.
Как достичь: В терминах Структуры вам нужно увидеть коренные проблемы, у которых есть нерешенные потомки. Чтобы иметь постоянное представление, создайте сохраненный фильтр со следующим JQL:
КОД
issue in structure("Project work breakdown", "root and descendants in [resolution is empty]")
- Найдите нарушения правила "Задания должны быть под Эпиками или Историями"
Подготовка: у вас есть структура под названием «Планирование», в которую вы помещаете задачи типа «Эпик», «История» и «Задача». Ваша команда следует соглашению о том, что задачи всегда помещаются в эпики или истории. Однако, поскольку люди подвержены ошибкам, иногда задача оказывается не в том месте — либо на верхнем уровне, либо в рамках другой задачи.
Цель: Вам нужно найти Задания, которые нарушают правило, чтобы поставить их в нужное место.
Как выполнить: в области поиска на доске структуры выполните следующий поиск JQL:
КОД
issue in structure("Planning", "[type = Task] and parent not in [type in (Epic, Story)]")
- Найдите нарушения правила «Задача не может быть решена, если у нее есть нерешенные дочерние задачи
Настройка: предположим, что «Планирование» — это структура декомпозиции работ. Ваша команда следует соглашению о том, что задача не может быть решена, пока не будут решены все ее дочерние элементы.
Задача: Вам нужно найти задачи, нарушающие это правило.
Как выполнить: в области поиска на доске структуры выполните следующий поиск S-JQL:
КОД
[resolution is not empty] and child in [resolution is empty]
- Найдите задачи, которые можно решить, потому что все их дети уже решены.
Настройка: предположим, что «Планирование» — это структура разбивки работ. Ваша команда следует соглашению, согласно которому, как только все дочерние элементы задачи будут решены, задачаа также может быть решена.
Лучшим решением для этого было бы использование Синхронизатора сводки состояния, но предположим, что по какой-то причине вы хотите сделать это вручную.
Цель: вам нужен способ вручную решить те проблемы, у которых решены все их дочерние элементы.
Как выполнить: Откройте структуру на доске структуры. Когда вы вставляете приведенный ниже запрос в область поиска (убедитесь, что выбран режим JQL), будут показаны задачи, которые вы можете решить. Вы можете решить их одну за другой. Вот запрос, который вам нужен:
КОД
issue in structure("Planning", "[resolution is empty] and not(child is empty or child in [resolution is empty])")
- Получите представление о втором (третьем, ...) уровне иерархии
Настройка: существует большая структура под названием «Совместные усилия», в которой разные пользователи отслеживают свои проблемы на нескольких уровнях: отдел по работе с клиентами работает с задачами верхнего уровня, менеджеры проектов разбивают их на несколько задач на втором уровне, члены команды работают с задачами по задачам второго уровня.
Цель: каждый пользователь хочет видеть только соответствующую часть структуры. Отдел по работе с клиентами хочет отфильтровать задачи более низкого уровня, чтобы сосредоточиться на задачах верхнего уровня, а менеджеры проектов иногда хотят сосредоточиться только на задачах второго уровня в контексте своих родительских запросов.
Как выполнить: используйте область поиска на доске структуры для запуска определенных запросов (убедитесь, что выбран режим S-JQL). Переключите кнопку «Фильтр», чтобы скрыть проблемы на более низких уровнях.
Чтобы увидеть задачи верхнего уровня, выполните этот запрос:
КОД
root
Чтобы увидеть задачи второго уровня (задачи верхнего уровня будут по-прежнему отображаться, но выделены серым цветом), выполните этот запрос:
КОД
child of root
Если вам нужно копнуть еще глубже, чтобы увидеть третий уровень, но не более низкие, вы должны использовать этот запрос:
КОД
child of (child of root)
- Получить содержимое папки
Установка: существует структура с папкой под названием «Следующий релиз». Задачи помещаются туда вручную, а затем запрашиваются через S-JQL для целей планирования (например, в качестве фильтра Agile-доски).
Цель: пользователи хотят видеть все задачи, находящиеся в указанной папке.
Как это сделать: в навигаторе задач переключитесь на расширенный поиск и выполните следующий запрос:
КОД
issue in structure("My Structure", "descendant of folder('next release')")
Обратите внимание, что имя папки нечувствительно к регистру.
По материалам Atlassian JIRA Structure: S-JQL Cookbook