Пользовательская задача

Пользовательская задача выполняется пользователем или участником процесса. При выполнении таких задач обычно требуется ввод данных, манипуляции с объектами и т.д.

Атрибуты и форма

../../../../../_images/54.png

Укажите Имя.

../../../../../_images/55_0.png
Укажите реципиентов — пользователей — исполнителей задачи.
Реципиент может быть выбран из списка ролей или указан вручную.
При выборе из списка представлен список ролей, заполненных в типе данных:

Для ввода вручную необходимо выставить флаг Ручное назначение
В поле указывается имя или recordRef реципиента. Поддерживаются expression для получения реципиентов из переменных или сервисов.
Expression может вернуть множественное значение — строки разделенные запятой: user1,user2,user3
Например:
ivan.petrov
GROUP_company_accountant
emodel/authority-group@company_accountant
${someVariable}
${someService.getRecipients()},petya.voks




Выберите приоритет задачи из списка

Или укажите приоритет (выражение) — expression для получения приоритета задачи из переменных или сервисов. Выражение должно вернуть число, представляющее собой приоритет:
- Высокий — 1
- Средний — 2
- Низкий — 3


Возможность устанавливать срок задачи вручную или через выражение.

Вручную:

Тип времени — Календарное или Рабочее.
Продолжительность — продолжительность времени, определенная в ISO8601 формате, кроме указания дней. Например:
- PT15M — 15 минут
- PT3H — 3 часа
- PT1H30M — 1 час и 30 минут

Тип времени — Календарное.

Тип времени — Рабочее.

Рабочее расписание — Ссылка на рабочее расписание, которое будет использоваться для вычисления рабочего времени.

Внимание! Вычисление срока по рабочему расписанию доступно только в Enterprise версии.

Через выражение:

Вычисляемый срок

Дата в формате ISO :
2020-06-20T10:30:00Z — 20 июня 2022 года 10 часов 30 минут 0 секунд
или в виде выражения ${ someDate} предварительно задав переменную execution через скриптовую задачу
Выражение всегда должно возвращать java.util.Date, java.util.String (ISO 8601) или null.

Для удобной работы со временем и продолжительностью в js движок добавлены объекты Time и Duration. См. Работа с датами и временными интервалами



Укажите результат задачи (вердикт) — идентификатор и название.
В вердиктах можно настроить темы для кнопки. См. подробно о результатах задачи

Форма задачи определяет то, что будет отображено при назначении задачи пользователю. Форму задачи можно выбрать из списка, создать.
Если форму задачи не указывать - тогда пользователю будут отображены результаты задачи, указанные в соответствующем поле, и поле для ввода комментария. См. подробно о формах

Примечание

Срок выполнения задачи также можно изменить с помощью TaskService или в TaskListeners с помощью переданного DelegateTask.

Важно

При сохранении, сохранении/публикации процесса проверяется обязательность заполнения следующих полей:

  • «Реципиенты задачи»;

  • «Приоритет задачи»: Приоритет или Приоритет (выражение)

Иначе в линтере будет выдана ошибка.

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

Функционал Lazy approval для задачи

Примечание

Доступно только в Enterprise версии.

Панель Согласование по почте доступна на стендах, где есть лицензия разработчика или лицензия с включенным функционалом lazy approval.

Lazy approval — функционал, позволяющий принимать решения из электронной почты, не заходя в Citeck. Например:

Письмо о согласовании:
../../../../../_images/LA_example.png
В письме выбран вердикт На доработку:
../../../../../_images/LA_example_1.png

О предварительных настройках функционала см. подробно

Для включения функционала lazy approval для определенной задачи необходимо выставить чекбокс «Согласование по почте».

Тип уведомления по умолчанию выставлен Электронная почта.
Выберите шаблон уведомления из созданных ранее
../../../../../_images/user_task_LA.png
Или выставите чекбокс Ручной ввод шаблона уведомления, чтобы воспользоваться другими способами:
Выберите шаблон уведомления из созданных ранее
1. Можно константно в текстовом формате указать RecordRef нужного шаблона.
2. Используя переменную из процесса. Переменную необходимо указывать по следующему синтаксису ${имя_переменной}. Задать переменную можно ранее в скрипте или иными способами. Пример скрипта в процессе:
execution.setVariable('la_not_templ', "notifications/template@test-la-notification");
../../../../../_images/user_task_LA_1.png
Выставите чекбокс Включить отчеты о выполнении согласований через почту, чтобы пользователь получал ответные сообщения об успешно/неудачно выполненных задачах и выберите шаблоны из созданных ранее.
../../../../../_images/user_task_LA_2.png

Форма задачи

Примечание

Если форма задачи не указана, то будут отображаться доступные вердикты задачи, заполненные в поле Результат задачи и поле для ввода комментария:

Результаты задачи версионируются вместе с описанием процесса.

Форму можно создать, нажав Выбрать - Создать форму

../../../../../_images/57.png

Для добавления кнопок вердиктов задачи на вашу форму, можно воспользоваться компонентом формы Task Outcome, который автоматически формирует кнопки вердиктов исходя из настроек Результатов задачи.

../../../../../_images/task_outcome.png

Вердикты задачи можно добавить вручную для более гибкой настройки конфигурации. Для этого на форму задачи необходимо добавить кнопку, где «Имя свойства» задается по шаблону outcome_идентификаторВердикта. Например, outcome_approve.

../../../../../_images/58.png

Если какие-то задачи могут совпадать, то можно использовать одинаковую форму.

См. пример создания формы и best practice по расположению кнопок на форме.

Использование переменных на форме

Элементы формы задачи связаны с переменными инстанса (экземпляра) процесса. Если в области видимости задачи/процесса есть переменная с таким же id (Имя свойства), как и у элемента формы, то ее содержимое отобразится на форме.

При сабмите (публикации) формы задачи переменные будут записаны в переменные процесса.

Элементы формы задачи так же могут быть связаны с переменными документа, по которому идет бизнес-процесс.

Для отображения и обновления переменных документа на форме задачи необходимо добавить элемент с id (Имя свойства) с префиксом _ECM_, например _ECM_paymentSum, где paymentSum — свойства документа.

Темы для кнопок вердикта

В вердиктах доступна настройка темы кнопок. Настройка влияет на цвет кнопки по аналогии с кнопками на форме.

../../../../../_images/56_4.png

../../../../../_images/56_5.png

Возможные варианты:

../../../../../_images/56_6.png

Примеры:

../../../../../_images/56_7.png

1

По умолчанию

2

Основная

3

Информация

4

Успешно

5

Опасно

6

Предупреждение

Обязательный комментарий для вердикта

В настройках вердикта доступен флаг «Комментарий обязателен». Если флаг включён, пользователь не сможет завершить задачу с этим вердиктом, пока не заполнит поле Комментарий.

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

Примечание

Валидация срабатывает на универсальной форме задачи (когда форма задачи не задана) и на пользовательских формах, использующих компонент Task Outcome. При попытке нажать на кнопку вердикта с пустым комментарием отправка формы блокируется и под полем Комментарий отображается сообщение об ошибке.

Типовые сценарии использования:

  • вердикты «Отклонить», «Вернуть на доработку», «Аннулировать» — где требуется указать причину;

  • любые завершающие вердикты, для которых важно зафиксировать обоснование решения исполнителя.

Если флаг выключен (значение по умолчанию), комментарий остаётся необязательным.