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

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

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

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

Имя

Укажите Имя задачи.

../../../../../_images/55_0.png

Реципиенты

Укажите реципиентов — пользователей — исполнителей задачи. Реципиент может быть выбран из списка ролей или указан вручную.

Представлен список ролей, заполненных в типе данных.

../../../../../_images/55_1.png ../../../../../_images/55_2.png ../../../../../_images/55_3.png

Необходимо выставить флаг Ручное назначение. В поле указывается имя или recordRef реципиента. Поддерживаются expression для получения реципиентов из переменных или сервисов.

Expression может вернуть множественное значение — строки, разделенные запятой: user1,user2,user3

Например:

  • ivan.petrov

  • GROUP_company_accountant

  • emodel/authority-group@company_accountant

  • ${someVariable}

  • ${someService.getRecipients()},petya.voks

../../../../../_images/55_4.png

Приоритет

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

../../../../../_images/priority_01.png

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

  • Высокий — 1

  • Средний — 2

  • Низкий — 3

../../../../../_images/priority_02.png

Срок

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

При вычислении срока задачи точкой отсчета является дата создания задачи.

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

Продолжительность — продолжительность времени, определенная в ISO8601 формате, кроме указания дней. Например:

  • PT15M — 15 минут

  • PT3H — 3 часа

  • PT1H30M — 1 час и 30 минут

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

../../../../../_images/working_calendar_01.png

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

../../../../../_images/working_calendar_02.png

Примечание

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

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

Дата в формате ISO:

2020-06-20T10:30:00Z — 20 июня 2022 года 10 часов 30 минут 0 секунд
или в виде выражения ${ someDate} предварительно задав переменную execution через скриптовую задачу

Выражение всегда должно возвращать java.util.Date, java.util.String (ISO 8601) или null.

../../../../../_images/working_calendar_03.png

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

Результат задачи и форма

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

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

../../../../../_images/parameter_01.png

Примечание

Срок выполнения задачи также можно изменить с помощью 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. При попытке нажать на кнопку вердикта с пустым комментарием отправка формы блокируется и под полем Комментарий отображается сообщение об ошибке.

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

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

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

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