Custom Select List — процесс согласования 2.


Jira Custom Select List
Jira Custom Select List

Custom Select List — процесс согласования 1.

В прошлом посте рассмотрели как создать линейный процесс согласования.

Когда каждый шаг согласует один из пользователей указанных в шаге.
Рассмотрим варианты настройки нелинейных процессов.

Согласовать должны все пользователи указанные в шаге.

Все остается прежним, добавляет только логика проверки, что все пользователи согласовали.

...
issue.setCustomFieldValue(cfNeedApproval, needApproval)

if(needApproval){
    return
}

def nextStep = getNextStep(currentStep, processApproval)
...

При таком раскладе все шаги проходят с условием И (все указанные в шаге пользователи должны согласовать т.е. user1 и user2…)

Дополнительный параметр в json который будет отвечать за условие согласования

Параметр назовем «needAll» = false/true.

Если установлен в  true, то нужно согласование всех указанных в шаге пользователей.

Если параметр не указан, то будем считать, что он равен false и нужно согласование любого из указанных пользователей.

{
  "steps": [{
      "name": "step1",
      "approvers": ["user1"]
    },
    {
      "name": "step2",
      "approvers": ["user2", "user3"],
      "needAll": true
    },
    {
      "name": "step3",
      "approvers": ["user4"]
    },
    {
      "name": "done"
    }
  ]
}

И внесем изменения в post-function которая отмечает согласования и переводит на следующий шаг.

...
issue.setCustomFieldValue(cfNeedApproval, needApproval)


if(currentStep.needAll){
    if(needApproval){
        return
    }
}

def nextStep = getNextStep(currentStep, processApproval)
...

Прочее усложнение процесса

Можно пойти и дальше, дополнив json самыми разными данными:

  • Указать пользователей для нотификации
  • Брать пользователей из определенных полей или сервисов
  • Указать какие поля необходимо проставить на экране при согласовании

Подход очень гибкий. При должной сноровки пользователей им можно делегировать создание и изменение цепочек.


Like it? Share with your friends!

558
558 points
a.chuiko

Comments

comments

Powered by Facebook Comments