I got multiple EntititySets which I want to update in my SAP Backend, therefore I fetch my data (payload) as JSON and put it in a request (its successfully in the node "data"):
Code:
var oTreeJSON = oTreeTable.getModel().getProperty("/root");
var oModel = sap.ui.getCore().getModel();
var batchChanges = [];
for (var i = 0; i < oTreeAll.length; i++) {
batchChanges.push(oModel.createBatchOperation("/sap/opu/odata/sap/MY_SERVICE/?$batch", "POST", oTreeAll[i]));
}
oModel.submitBatch();
My Request looks like this:
Where should it arrive in SAP (which method)? What am I doing wrong, there is no error anywhere, but no call arrived in my backend... Glad about every hint! Thanks.
Working example with reduced complexity:
var oEntry = {};
oEntry.MyId = "00000001";
oEntry.Value = "300";
batchChanges.push(oModel.createBatchOperation("MyEntitySet", "POST", oEntry, null));
oModel.addBatchChangeOperations(batchChanges);
oModel.setUseBatch(true);
oModel.submitBatch();
For the record, method calls:
oModel.addBatchChangeOperations(batchChanges);
oModel.setUseBatch(true);
In case you need set a breakpoint in backend for batch operations, just set a break point in method CHANGESET_BEGIN
or CHANGESET_END
.
Post my POST code for sap.ui.model.odata.v2.ODataModel
"models": {
"": {
"dataSource": "mainService",
"preload": true,
"settings" : {
"useBatch" : true,
"defaultBindingMode": "TwoWay",
"defaultCountMode" : "None",
//default is sap.ui.model.odata.UpdateMethod.Merge
"defaultUpdateMethod" : "Put"
}
}
}
var sPath = oView.getBindingContext().getPath();
oModel.setDeferredGroups(["editGroup"]);
oModel.update(sPath, oData, {groupId: "editGroup"});
oModel.update(sPath, oData2, {groupId: "editGroup"});
oModel.submitChanges({
groupId: "editGroup",
success: this.successCallback,
error: this.errorCallback
});
Actually, v2.ODataModel will useBatch by default, use update()
/create()
/delete()
without setDeferredGroups()
and submitChanges()
is OK. But in that way, I will get callback for each request, I use submitChanges
to merge the responses to one.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With