SAPUI5使用post创建多个值(批处理)

时间:2017-03-09 13:14:59

标签: odata sapui5 netweaver

要在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);

但它仍然无效。我该如何解决?

1 个答案:

答案 0 :(得分:3)

我想你想把几个创建请求捆绑到一个批处理中,对吗?

对于ODataModel create方法,您可以定义其他groupId。见下文。

  

mParameters。的的groupId ?请求组的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);