Задача
Получить данные по периодам а) за 2017 год б) 2018 год:
- Утверждено задач за период
- Из них выполнено без переноса сроков
- Из них выполнено с одним переносом сроков
- Из них выполнено с двумя и более переносами
- Из них выполнено
- Из них отклонено
Корректировки, на основе реальных данных
Для фильтрации необходимо определиться с пониманием того, за какие данные мы будем "цепляться".
В данном случае, имеются необходимые статусы: УТВЕРЖДЕНА CLOSED ОТКЛОНЕНА но помимо статусов, коллеги использовали стандартное поле Due Date для обозначения сроков.
Во время анализа проекта IA можно обнаружить задачи, в которых имеется значение поля Due Date, а в некоторых этого значения нет.
Чтобы разбить необходимые данные - я нарисовал следующую таблицу:
Таблица уже заполнена готовыми данными, с целью удобства
ВСЕГО | Наличие установленных сроков | Без установленных сроов | ||||||||
Выполнено | Без переноса сроков | С 1 переносом сроков | С 2 и более переносов | Отклонено | Еще НЕ ВЫПОЛНЕНО | Выполнено | Отклонено | Еще НЕ ВЫПОЛНЕНО | ||
Утверждено за 2017/01/01 - 2017/12/31 | 212 | 115 | 52 | 6 | 57 | 1 | 11 | 59 | 7 | 19 |
Утверждено за 2018/01/01 - 2018/06/29 |
Чтобы более детально получить данные - будем использовать именно эту таблицу.
Поэтапное решение
Я буду описывать решение только для одного периода. Остальные временные рамки можно менять самостоятельно
Для начала получим полное кол-во утвержденных заявок для периода.
Теперь разобьем эти части на Выполненные, где были установлены сроки и где этих сроков не было
Узнаем, сколько задач отклонено
Учет перенесенных сроков
Теперь началось самое интересное. Необходимо учесть, сколько было переносов и были ли они вообще.
С учетом того, что за основу мы взяли поле Due Date. То одно изменение этого поля - будет равняться одному перенесенному сроку.
Необходимо учитывать, что если изначально, при создании задачи, Due Date не был проставлен. То в последствии - установка какого-либо значения - тоже, фактически, для JIRA - будет являться изменением поля. Но нам необходимо учесть, что это не перенос срока, а его установка.
Для решения задачи будем использовать функцию: silJQLExpression и Dashboard для формирования данных. Хотя, можно было бы и воспользоваться issue navigator и тогда для поиска, с помощью SIL скрипта нам понадобится silJQLList.
Для поиска изменений полей в Hystory будем использовать 2 функции: getFieldChanges и fieldHistory
Создаем файл скрипта, в котором будем осуществлять поиск. Назовем его IA_jql_search_1.sil
Осталось скорректировать строчку поиска для отображения результатов, где было более 2х переносов сроков. Или просто сложением и вычитанием получить остаток.
115 - 52 - 6 = 57
Скрипт будет использоваться тот же, только изменяем JQL
Вариант использования Issue Navigator + silJQLList
Если не использовать Dashboard - можно добиться того же результата с помощью функции silJQLList
Будем использовать тот-же скрипт. Т.к. в строке поиска у нас имеются все условия - то использовать аргументы не требуется.
Строка JQL поиска будет выглядеть так:
Результат вывода будет точно такой же, только уже списком задач.
Комментариев нет:
Отправить комментарий