Подключение движка BPMN
| Для работы схем нужны три вещи: включённый плагин BPMN в конфигурации ERP, доступный движок Camunda и общий с ним брокер ActiveMQ. Все ключи ниже задаются в основной конфигурации. |
Включение плагина
plugin:bpmn.enabled=1
Ключ открывает меню BPMN и вкладку Схема БП в редакторе типа процесса. Без него меню и вкладка не показываются.
Клиент движка
ERP публикует схемы и запускает их экземпляры через REST API движка.
Клиент описывается в разделе api.camunda
по общим правилам HTTP-клиентов:
api.camunda.name=Camunda
api.camunda.url=http://<хост движка>:8080/
В url указывается адрес сервиса без engine-rest/: этот префикс ERP добавляет сам.
|
Чтобы в сведениях о BPMN-процессе была ссылка на экземпляр в Camunda Cockpit, задайте адрес, к которому ERP допишет идентификатор экземпляра:
plugin.bpmn.camunda.baseCockpitUrl=<адрес страницы экземпляра в Cockpit>
Запуск схемы при создании процесса
plugin.bpmn.listener.process.start=1
plugin.bpmn.log.failed.attempts.start.process=1
plugin.bpmn.listener.process.start включает запуск экземпляра схемы при создании процесса.
По умолчанию он выключен: процессы создаются, но схема для них не запускается.
Ошибка запуска не прерывает создание процесса. Процесс остаётся без схемы,
а сообщение об ошибке попадает в лог только при включённом
plugin.bpmn.log.failed.attempts.start.process (уровень DEBUG).
Если у новых процессов не появляются задачи схемы, начните проверку с этих двух ключей.
Брокер и обработчики сообщений
Движок сообщает ERP о задачах и завершении процесса через очереди ActiveMQ. ERP и движок должны работать с одним брокером:
amq.host=tcp://<хост брокера>:61616
amq.username=<пользователь>
amq.password=<пароль>
Сообщения принимают обработчики плагина Apache Camel,
поэтому плагин должен быть включён (camel.enabled=1).
Обработчик работает, только если его класс перечислен в camel.handler.<n>.class.
Для исполнения схем обязательны:
camel.handler.<n>.class=ru.bgcrm.plugin.bpmn.camunda.listener.task.user.UserTaskListener
camel.handler.<n>.class=ru.bgcrm.plugin.bpmn.camunda.listener.task.service.ServiceTaskListener
camel.handler.<n>.class=ru.bgcrm.plugin.bpmn.camunda.listener.process.ProcessListener
camel.handler.<n>.class=ru.bgcrm.plugin.bpmn.camunda.listener.timer.TimeEventListener
camel.handler.<n>.class=ru.bgcrm.plugin.bpmn.core.listener.ServiceTaskListener
camel.handler.<n>.class=ru.bgcrm.plugin.bpmn.core.listener.ProcessDeletedListener
camel.handler.<n>.class=ru.bgcrm.plugin.bpmn.core.temp.ProcessUpdateListener
Вместо <n> подставьте свободные номера.
| Очередь | Что передаётся |
|---|---|
|
Создание, завершение и отмену пользовательской задачи. |
|
Начало и окончание сервисной задачи. |
|
Завершение экземпляра схемы. |
|
Запрос времени срабатывания таймера. |
|
Внутренние шаги ERP при выполнении сервисной задачи. |
|
Удаление процесса ERP, у которого есть экземпляр схемы. |
|
Выполнение действия блока автоматизации. |
Сообщение, которое обработчик не смог принять после повторных попыток,
уходит в очередь с суффиксом .DLQ. Растущая DLQ-очередь — признак того,
что обработчик не подключён или падает.
Блоки автоматизации
Каждому блоку автоматизации, который используется в схемах, нужен свой обработчик:
-
действие на сервисной задаче отправляется в очередь
erp.automation.<id блока>. Её слушатель тоже указывается вcamel.handler.<n>.class; встроенные слушатели лежат в пакетеru.bgcrm.plugin.bpmn.automationhandlers. Без слушателя сообщение остаётся в брокере, и сервисная задача не завершается; -
условие ветки шлюза вызывается внутри приложения по ключу
transport.runtime.interface.<id блока>=<класс>. Без него выбор ветки завершается ошибкой «Не найден адресат для запроса»; -
источники значений полей блока регистрируются ключами
valuesProvider.provider.<имя>(списки) иfieldsProvider.provider.<имя>(наборы полей). Без них список в настройке блока остаётся пустым.
Справочник BPMN → Автоматизации показывает у каждого блока найденные проблемы регистрации: выключенный Camel, отсутствующий слушатель очереди, обработчик условия или источник значений. Проверяйте его после изменения конфигурации.
Проверка
-
В меню есть пункт BPMN, в редакторе типа процесса — вкладка Схема БП.
-
В справочнике BPMN → Автоматизации у используемых блоков нет проблем регистрации.
-
Опубликованная схема видна в Camunda Cockpit.
-
У нового процесса типа со схемой в карточке появилась первая пользовательская задача.
-
Очереди
camunda..DLQиerp..DLQв брокере пусты.