Редактор BPMN

Используйте OpenBPM BPMN Designer для редактирования диаграмм BPMN в IntelliJ IDEA. Конструктор BPMN открывается автоматически при открытии существующего файла .bpmn. Если вы создаёте новую диаграмму через OpenBPM Studio, она также автоматически откроется в Конструкторе.

bpmn designer

Интерфейс конструктора BPMN состоит из следующих элементов:

Холст (Canvas)

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

Палитра BPMN (BPMN Palette)

(1)

Палитра BPMN содержит полный набор элементов для построения диаграмм BPMN.

Действия процесса (Process Actions)

(2)

Панель доступных действий для процесса.

Режимы редактора (Editor Modes)

(3)

Панель выбора режима просмотра. Доступно три режима: только XML, XML и модель, только модель.

Инспектор BPMN (BPMN Inspector)

(4)

Панель инспектора отображает атрибуты выбранного элемента и позволяет их редактировать.

Кнопка видимости (Visibility Button)

(5)

Переключатель отображения панели инспектора.

Редактор BPMN

Редактор BPMN позволяет создавать процессы непосредственно в среде IDE.

Функция запуска браузера JCEF в отдельном процессе была реализована в IntelliJ IDEA 2025.1+ для повышения стабильности (чтобы проблемы с браузером не влияли на основной процесс IDEA). Однако в настоящее время существует ряд нерешённых проблем, мешающих корректной работе JCEF.

OpenBPM Studio по умолчанию отключает этот параметр. Это необходимая мера для стабильной работы JCEF до выхода соответствующего патча от JetBrains. Настройка доступна в разделе Settings → Language & Frameworks → OpenBPM → Enable JCEF in separate process.

Основные операции

Добавить элемент

Два способа:

  • Перетащить новый элемент из палитры на холст

  • Добавить элемент после существующего через контекстное меню

Изменить тип элемента

  1. Выберите элемент на диаграмме (щелчок по элементу)

  2. Нажмите на значок гаечного ключа в контекстном меню

  3. Выберите новый тип элемента из выпадающего списка

Изменить цвет заливки элемента

  1. Выберите элемент на диаграмме

  2. Нажмите на значок кисти в контекстном меню

  3. Выберите цвет заливки

Удалить элемент

  1. Выберите элемент на диаграмме

  2. Нажмите на значок корзины в контекстном меню

Панель свойств (BPMN Inspector)

bpmn designer inspector

Панель свойств позволяет изменять параметры выбранного элемента диаграммы. Если элемент не выбран, отображаются свойства процесса.

Поиск

(1)

Поиск атрибута по имени; при нажатии на значок отображается история поиска.

Ссылка <empty>

(2)

Открывает диалог редактирования многострочного текста. Если текст уже задан, первая строка отображается как ссылка.

v (стрелка вниз)

(3)

Открывает выпадающий список доступных значений.

+ (плюс)

(3), (4)

Открывает диалог настройки свойства (Inputs, Outputs, Field injection и т.д.) или мастер генерации элемента (Java Delegate, Execution Listeners и т.п.)

> (стрелка вправо)

(3)

Переход к коду.

Выбор пользовательской формы / DMN / Java Delegate из выпадающего списка

Инспектор BPMN позволяет выбирать существующие формы, таблицы и классы проекта из соответствующих выпадающих списков в свойствах.

Пользовательская форма

  1. Выберите элемент (например, стартовое событие)

  2. Установите Form → Form type в значение Camunda form

  3. Кликните в поле Form → Form reference

  4. Выберите форму из выпадающего списка

DMN

  1. Выберите элемент Business Rule Task

  2. Установите Implementation → Task Type в значение DMN

  3. Кликните в поле Implementation → Decision reference

  4. Выберите таблицу DMN из выпадающего списка

Java Delegate

  1. Выберите элемент Service Task

  2. Установите Implementation → Task Type в значение Java Class

  3. Кликните в поле Implementation → Class

  4. Выберите класс Java Delegate из списка

