Опционально (чтобы избавиться от повторяющегося warning о Nashorn JS engine):
Добавить в параметры (Run/Debug Configuration - Override parameters)
nashorn.args=--no-deprecation-warning
-
Запустить Application
-
Выполнить запрос
rest-req/start-process.http
Прим: Если этот же запрос выполнить повторно сразу - получим ошибку, содержащую текст
Process for this carID is already running
Можно также выполнить
rest-req/start-process-DEBUG.http
, запустив тот же процесс, но с debug-формами. Debug-формы это пустые user-task, благодаря которым процесс будет останавливаться - до отжатия кнопки Complete вTasklist
- и его будет удобнее анализировать вCockpit
) -
Результат: В консоли приложения будут сменяться значения
processStatus
и логироваться запросы к мокам.
Закомментив/раскоментив url-ы сервисов в конфиге conf/bpm.properties
и запустив новый процесс,
можно выбрать нужный для теста ответ.
Если процесс остановился в ожидании события о доступности машины, то
выполнить запрос rest-req/car-available-event-message.http
Так же всегда можно отправить сообщение об Отмене процесса:
выполнить запрос rest-req/cancel-process-message.http
(!) Измененные conf/bpm.properties
подтянутся только в новом запущенном процессе.
http://localhost:8080/camunda/app/cockpit/default/#/login
login: b
pass: b
http://localhost:8080/camunda/app/cockpit/default/#/processes
Выбираем наш процесс:
- жмем на
Carsharing - update firmware
илиCarsharing - update firmware (with DEBUG forms)
- Видим запущенные инстансы процесса, верхний - последний, выбираем его.
- Видим актуальные переменные процесса (в т.ч. конфиги)
Путь процесса может быть увиден в истории его выполненных задач (activity).
Запросить их можно, запустив запрос rest-req/get-history-activities-of-process.http
(подставив нужный processInstanceId
)
В ответе обращаем внимание на поля, описывающие задачи, напр:
"activityName": "[CarService] Check state", "activityType": "serviceTask"
Либо выполнив SQL запросы, перейдя в DB console
:
SELECT * FROM ACT_HI_PROCINST
SELECT * FROM ACT_HI_ACTINST WHERE PROC_INST_ID_ = ' ... '
http://localhost:8080/camunda/app/tasklist/default/#/login
login: b
pass: b
-
Жмем
Add a simple filter
(в 1-ый раз), либо там же с целью обновления жмемAll tasks
-
Выбираем последнюю задачу (верхняя во 2-ой колонке)
-
опционально - жмем на вкладку
Diagram
, видим где эта задача в bpmn процесса -
Жмем
Claim
-
Жмем
Complete
JDBC URL jdbc:h2:file:./camunda-h2-database
login: sa
pass:
Пример запроса:
SELECT * FROM ACT_HI_PROCINST
Рекомендуется установить, если потребуются правки процессов
src/main/resources/carsharing_update_firmware.bpmn
,
src/main/resources/carsharing_update_firmware_debug.bpmn
- "повторы делаем раз в 5 минут" -- между повторами RESERVE_ATTEMPTS ожидание 5 минут
- Обернуть внешними эндпойнтами, под конретное ТЗ (например, слушать очередь Event Bus и триггерить такие же message с пом. Java API)
- Добавить авторизацию на Camunda REST API
- Логировать из процесса правильно, сделав java-делегат BpmnLogger
- Не использовать ограниченный по функционалу http-connector (вместо - делегат с либой Jsoup)