Действительно, такие задачи имеют место достаточно часто. При выполнении комплексных работ бывает необходимо сохранять последовательность действий сотрудниками, чтобы не нарушать порядок выполнения. С помощью стандартных инструментов создания задач решить данный вопрос невозможно, но его можно решить с помощью несложного бизнес-процесса.
Создание процесса и настройка параметров шаблона
Создайте новый процесс.
Выберите название и задайте описание процесса. Выберите картинку по вашему желанию.
После этого можно приступать к созданию и настройке шаблона бизнес-процесса. Для работы нам понадобятся три переменные типа Привязка к сотруднику:
- Выбранный сотрудник - перемененная нужна для хранения сотрудника, для которого создается каждая конкретная задача.
- Исполняющие первую задачу - список сотрудников, для которых задача ставится на первом этапе.
- Исполняющие вторую задачу - список сотрудников, для которых задача ставится на втором этапе.
Последние две переменные должны быть множественными, потому что задача на каждом этапе может быть поставлена как одному сотруднику, так и нескольким. Но при этом она необязательная, потому что задача может и не ставиться вовсе.
Создание шаблона
В самом начале бизнес процесса мы установим действие Запрос дополнительной информации, с помощью которого пользователю нужно будет выбрать сотрудников, исполняющих задачу.
Задачи для пользователей будут создаваться с помощью Цикла.
Важной особенностью нашего задания является то, что задачи создаются отдельно для каждого сотрудника, а не для всех одновременно. Для этого из множественной переменной, хранящей список сотрудников, нужно получить отдельный элемент. Сделать это стандартными методами нельзя, поэтому придется использовать действие PHP код.
$root = $this->GetRootActivity();
$users = $root->GetVariable('UserMultiple');
$user = array_shift($users);
$root->SetVariable("UserSelected", $user);
$root->SetVariable("UserMultiple", $users);
В результате в переменную UserSelected
будет записан очередной пользователь из массива, который станет короче на один элемент. Цикл повторяется до тех пор, пока в массиве сотрудников не останется ни одного элемента. Это мы и указываем в настройках цикла.
Эту же переменную мы будем использовать для создания задачи. Для этого нужно разместить действие Задача. Настроим параметры действия для создания задачи.
Нужно поставить Да в поле Остановить процесс на время выполнения задачи. Благодаря этому задачи будут создавать не сразу, а по очереди: для каждого последующего пользователя задача будет создаваться только после того, как предыдущий завершил выполнение своей.
Заполнить поля Постановщик и Ответственный можно с помощью формы "Вставка значения". Все остальные поля действия можно заполнить в зависимости от специфики создаваемых задач.
Данные действия повторяются для каждой предусмотренной в процессе задачи. Ознакомиться с шаблоном полностью можно здесь.