На главную страницу сайта Teamlead
Для того чтобы задать запуск Jelly script периодически:
1. Создайте фильтр с запросами по которым не было активностей более 10 дней.
2. Создайте файл closurescript.xml с текстом:
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib" xmlns:core="jelly:core" xmlns:log="jelly:log" > <jira:Login username="ИМЯ ПОЛЬЗОВАТЕЛЯ" password="ПАРОЛЬ"> <log:info>ЗАПУСК СЛУЖБЫ ЗАКРЫТИЯ ЗАПРОСОВ</log:info> <!-- Properties for the script --> <core:set var="comment">ПО ДАННОМУ ЗАПРОСУ НЕ БЫЛО АКТИВНОСТИ В ТЕЧЕНИИ 10 РАБОЧИХ ДНЕЙ. ЗАПРОС ЗАКРЫВАЕТСЯ.</core:set> <core:set var="workflowStep" value="НОМЕР ИЛИ НАЗВАНИЕ ПЕРЕХОДА" /> <core:set var="workflowUser" value="ИМЯ ПОЛЬЗОВАТЕЛЯ" /> <core:set var="НАЗВАНИЕ ФИЛЬТРА" value="ID ФИЛЬТРА" /> <!-- Run the SearchRequestFilter --> <jira:RunSearchRequest filterid="${НАЗВАНИЕ ФИЛЬТРА}" var="issues" /> <!-- Iterate over the issues --> <core:forEach var="issue" items="${issues}"> <log:warn>Закрытие неактивного запроса ${issue.key}</log:warn> <jira:TransitionWorkflow key="${issue.key}" user="${workflowUser}" workflowAction="${workflowStep}" comment="${comment}" resolution="РЕЗОЛЮЦИЯ"/> </core:forEach> </jira:Login> </JiraJelly>
Первый пользователь (Login username) - от кого будет осуществлен вход в систему и собран фильтр.
Второй пользователь (workflowUser) - от кого будет осуществлен переход бизнес-процесса и оставлен комментарий.
Фильтр - набор запросов, которые вы хотите изменить, то есть закрыть. Выбираете, например, все запросы, которые не обновлялись последние 7 дней.
3. Настройте службу со следующими параметрами:
- Класс: com.atlassian.jira.jelly.service.JellyService.
- Входной Файл: C:\jirascripts\closurescript.xml
- Выходной Файл: C:\jirascripts\closureoutput.xml
- Настройте интервал выполнения: Задержка (в минутах).
Для справки
11 Comments
Фераз Юлгушев
<
jira:RunSearchRequest
filterid
=
"${НАЗВАНИЕ ФИЛЬТРА}"
var
=
"issues"
/> Название фильтра надо вписать? Или это часть кода?
<
log:warn
>Закрытие неактивного запроса ${issue.key}</
log:warn
> issue.key надо вписать? Откуда его взять тогда?
Anton Romm (Teamlead)
НАЗВАНИЕ ФИЛЬТРА - это его ID. Найти сможете в адресной строке, когда перейдете на фильтр. Например: http://jira.teamlead.ru/issues/?filter=10570. Здесь ID=10570.
Фераз Юлгушев
Скрипт запускается вручную? Нельзя настроить что бы он сам запускался каждый день?
Anton Romm (Teamlead)
В пункте 3 сказано, что вам необходимо настроить службу. Службу вы сможете запускать с определенным интервалом.
Константин Боталов (Бизнес Софт Консалтинг)
Как в
<
jira:TransitionWorkflow
key
=
"${issue.key}"
user
=
"${workflowUser}"
workflowAction
=
"${workflowStep}"
comment
=
"${comment}"
resolution
=
"РЕЗОЛЮЦИЯ"
/>
добавить пользовательское поле с определенным значением?
Например, у меня есть пользовательское поле "customfield_10504" (оценка за выполненный запрос) и я хочу, чтобы задача автоматически закрывалась с оценкой "5".
Anton Romm (Teamlead)
Пока с помощью jelly нельзя это делать. Может быть просто повесть такую пост-функцию на переход, а сам переход совершать jelly?
Константин Боталов (Бизнес Софт Консалтинг)
Антон,
А как будет себя вести переход при условии, что это поле является обязательным (идет проверка валидатором) и должна при ручном переходе изменяться пользователем (например, пользователь хочет поставить оценку "3")?
Пока нашел по этой проблеме только этот плагин расширения - http://www.minyaa.com/documentation/latest/Features/ModuleTools/JellyTags.html#TransitionWorkflowExtended%20Tag
И еще меня мучает вот какой вопрос:
При запуске следующего скрипта:
Система возвращает:
Т.е. теоретически блок <jira:AddCustomFieldValue id="customfield_10504" value="10305" /> возможно поместить внутрь блока <jira:TransitionWorkflow>, но как это сделать?
Перепробовал уже кучу вариантов.
Константин Боталов (Бизнес Софт Консалтинг)
Разобрался, Антон.
Тег <jira:TransitionWorkflow> (без закрывающего слеша в конце!) можно разрывать и в разрыв добавить тег <jira:AddCustomFieldValue>, потом все закрывать тегом </jira:TransitionWorkflow>. У меня основная проблема была в том, что наименования тегов регистрозависимые. Т.е. <jira:TransitionWorkflow> ≠ <jira:TransitionWorkFlow>
Правильный код ниже.
Константин Боталов (Бизнес Софт Консалтинг)
Вот правильный Jelly-скрипт, который закрывает задачу с добавлением значения в пользовательское поле:
Anton Romm (Teamlead)
Константин, спасибо за ваш отзыв! Пополнил статью вашей ссылкой.
Илья Прокопенко (ООО РосИнтеграция)
Хотелось бы знать, возможно ли создать "робота" на оповещение членов Visible о просроченной заявке?