繁体   English   中英

ODATA 请求中止

[英]ODATA request aborted

有时,odata 请求在我在 SAPUI5 中的特定应用程序中崩溃(iwfnd/error_log 中的 GW 端没有错误)。 如果我在 chrome 网络选项卡中重播呼叫,它总是有效。

我收到此错误:发生以下问题:请求中止 -

使用的 SAPUI5 版本是:“1.38.9”。 这是堆栈:

O   @   sap-ui-core.js:formatted:9550
Q.fatal @   sap-ui-core.js:formatted:9571
h._handleError  @   ODataModel.js:6
k   @   ODataModel.js:6
(anonymous) @   ODataModel.js:6
i.abort @   datajs.js:17
abort   @   ODataModel.js:6
c.abortPendingRequest   @   ODataListBinding.js:6
c.filter    @   ODataListBinding.js:6

在“主详细信息”方案的情况下,当我单击“主”列表中的项目时,我会在详细信息中过滤一些数据。 问题是数据实际上并未随着 Odata 请求中止而更新。 这是代码的简短版本:

    _onRouteMatched: function(oEvent) {
filterCharac.push(new sap.ui.model.Filter("Zrwk", sap.ui.model.FilterOperator.EQ, oArgs.idRework));
      filterCharac.push(new sap.ui.model.Filter("Ztasknb", sap.ui.model.FilterOperator.EQ, oArgs.taskId));
      this.getView().byId("TableCharac").getBinding("items").filter(filterCharac);
      this.getView().byId("StatusLog").getBinding("items").filter(new sap.ui.model.Filter("Zrwk", sap.ui.model.FilterOperator.EQ, oArgs.idRework));
      this.getView().byId("lowestItems").getBinding("items").filter(filterCharac);
      var commentsFeed = this.getView().byId("Comments");
      var oFilter = new sap.ui.model.Filter("Zrwk", sap.ui.model.FilterOperator.EQ, oArgs.idRework); // name between A and G
      commentsFeed.getBinding("items").filter(oFilter);

}

这主要发生在获取某些数据(例如完整列表内容)的请求被中止时,因为在请求完成之前对列表应用了过滤(或排序)。 因为 UI5 检测到最初请求的数据将不再“有用”,所以它会中止请求。

UI5 代码中的以下注释对此进行了解释( 代码在 github 上):

/*    
 * Aborts the current pending request (if any).
 *
 * This can be called if we are sure that the data from the 
 * current request is no longer relevant, e.g. when filtering / 
 * sorting is triggered or the context is changed.
 */

从理论上讲,这不应该影响您的应用程序的行为(但我想在控制台中看到错误很难看)。 您可以通过更早地在聚合上应用过滤来避免这种情况(例如,直接在视图中而不是在控制器内部)。

如果您可以向我们展示您正在过滤的聚合(可能来自 JS)以及您如何在视图中定义它,也许我们可以提出更具体的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM