Sapui5 WebIDE CRUD模板问题和OData错误

Sapui5 WebIDE CRUD模板问题和OData错误,sapui5,Sapui5,是否有人成功基于WebIDE Fiori CRUD模板的应用程序?它似乎无法正确处理批处理OData请求中的错误 例如,当您在主列表中选择一个项目并单击“编辑”进行更新时,我输入了一个我知道会在后端导致错误的值。发送批处理OData请求,并且响应成功(整体),即使在内部更新失败。您会在控制台中看到错误的Request400错误,但应用程序不会对此作出反应 使用ErrorHandler.js对象,您可以轻松地编写一个消息框来显示一条漂亮的错误消息,但是应用程序似乎会感到困惑,并且总是导航到列表中的

是否有人成功基于WebIDE Fiori CRUD模板的应用程序?它似乎无法正确处理批处理OData请求中的错误

例如,当您在主列表中选择一个项目并单击“编辑”进行更新时,我输入了一个我知道会在后端导致错误的值。发送批处理OData请求,并且响应成功(整体),即使在内部更新失败。您会在控制台中看到错误的Request400错误,但应用程序不会对此作出反应

使用ErrorHandler.js对象,您可以轻松地编写一个消息框来显示一条漂亮的错误消息,但是应用程序似乎会感到困惑,并且总是导航到列表中的顶部项目,但是ODataModel仍然有挂起的更改,因此如果您尝试导航,它将显示“数据丢失”对话框

考虑到代码的本质,调试它是非常痛苦的,承诺中有承诺,承诺中有承诺,回调随处可见


也许有一个更好的CRUD应用程序示例可以作为应用程序的基础?

好吧。。。。再进行一些调试,我发现Fiori CRUD模板出现的所有奇怪问题都是由于模型默认在更改后自动刷新造成的。 这通常是一个不错的功能,因为用户不必点击刷新按钮来查看添加新条目或编辑对象后所做的更改

但是这个模型上的自动刷新似乎破坏了批量模式下的更新。 首先,如果批量更新完全成功,应用程序将导航到主列表中的第一个项目-不应该这样。 第二,当这批产品出现错误时,就会发生各种奇怪的事情

所以为了解决这个问题,我只需在oModel.submitChanges()调用之前调用oModel.setRefreshAfterChange(false)(仅在更新时,而不是创建时)。在保存完成后的回调中,我们将自动刷新重置为true

crud应用程序现在按预期工作,可以正确处理odata批处理更新中的错误,而无需奇怪的ui更新

Jason

但他们提供的错误消息非常简单,不支持解析错误体,如:

<code>005056A509B11ED199D882461C8C40FE</code><message xml:lang="en">The Data Services Request version '3.0' is not supported for the request payload.</message><
我们必须完成解析错误的代码,然后显示在消息框中