суббота, 18 августа 2018 г.

JIRA: JQL. Фильтр по времени, за период

Задача

Получить список задач, за указанный  период дат и указанный промежуток времени. Например: 
задачи, которые были созданы с 01.06.2018 по 30.06.2018 в промежуток с 11:00 до 16:31

Пожелания

Иметь возможность вариативно указывать дополнительные параметры стандартного фильтра: проект, статус и др.

Решение

Данные, за которые будем цепляться
У нас имеется поле Created, которое отображает дату и время создания задачи.

Как и по примеру прошлой задачи - мы будем перебирать массив задач, а затем сравнивать фактическое время создания задачи с условиями поиска.
All_SIL/JQL/JQL_search_issue_in_time_interval.sil
/*
для начала строка фильтра выбирает все задачи в указанном интервале дат, где начало времени первой задачи будет больше или равно первому аргументу
а второй аргумент будет меньше или равен второму аргументу
*/
string jql = "project = \"" + argv[0] + "\" AND created >= \"" + argv[1] + "\" AND created <= \"" + argv[2] + "\""//все параметры в навигаторе должны быть в  кавычках!
 
string[] selIssues = selectIssues(jql); //складываем в массив все задачи по указанному фильтру.
string[] needIssues; //массив задач, которые будет необходимо вывести
 
//парсим даты аргументов для приведения их в понятный для кода вид и дальнейшего разбора по часам и минутам. таким образом не надо время указывать отдельными аргументами
date dateStartJql = parseDate("yyyy-MM-dd HH:mm", argv[1]);
date dateEndJql = parseDate("yyyy-MM-dd HH:mm", argv[2]);
 
//цикл, который перебирает полученные на старте первого фильтра задачи и складывает их в нужный массив задач, для вывода
for(string isc in selIssues)
    {
        //объявляем числовые переменные часов и минут фактического и требуемого времени
        number needStartHour = hour(dateStartJql);
        number needEndHour = hour(dateEndJql);
        number needStartMin = minute(dateStartJql);
        number needEndMin = minute(dateEndJql);
        number createdHourIssue = hour(%isc%.created);
        number createdMinIssue = minute(%isc%.created);
         
        if(createdHourIssue > needStartHour)
            {
                if(createdHourIssue < needEndHour)
                    {
                        needIssues+=isc; //таким образом добавляем подходящую задачу в нужный массив для дальнейшего вывода
                    }
                else if(createdHourIssue == needEndHour)
                    {
                        if(createdMinIssue <= needEndMin)
                            {
                                needIssues+=isc;
                            }
                    }
            }
        if(createdHourIssue == needStartHour)
            {
                if(createdMinIssue >= needStartMin)
                    {
                        if(createdHourIssue < needEndHour)
                            {
                                needIssues+=isc;
                            }
                        else if(createdHourIssue == needEndHour)
                            {
                                if(createdMinIssue <= needEndMin)
                                    {
                                        needIssues+=isc;
                                    }
                            }
                    }
            }
    }
     
return needIssues; //возвращаем массив необходимых задач в навигатор

Пример на основе поставленной задачи

Найти задачи, созданные в проекте TRA. В период с 1 июня 2018 по 30 июня 2018, которые были созданы в интервале времени с 11:00 до 16:31
Как должен выглядеть запрос: 
Запрос в issue navigator
key in silJQLList("All_SIL/JQL/JQL_search_issue_in_time_interval.sil""TRA","2018-06-01 11:00","2018-06-30 16:31")
Где
  • TRA - имя проекта
  • 2018-06-01 11:00 - начальная дата и тут же начальное время требуемого интервала
  • 2018-06-30 16:31 - конечная дата и тут же финальное время требуемого интервала

1 комментарий:

  1. Анонимный29 июня 2021 г., 05:51

    VarangaOfficial - варанга аналог - все, что нужно знать об этом препарате. Воспользовавшись данным ресурсом, вы сможете узнать полную информацию касательно данного лекарственного средства. Лично увидеть данные о клиническом тестировании геля, прочитать реальные отзывы пользователей и врачей, использующих крем в своей лечебной практике. Изучить инструкцию по использованию, прочесть особенности и методы работы мази, понять, как работает крем Варанга, где можно приобрести сертифицированный, оригинальный препарат и, как избежать покупки подделки. Мы очень тщательно проверяем размещаемые на сайте данные. Предоставляем посетителям нашего онлайн-ресурса сведения, взятые только из надежных источников. Если вы нашли признаки развития грибка или уже довольно продолжительное время, без ощутимых результатов пытаетесь излечиться от этого коварного, неприятного недуга, наш сайт покажет вам простой и быстрый способ устранения проблемы. Присоединяетесь и живите полноценной, здоровой жизнью. Теперь все ответы можно отыскать на одном сайте.

    ОтветитьУдалить