批量更新会触发所有请求

时间:2017-08-03 18:28:03

标签: odata sapui5

我希望使用sap.ui.model.odata.v2.ODataModel进行更新,如下所示:

oModel.setUseBatch(true);
oModel.setDeferredGroups(["batchUpdateGroup"]);


oModel.update("/myPath", myData1, {
    groupId: "batchUpdateGroup"
    merge: false
});


oModel.update("/myPath", myData2, {
    groupId: "batchUpdateGroup"
    merge: false
});

oModel.submitChanges({
    groupId: "batchUpdateGroup",
    success: function(oData) {
        console.log("Success!");
    },
    error: function(oError) {
        console.log("Error!");
    }
});

submitChanges会触发更新,但也会触发模型中的其他请求,例如读取请求或绑定。我怎么做错了" groupId"?

1 个答案:

答案 0 :(得分:1)

因为您使用了update方法的错误语法。

正确的看起来像这样:

oModel.update("/myPath", myData1, {
    groupId: "batchUpdateGroup"
});

P.S。如果您不知道是否需要使用" changeId",请不要使用它。

<强> UPD: 此外,refreshAfterChange会更新您更新的实体所涉及的所有绑定。