如何拆分批处理OData请求

问题描述 投票:0回答:1

我正在使用'批量'OData请求。但是,在同一请求中调用两个单独的实体读取。

如何将这些分成两个单独的批处理请求?

EG

surveyModel.read("/ResultOfflineSet", {
  filters: [
    new Filter("QuestionId", FilterOperator.EQ, questionId),
    new Filter("JobId", FilterOperator.EQ, self.jobId)
  ],
  success: function(oData, oResponse) {
    resolve(oData);
  },
  error: function (oError) {
    reject(false);
  }
});

然后......

// Retreive Category Info and set up panel info.
_.each(oViewData.categories, function(result, index) {
  surveyModelCat.read("/CategorySet", {
    filters: [
      new Filter("CategoryId", FilterOperator.EQ, index)
    ],
    success: function(oDataCategory) {
      oViewData.categories[index].categoryId = oDataCategory.results[0].CategoryId;
      oViewData.categories[index].categoryDesc = oDataCategory.results[0].CategoryDesc;
      oViewData.categories[index].expanded = false;
      oViewData.categories[index].complete = false;
      oViewModel.setData(oViewData);
      resolve(oDataCategory);
    },
    error: function(oError) {
      self.getView().byId("Page1").setVisible(true);
      self.busyDialog.close();
    }
  });
}); 

在运行应用程序并查看Chrome中的“网络”选项卡时,我可以看到resultOfflineSetCategorySet的调用是同一个$batch请求的一部分。

为什么他们不是两个单独的$批次?

sapui5
1个回答
0
投票

嗯,你可以尝试两件事。首先,oData模型有一个名为useBatch的设置,可以设置为false。否则,在读取结束时,oData模型具有可以调用的submitBatchRequests方法,该方法将强制刷新要批处理的所有待处理请求。这些都应该解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.