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

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

我正在尝试在单个批处理请求中使用多个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;

                    }
                });

这是我得到的回应。

enter image description here

在这里它只执行第一组的请求,只返回一个批处理响应。

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

odata sapui5
1个回答
2
投票

我相信你想分别对每个变化进行分组。您需要使用变更集(非集合)的概念。

  1. 使用createEntry方法而不是create
  2. 对于每次通话,使用不同的changeSetId,但使用相同的groupId
  3. 打电话给submitChanges通过groupId
© www.soinside.com 2019 - 2024. All rights reserved.