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

时间:2019-04-04 11:56:16

标签: odata sapui5

我正在尝试在单个批处理请求中使用多个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执行多个批处理请求并获取每个组的响应。

1 个答案:

答案 0 :(得分:2)

我相信您希望将每个更改单独分组。您需要使用变更集(而不是组)的概念。

  1. 使用createEntry方法代替create
  2. 对于每个呼叫,请使用不同的changeSetId,但要使用相同的groupId
  3. 通过submitChanges呼叫groupId