1

要在 SAP 后端发布数据,我使用:

oModel.create("/Dummyset", oEntry); //so far it works fine

现在我的 oEntry 中有多行,但它不起作用。我找到了以下解决方案

aBatchOperation.push(contactBatchOperation);        
oModel.addBatchChangeOperations(aBatchOperation);
oModel.submitBatch(fSuccess,fError,true);

但不幸的是,它不适用于我的 OData 版本 2.0 。我总是得到一个错误

“addBatchChangeOperations 不是函数”

然后我试图找出可以与 OData v2 一起使用的功能。我能找到这个。

batchChanges.push(oModel._createBatchRequest("/AttributesSet", "POST", wert.Atrributes[i].name));
oModel._submitBatchRequest(oModel.setProperty("/AttributesSet", batchChanges), true);

但它仍然不起作用。我如何解决它 ?

4

1 回答 1

4

我想您想将多个创建请求捆绑到一批中,对吗?

对于 ODataModel创建方法,您可以定义额外的 groupId。见下文。

m参数。组标识?请求组ID;属于同一组的请求将被捆绑在一个批处理请求中

基本上,您可以使用可以自己定义的相同groupId提交多个创建。

首先,您必须为 ODataModel设置一定的deferredGroups

var aDeferredGroup = oModel.getDeferredGroups().push("batchCreate");
oModel.setDeferredGroups(aDeferredGroup);

然后你调用多重创建。

var mParameters = {groupId:"batchCreate"};
oModel.create("/Dummyset", oEntry1, mParameters);
oModel.create("/Dummyset", oEntry2, mParameters);
oModel.create("/Dummyset", oEntry3, mParameters);

最后,您可以为多个请求一次调用submitChanges 。

oModel.submitChanges(mParameters);
于 2017-03-09T15:12:17.100 回答