Автоматическое назначение исполнителей в bproc

Здравствуйте!
Задача следующая:
Есть бизнес процесс, где часть заданий выполняет менеджер. Первое менеджерское задание, может брать любой менеджер из этой группы. Нужно чтобы следующие задания которые относятся к менеджерам выполнял именно этот человек.
Моя идея состояла в том, чтобы после привязки или выполнения первого задания, каким то образом забирать текущего юзера (или assignee 1 задания) и устанавливать его в соответствующую переменную “selected_manager”, и уже все последующим менеджерским заданиям в Assignee Source писать именно эту процессную переменную. Остается вопрос, как и где лучше получить пользователя, который получил первое задание. Попытался в TaskListener на complete добавить нечто вроде:

bprocRuntimeService.setVariable(delegateTask.getExecutionId(), "selected_manager", userSessionSource.getUserSession().getUser());

Жаловался с NPE, говорил что текущий юзер null. Желательно было это как то делать вне кода, используя чисто скрипты в бипроке например, но непонятно как в них получить пользователя-assignee первого задания

Добрый день!
Вы можете сделать task listener на событие assignment и получать в нём идентификатор пользователя, на кого назначена задача, из delegateTask.

public class SaveAssigneeListener implements TaskListener {

    @Override
    public void notify(DelegateTask delegateTask) {
        String assignee = delegateTask.getAssignee();
        if (!Strings.isNullOrEmpty(assignee)) {
            DataManager dataManager = AppBeans.get(DataManager.class);
            Optional<User> userOpt = dataManager.load(User.class)
                    .id(UUID.fromString(assignee))
                    .optional();
            userOpt.ifPresent(user -> delegateTask.setVariable("selected_manager", user));
        }
    }
}