我正在进行Mendix培训。我在错误处理部分的知识检查中遇到了一个问题。问题如下:
如果使用相同的微流,会发生什么情况,但主微流的错误处理是Custom with Rollback,而子微流的错误处理是Custom而不回滚?
正确答案是:
在将Customer对象提交到数据库时回滚Order,OrderLine和Log对象
问题上的微流是:
我的理解是:
当mainmicroflow发生错误时,应该回滚Create Order,但是由于主微流使用Custom with Rollback
而应该提交Customer in Customer,并且在子微流中,因为submicroflow,所以应该提交Orderline和Log。使用Custom without Rollback
。
问题:
为什么答案是正确的The Order, OrderLine, and Log objects are rolled back while the Customer object is committed to the database
以下是图片作为证据:
答案 0 :(得分:1)
注意我3年前曾经在他们的微流引擎(以及其他)上为Mendix工作,但很多事情都发生了变化。您似乎正在使用一个对我来说不熟悉的概念,即错误事件(退出子流程的地方),根据https://docs.mendix.com/refguide/error-event的文档重新抛出之前捕获的错误。
我猜这就是为什么会发生这种情况,并且如果你在处理错误后退出带有正常结束事件的submicroflow,则会期望提交订单/订单/日志。