Генерация Task Listener / Execution Listener

OpenBPM Studio позволяет генерировать шаблоны классов Task Listener и Execution Listener.

Шаг 1. Выберите элемент на диаграмме процесса Шаг 2. Нажмите значок + в поле Execution Listeners или Task Listeners (для User Task)

Task Listener

Execution Listener

new task listener wizard

new execution listener wizard

Шаг 3. Укажите значение параметра Event:

Task Listener

Assignment

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

Create

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

Complete

Вызывается при завершении задачи пользователем. Используется для постобработки: обновления данных, запуска следующих шагов или логирования результатов.

Delete

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

Execution Listener

Start

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

End

Срабатывает при завершении элемента процесса (активности или всего процесса). Используется для очистки ресурсов, фиксации результатов или обновления статусов.

Take

Активируется при прохождении по потоку последовательности (transition). Применяется для отслеживания пути выполнения процесса или проверки условий перехода.

Шаг 4. Укажите тип создаваемого Task Listener / Event Listener:

Java class

Прямое указание класса, реализующего интерфейс ExecutionListener. Полное имя класса должно быть доступно в classpath. Используется для сложной логики, требующей полноценного Java-кода.

Expression

Выражение, выполняемое при наступлении события. В объект можно передать DelegateTask и имя события (task.eventName). Позволяет вызывать метод бина или обращаться к контексту выполнения без создания отдельного класса. Пример: ${myObject.callMethod(task, task.eventName)}

Delegate expression

Ссылка на бин (например, Spring Bean), реализующий интерфейс ExecutionListener. Указывается в формате ${beanName}. Обеспечивает простую инъекцию зависимостей и повторное использование логики.

Если выбран тип Expression, появляется поле для ввода выражения. Если выбран Java class или Delegate expression, доступны действия:

  • Выбор существующего класса из выпадающего списка (v значок)

  • Создание нового класса (+ значок)

Нажатие + вызывает мастер создания нового Execution Listener / Task Listener:

create execution listener wizard

Class Name

Имя создаваемого класса

Package

Пакет, в который будет помещён сгенерированный класс

Нажатие кнопки OK создаёт класс в указанном пакете, а поле Listener Class в диалоге New Execution Listener (или Task Listener) заполняется автоматически.

Генерация Java Delegate

Инспектор BPMN позволяет вызвать мастер для генерации класса Java Delegate.

  1. Выберите Service Task на диаграмме

  2. Установите Implementation → Task Type в значение Java Class

  3. Кликните в поле Class, чтобы отобразить элементы управления

  4. Нажмите значок + для вызова диалога генерации класса Java Delegate

new java delegate class wizard

Class Name

Имя создаваемого класса

Package

Пакет, в который будет помещён сгенерированный класс

После нажатия OK сгенерированный класс откроется в редакторе кода.

Развёртывание

Редактор BPMN позволяет развернуть процесс на удалённом движке Camunda/Operaton. Чтобы вызвать мастер развёртывания, нажмите на значок ракеты на панели инструментов редактора. Необходимо наличие корректно настроенного подключения к внешнему движку.

deployment wizard

Deployment name

Уникальное имя для идентификации пакета развёртывания. Позволяет легко находить и администрировать конкретные версии процессов.

Enable duplicate filtering

Фильтрация на уровне отдельных файлов. Пропускает повторное развёртывание неизменённых ресурсов (например, диаграмм BPMN). Экономит место в базе данных, предотвращая создание дублей.

Deploy changed only

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

Deployment source

Источник, из которого инициировано развёртывание (например, "OpenBPM Studio"). Используется для аудита и отслеживания происхождения развёртываний.

Tenant ID

Идентификатор арендатора в многопользовательской архитектуре. Позволяет изолировать процессы и данные различных клиентов или подразделений в одном кластере Camunda.