go-bpm

Живое демо

Запустите процесс и посмотрите, как его ведёт движок

На этом сервере работает демо-сервис go-bpm — examples/demo из репозитория с PostgreSQL. Выберите процесс, запустите экземпляр и следите за ним: статус, пройденные элементы, переменные. Полная история на схеме и все экземпляры — в консоли.

Проверяем, отвечает ли демо…

Согласование заявки

TestUserTask
TestUserTask: «Согласовать заявку», шлюз «Согласовано?», возврат на «Исправить заявку»

Задачи пользователей как в Camunda 7. Заявку согласует менеджер из группы managers; вернёт на исправление — задача сразу назначится инициатору alice, после исправления снова уйдёт на согласование.

Как устроен процесс

Бизнес-правила DMN

TestDecision
TestDecision: две задачи бизнес-правил подряд

Две задачи бизнес-правил подряд: таблица Decision_1 по входам a и b выбирает c. Решение скомпилировано в Go — цепочка if.

Как устроен процесс

Шлюзы, скрипт и call activity

TestBpmProcess
TestBpmProcess: метод, service task, call activity, шлюз по amount, скрипт и параллельные ветки

Метод, service task, вызов процесса testSubProcess, exclusive gateway по amount. При amount = 1 — ветка «нет»: скрипт и две параллельные ветки со слиянием.

Как устроен процесс

Параллельные service task

testSubProcess
testSubProcess: метод и три параллельные ветки service task со слиянием

Три параллельные ветки из service task: каждая ставит свою задачу очереди, обработчики разных jobType выполняются одновременно, слияние ждёт все три.

Как устроен процесс

Таймеры и ошибки

TestTimerAndException
TestTimerAndException: граничные таймеры и ошибки, промежуточный таймер

Промежуточный таймер на 3 секунды и граничные события. Методы демо — заглушки, поэтому процесс идёт по основному пути; как заставить сработать граничные события — в разборе примера.

Как устроен процесс

Консоль /ui/

Встроена в go-bpm: webui.Register(mux, history). Здесь она та же, что в демо-сервисе, — со всеми процессами и экземплярами.

Открыть консоль