Size: a a a

Camunda BPM Group

2022 January 31

А

Алексей in Camunda BPM Group
Нет, ничего для двух систем вводить не нужно будет. Этапы процесса для всех одинаковы и задача любого из фронтов протолкнуть процесс дальше. Если фронт не может это сделать значит 🤷🏼‍♂️
источник

А

Алексей in Camunda BPM Group
Я являюсь системным архитектором. Ограничения мне понятны и заключаются в привязывании отдельных элементов фронта к текущему состоянию процесса. Проблем особых в этом не вижу. Даже наоборот фронт становится проще и он ничего не знает про БП. Ему нужно просто реагировать на изменения БП один к одному. Проще и не придумать.
источник

А

Алексей in Camunda BPM Group
Ок, будем пробовать. А там посмотрим)
источник

N

Nikolay in Camunda BPM Group
Добрый день!
Есть Service Task (Java Delegate), в них я кидаю BPMNError (в случае отсутствия попыток реповтора у джоба), которые ловлю Error intermediate event (для последующей нотификации).
Когда в таске кидаю обычный java-эксепшн, все работает штатно: выполнение сервис таска прекращается, уходит на реповтор. А вот когда кидаю BPMNError - движок начинает жаловаться на отсутствие выходной переменной (can't resolve identifier ${...}). То есть такое ощущение, что токен сдвигается, не смотря на то, что активити не было завершено успешно. Это нормальное поведение?
источник

N

Nikolay in Camunda BPM Group
serviceTask с asyncBefore
источник

DP

Dmitrii Pisarenko in Camunda BPM Group
BPMNError нужны для обозначения бизнесовых проблем (товар на складе кончился, например), а не технических.
источник

N

Nikolay in Camunda BPM Group
А есть какой-то декларативный паттерн для хэндлинга подобных ситуаций с протухшим джобом?
источник

N

Nikolay in Camunda BPM Group
Пробовал через IncidentHandler и Message Event - приходится костылить, мб что-то более изящное есть?
источник

DP

Dmitrii Pisarenko in Camunda BPM Group
Почему нельзя выбрасывать обычный Java Exception (обозначающий технический сбой) вместо BPMNError?
источник

N

Nikolay in Camunda BPM Group
И ловить его intermediate error event?
источник

N

Nikolay in Camunda BPM Group
Кидать можно, как выяснилось, но присходит то же самое: камунда жалуется на отсутствие выходной переменной
источник

EZ

Edward Zakharov in Camunda BPM Group
Да норм кидать bpmnerror.
У вас ошибка то в том что на схеме идёт обращение к какой-то переменной а её нет в контексте инстанса видимо. Или какая-то ошибка в скрипте. Но тут сложно помочь и понять без вашей схемы, и без названия переменной, и без понятия какой код и как её пишет в контекст
источник

EZ

Edward Zakharov in Camunda BPM Group
А то что вы описали это в целом норм, но возможно проблема в том что у вас происходит откат транзакции этого шага, и поэтому то что вы записывали в контекст на этом шаге в итоге тоже потерялось/откатилось
источник

YY

Yo Yo in Camunda BPM Group
Если переменная формируется в service task и потом мапится через output, то движок попытается смапить эту переменную, даже если таска завершилась с ошибкой (bpmnError). Но т.к. её нет, мы получим вашу ошибку.
Но это так, чисто предположение.
источник

N

Nikolay in Camunda BPM Group
Ага, переменной нет, потому что сервис таск завершается ошибкой, я ее в контекст не записываю. Когда я кидаю ошибку и не ловлю - все ок (будет репроцессинг или инцидент с протухшим джобом). А вот когда я пытаюсь ее словить через event - движок почему-то пытается ее замапить и натыкается на ее отсутствие
источник

YY

Yo Yo in Camunda BPM Group
Как вариант, используйте в output ${execution.getVariable('someVar')}
источник

N

Nikolay in Camunda BPM Group
спасибо, хотелось бы сперва попробовать легальными средствами решить)
источник

N

Nikolay in Camunda BPM Group
Вот более детальное описание

https://forum.camunda.org/t/service-task-completes-despite-bpmnerror/32525
источник

EZ

Edward Zakharov in Camunda BPM Group
Да на какую переменную то ругается?)) в каком месте ругается?))
источник

EZ

Edward Zakharov in Camunda BPM Group
Где идет обращение к этой переменной?))
источник