Плагин Jira используется для внедрения сложных процессов. Представляет собой различные расширения для настройки рабочих процессов в Jira, среди которых весьма полезные функционал по тонкой настройке графа бизнес-процесса, проверке заполнения полей, обеспечению взаимосвязи между задачами, настройкам доступа к задачам. Плагин также может быть полезен при построении различных автоматизаций, используемых в девопс.nnПосле установки плагина в системе появляются дополнительныеn
Условия:
- Previous Status Condition
- Scripted (Groovy) Condition
- Separation of Duties Condition
- Hide transition
Валидаторы:
- Field has single value Validator
- Field has been modified Validator
- Field is required Validator
- Previous Status Validator
- Parent Status Validator
- Comment Required Validator
- Scripted (Groovy) Validator
Post-функции:
- Increase value of field
- Set field value from User Property value
- Add Field Value to Parent
- Copy Field Value to Parent
- Set Field Value from Parent
- Set Field Value from Linked Issue
- Copy Field Value To Linked Issues
- Set Field Value of Linked Issues
- Set Field Value to constant or Groovy expression
- Assign to role member
- Assign to last role member
- Set issue security level based on user’s project role
- Transition issue
- Transition parent issue
- Transition linked issues
- Copy Value From Field to Field
- Comment issue
- Comment linked issues
Их все можно сгруппировать по определенным признакам. Для каждой группы описана зона применения, а для наиболее интересных, по мнению автора, функций приведены примеры использования. Для полного понимания остановимся еще на определениях и некоторых теоретических моментах работы бизнес-процессов. В настройках бизнес-процесса можно обнаружить Условия (Conditions) и Проверки или валидаторы (Validators).Если не выполняется условие, то переход (в виде кнопки в интерфейсе работы с задачей) вообще не будет виден пользователю, а если не выполняется проверка, то на экране перехода будет сообщение о том, что переход невозможен.n
Создание значения полей из скриптов или выражений Groove:
- Scripted (Groovy) Condition. Пользовательское условие, базирующееся на Groovy скриптах и выражениях.
- Scripted (Groovy) Validator. Пользовательская проверка, базирующаяся на Groovy скриптах и выражениях.
- Set Field Value to constant or Groovy expression. Функция заполнения значения поля из строки выражения Groovy.
- Comment issue. Функция создания комментария из строки выражения Groovy.
Формирование взаимосвязей между задачами:
- Add Field Value to Parent. Функция добавляет значение в multi-select поле родительской задачи.
- Copy Field Value to Parent. Функция копирует значение поля в поле родительской задачи.
- Set Field Value from Parent. Функция, которая устанавливает значение поля в соответствии с полем родительской задачи.
- Set Field Value from Linked Issue. Функция, которая устанавливает значение поля в соответствии с полем прилинкованной задачи.
- Copy Field Value To Linked Issues. Функция, которая копирует значение поля во все прилинкованные задачи с определенным типом линкования.
- Set Field Value of Linked Issues. Функция заполнения значения поля для прилинкованных задач текущей задачи из строки выражения Groovy.
- Transition parent issue. Функция изменения статуса родительской задачи.
- Transition linked issues. Функция изменения статуса всех прилинкованных задач с определенным типом линкования.
- Comment linked issues. Функция создания комментария для прилинкованных задач текущей задачи из строки выражения Groovy.
Контроль выполнения требований по ведению процесса и заполнению полей задач:
- Field has been modified Validator. Проверка на то, что поле должно быть изменено при переходе.
- Field is required Validator. Проверка на то, что поле не должно быть пустым в момент перехода.
- Comment Required Validator. Проверка на то, что комментарий должен быть добавлен при переходе.
- Field has single value Validator. Проверка на то, что multi-select поле, не имеет более одного значения в момент перехода.
- Parent Status Validator. Проверка на то, что родительская задача для задачи, которая совершает переход, должна быть в определенном статусе.
Создание автоматизаций:
- Hide transition. Условие, позволяющее спрятать переход от пользователя. В таком случае переход может быть выполнен только программно, из функции процесса.
- Transition issue. Функция изменения статуса текущей задачи. Тут требуется пояснение. Например, при переводе задачи в состояние «Выполнение», она автоматически переводится в состояние — «Готово». Это может быть полезным, если в избранных случаях бизнес процесса перед переходом в статус «Готово» требуется выполнить пост-функции, относящиеся к статусу «Выполняется». Еще одна ценность этой пост-функции в том, что дополнительный переход может выполняться по проверке, реализованной с помощью Groovy. В таком случае функция приобретает очень полезный смысл для автоматизации. Например, задача требует выполнения определенных настроек. Скрипт Groovy получает эти настройки, и если они соответствуют требуемым, то задача автоматически переводится в состояние «Готово», а в противном случае остается в состоянии «Выполнение». Можно усложнить, вызвав перед этой пост-функцией функцию, выполняющую изменение настроек. Тогда выражение Groovy будет выступать в роли контролера работы функции по настроек системы.
Настройки разрешений доступа к задачам:
- Assign to role member. Назначает задачу члену роли. Имеет 4 варианта:
- Присвоить задачу дефолтному члену роли независимо от значения поля Assignee на экране перехода.
- Назначить задачу дефолтному члену роли, только если пользователь выбирает «Автоматически» в качестве получателя на экране перехода. Если назначен конкретный исполнитель, не делать ничего.
- Использовать назначенного исполнителя, выбранного на экране перехода, если он является членом требуемой роли, в противном случае назначить задачу дефолтному члену роли.
- Использовать назначенного исполнителя, выбранного на экране перехода, если он был изменен пользователем или если он находится в состоянии «Автоматически», в противном случае назначить задачу дефолтному члену роли.
Перед выполнением может быть выполнена пользовательская проверка выражения Groovy. В случае если значение по умолчанию для члена роли не назначено, то задача будет назначена на члена роли, который идет первым в списке.n
- Assign to last role member. Назначает задачу члену роли, которому она была назначена ранее.
- Set issue security level based on user’s project role. Назначает задаче SecurityLevel в соответствии с ролью пользователя в проекте.
Другие проверки и функции:
- Previous Status Condition. Условие проверки наличия или отсутствия предыдущего статуса задачи. Например, задача инвентаризации. При первичной инвентаризации создается паспорт оборудования, а при повторных — нет. Формируется бизнес-процесс, в рамках которого переход в статус «Формирование паспорта» происходит только в случае, если до этого не было статуса «Повторная инвентаризация». То есть, если инвентаризация повторная, то кнопка «Формирование паспорта» просто не будет видна пользователю.
- Separation of Duties Condition. Условие, запрещающее пользователю выполнять переход, если он уже выполнил другой переход. Например, при проверке качества выполнения: если специалист выполнял переход в статус «выполнение», то он не может закрыть задачу, потому что кто-то другой должен подтвердить, что задача выполнено качественно.
- Previous Status Validator. Проверка на то, что задача прошла через определенный статус до момента перехода. Пример – публикация статьи. Статусы задачи: «Новая» — «В работе» — «готово к публикации» — «в работе» — «выполнено». Статус «в работе» одинаков для отдела писателей и рецензентов, однако для того, чтобы статья не избежала публикации можно применить эту проверку.
- Set field value from User Property value. Функция, которая устанавливает значением поля одно из свойств Пользователя, выполняющего переход. Например, Вы ведете учет Ваших клиентов в Jira, у каждого клиента указан номер телефона. Когда клиент создает задачу (например, через e-mail) его номер телефона цепляется к задаче, чтобы потом, когда задача будет выполнена, система могла автоматически уведомить клиента через смс. Или Вы хотите повышать приоритет задачи, которая поставлена высоким руководством. В свойствах пользователя указываете, ранг пользователя – VIP. При создании задачи — заполняете поле задачи в соответствии с рангом создателя, а после этого — выставляете приоритет выше, если это поле заполнено.
- Copy Value From Field to Field. Функция копирования одного значения поля в другое. Значение может быть скопировано до изменения его в рамках этого перехода.
Если вам нужна помощь в настройке плагина JIRA Misc Workflow Extensions в вашей конфигурации Jira, наши специалисты могут Вам помочь, [email protected]