Кнопка вызова ошибки

Назначение

Кнопка вызова ошибки - это компонента, которая используется для вызова события ошибки. При этом текущая страница будет закрыта и осуществлен переход по bpmn процессу.

Компонента Кнопка вызова ошибки находится в разделе Компоненты - Кнопки - Кнопка вызова ошибки

Свойства

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Выполнить запрос
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите выполнить действие?
Наименование ошибки позволяет задать наименование ошибки пример возможного значения: Отсутсвует соединение

Функции

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

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки

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

Определить права текущего пользователя

Определить права текущего пользователя

Определить роли текущего пользователя

Определить роли текущего пользователя

Методические рекомендации по применению

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

Пример настройки

Настройка производится в дизайнере процессов и студии.

Настройка в дизайнере процессов

Промежуточное событие ошибки отражает факт возникновения и/или обработки ошибки в процессе.

На Task устанавливается Catching Intermediate Events → Error:

Таких событий на таск может быть установлено множество. Для того, чтобы осуществлять переход на нужное событие, мы должны прописать уникальную ссылку ErrorRef:

Это значит, что если по _ErrorButton придет значение “error-connect-client”, то будет выбрано наше событие ошибки.

Настройка в студии

Кидаем на страницу компонент ErrorButton.

Настраиваем его.

В свойство “Error Name” прописываем тот же ErrorRef (см. Настройка в дизайнере процессов), для того чтобы перейти на нужное событие ошибки.

  1. Добавляем ErrorButton на страницу
  2. В поле errorName задаем имя ошибки.


Обработка события в BPMN процессе

Обработать событие ошибки можно двумя способами:

  1. Повесить граничный слушатель события (boundary event) на текущий элемент (можно повесить на задачу, вызов подпросцесса, ad-hoc подпроцесс, embedded подпроцесс). В данном случае будет отлавливаться только событие произошедшее в рамках данного элемента.
  2. Создать event подпроцесс, в котором стартовое событие будет типа Ошибка. Данный процесс будет обрабатывать событие произошедшее в любом месте диаграммы, в которой он находится.

При этом в свойствах bpmn элемента события нужно поставить свойство _CancelActivity _в_true _и в _ErrorRef прописать имя ошибки (должно совпадать с указанным в кнопке).

Примеры:

Тип обработки Процесс
Прокидывание ошибки на уровень выше. Имя ошибки у начального и конечного события должно быть разным, иначе jbpm зациклится.
Обработка ошибки event подпроцессом
Граничный обработчик (boundary event)
Граничный обработчик на встроенном подпроцессе

вопрос: почему error event не прерывает остальные задачи?

По концепции bpmn события не должны сами по себе вызывать никаких действий в процессе. Если нужно прекратить исходную задачу, то нужно использовать прерывающий boundary event или event subprocess. В случае ошибки event subprocess обязан быть прерывающим.

В случае jbpm, у него есть особенность, что event subprocess прерывает действие родительского процесса не при старте, а при финише, соответственно получается что и задачи открыто две.

Частный случай предыдущего: в Embedded-подпроцессе error event и переход в подпроцесс:


В этом случае процесс переходит в список задач с ошибкой. Нужно обходить указанную ситуацию с помощью первого примера типа обработки.

Доп. информация

  1. Описание BPMN событий от Camunda

Часто задаваемые вопросы

Вопрос Ответ
В каких случаях целесообразно использование кнопки вызова ошибки? Компонента Кнопка вызова ошибки предназначена для вызова события ошибки, она используется когда в bpmn процессе пользователю позволяется вызвать ошибку с последующим переходом на новую задачу.
Все ли свойства компоненты обязательны для заполнения Нет. Свойства компоненты определяются в зависимости от решаемой задачи.