具有多个不同组的 SAPUI5 OData V2 批处理操作

SAPUI5 OData V2 Batch Operations with multiple differed groups

我正在尝试在单个批处理请求中使用多个 groupid 执行批处理操作。并且需要在两个不同的批响应中获得结果。

但是我发起请求时只提交了一组,只得到了一批响应。

这是我的代码

oModel = this.getOwnerComponent().getModel("mymodel");


                $.sap.itemArray.forEach(function (entry) {
                    if (p < $.sap.itemArray.length) {
                        var oData = {
                            "AUTO_ID": entry.Id,
                            "VALUE": entry.Value,

                        };
                        mParameters.groupId = "createGroup1";
                        oModel .create("/Table1", oData, mParameters);

                    }
                    p++;
                });


for (p = 0; p < $.sap.itemArray2.length; p++) {
                    var oData = {
                        "Item2ID" : $.sap.itemArray2[p].ItemsId,
                        "Value" : $.sap.itemArray2[p].Value

                    };

                    mParameters.groupId = "createGroup2";

                    oModel .create("/Table2", oData, mParameters);
                    }


    oModel.setDeferredGroups(["createGroup1","createGroup2"]);
                oStyleSizeModel.submitChanges({
                    success: function(recievedObject){
                          var responses = recievedObject.__batchResponses;
                      },
                    error: function (oError) {
                        var oBody = oError.responseText;

                    }
                });

这是我得到的回复。

而这里只执行了第一组的请求,只返回了一个批响应。

如何使用不同的组 ID 执行多个批处理请求并获取每个组的响应。

我相信您希望分别对每个更改进行分组。您需要使用更改集(而不是组)的概念。

  1. 使用 createEntry 方法代替 create
  2. 对于每个调用,使用不同的 changeSetId,但相同的 groupId
  3. 调用 submitChanges 传递 groupId