Size: a a a

Camunda BPM Group

2019 July 17

AK

Artem Kuraev in Camunda BPM Group
Это так и должно работать, в данном решении бизнес-логика и UI явно отделены от бизнес-процесса
источник

DG

Dmitrii Goncharov in Camunda BPM Group
Fedor Secret
Спасибо большое что поделились)
Как мне показалось, ваше решение позволяет по максимуму использовать возможности камунды. Судя по всему вы используете form service для форм и обращаетесь напрямую камунде по rest.
У меня сразу вопрос возник. А не слишком ли «умным» становится ui? Так как в него переносится много логики + он напрямую управляет процессом. И хорошая ли это практика в конечном итоге?
FormService не используем. В описании таска в модели прописываем formKey - его достаточно, чтобы сроутиться нашему УИ (Dart) на нужную форму.
По поводу умности UI. Как Артем и написал такое решение позволяет отделить бизнес-логику от бизнес-процесса. Кроме прочего позволяет без допиливания использовать движок в других процессах. Т.е. сервис с камундой ничего не знает об окружении - двигает процесс и все.
источник

PO

Petr Orlov in Camunda BPM Group
Fedor Secret
Спасибо большое что поделились)
Как мне показалось, ваше решение позволяет по максимуму использовать возможности камунды. Судя по всему вы используете form service для форм и обращаетесь напрямую камунде по rest.
У меня сразу вопрос возник. А не слишком ли «умным» становится ui? Так как в него переносится много логики + он напрямую управляет процессом. И хорошая ли это практика в конечном итоге?
Что значит слишком умный? Если речь про то, что UI форма знает, какой интерфейс она вызывает, то это не показатель её умности. В любом случае UI общается с Camunda по принципу: дай что-то поделать -> на я сделал -> дай что-то поделать. Процесс в этом случае решает куда идти и что выдавать. Контексты разделены, лишнего в камунде нет, всё хорошо. У нас похожая реализация, но со своими нюансами.
источник

F

Fedor Secret in Camunda BPM Group
@Petr_A_O @OldWiseCat @goncharovdv  спасибо за уточнение) После того как описали, становится все логично
источник

IP

Igor Petetskikh in Camunda BPM Group
скажите, а у сервис таска есть максимальное время выполнения?
источник

IP

Igor Petetskikh in Camunda BPM Group
после которого камунда на уровне движка будет кидать таймаут или еще что-то
источник

NG

Nick Groznykh in Camunda BPM Group
Да
источник

NG

Nick Groznykh in Camunda BPM Group
Она попробует откатить транзакцию
источник

IP

Igor Petetskikh in Camunda BPM Group
понятно
источник

NG

Nick Groznykh in Camunda BPM Group
Если память не изменяет то по умолчанию 10 секунд
источник

NG

Nick Groznykh in Camunda BPM Group
Но могу наврать
источник

D

Dima in Camunda BPM Group
Привет!
Как вы делаете обработку ошибок? Бросаете BpmnError?
Допустим есть такие ситуации: 1) нужно уйти на ретрай 2) необходимая переменная отсутствует в процессе 3) нужно выйти из подпроцесса
На сколько я понимаю, если какую-либо ошибку не обработать, то процесс упадет
источник

DG

Dmitrii Goncharov in Camunda BPM Group
Igor Petetskikh
скажите, а у сервис таска есть максимальное время выполнения?
У JobExecutor Есть максимальное время ожидания по дефолту 5 минут, после этого сервис таск начнет выполняться снова
источник

AK

Artem Kuraev in Camunda BPM Group
Dima
Привет!
Как вы делаете обработку ошибок? Бросаете BpmnError?
Допустим есть такие ситуации: 1) нужно уйти на ретрай 2) необходимая переменная отсутствует в процессе 3) нужно выйти из подпроцесса
На сколько я понимаю, если какую-либо ошибку не обработать, то процесс упадет
1. Ретрай - обычный эксепшн
2. Уйти куда-то по процессу - явный error boundary event и роутинг
источник

D

Dima in Camunda BPM Group
А как в таком случае обрабатывается ретрай?
источник

D

Dima in Camunda BPM Group
Это error boundary или incident или что то иное?
источник

AK

Artem Kuraev in Camunda BPM Group
Кубик заново начинается и после трёх раз будет инцидент
источник

D

Dima in Camunda BPM Group
Спасибо, сейчас потестирую. А что по поводу отсутствия переменной?
источник

AK

Artem Kuraev in Camunda BPM Group
Так всё зависит от того, какой результат вы ждёте. Если это бизнес ошибка , на которую процесс должен среагировать и куда-то пойти это одно, если хотите инцидент это другое
источник

AK

Artem Kuraev in Camunda BPM Group
Можно и так и так сделать
источник