提交更改错误后sapui5 odata恢复模型

时间:2019-02-24 12:26:48

标签: odata sapui5 sap-web-ide web-ide

我已经显示了一个项目列表(聚合绑定),并显示了每个项目的编辑按钮以编辑项目的值。 编辑按钮会打开一个弹出窗口,我可以在其中更改值。

我正在使用双向绑定,并且在编辑弹出窗口中的值并按弹出的“确定”按钮后调用了commitChanges()。

submitChanges具有两个回调-成功和错误。 现在,当后端出现错误时(例如,另一个用户正在编辑该项目),我可以处理并显示错误消息。并且数据不会在后端更改。 但是,尽管有错误,模型本身(前端)还是发生了更改。

这是OData服务本身必须处理的吗? 还是我应该在前端做点什么?调用resetChanges()并没有帮助-在commitChanges之后,没有要还原的更改。

是否有任何示例或最佳做法?

1 个答案:

答案 0 :(得分:1)

如果submitChanges不成功,并且您进入错误处理程序,则数据将保留在前端的“已编辑”格式中(因此您可以尝试再次提交)。

由您的前端逻辑决定做什么:

  • 默认为继续编辑并尝试稍后提交
  • 一个常见的替代方法是resetChanges(在submitChanges不成功之后进行ARE !!),然后在oModel.refresh之后从后端获取新副本,因此用户可以再次开始编辑

而且-当然,您可以向用户提供选择-重置所有内容并从后端获取新副本-或也许每行中都有一个重置按钮,以便能够分别重置单个项目。