Mendix Обработка ошибок для пользовательских ошибок
Я сейчас тренируюсь на Мендиксе. И я был прослушан вопросом в проверке знаний для части Обработка ошибок. Вопрос ниже
Что произойдет, если будут использоваться те же микропотоки, но обработка ошибок в основном микропотоке - "Пользовательский с откатом", а обработка ошибок в субмикропотоке - "Пользовательский без отката"?
И правильный ответ:
Объекты Order, OrderLine и Log откатываются, пока объект Customer фиксируется в базе данных.
Микропоток по вопросам:
Мое понимание таково:
Когда происходит ошибка в основном микропотоке, необходимо откатить создание заказа, но следует выполнить изменение в клиенте, так как основной микропоток использует Custom with Rollback
и в субмикропотоке как Orderline, так и Log должны быть зафиксированы, так как субмикропоток использует Custom without Rollback
,
Вопрос:
Почему правильный ответ The Order, OrderLine, and Log objects are rolled back while the Customer object is committed to the database
Ниже изображение в качестве доказательства:
1 ответ
Заметьте, что раньше я работал на Mendix на их микропотоке (среди прочего) 3 года назад, но многое изменилось. Кажется, вы используете новую для меня концепцию - событие ошибки (когда вы выходите из своего субмикропотока), которое согласно документации на https://docs.mendix.com/refguide/error-event сбрасывает пойманную ошибку ранее.
Я предполагаю, что именно поэтому это происходит и ожидается, что order / orderline / log будет зафиксирован, если вы выйдете из этого субмикропотока с нормальным конечным событием после обработки ошибки.