Skip to Content

Make batch calls with multiple changeset ids in SAP UI5

Hello,

There are use cases where you might need to send multiple create, edit and delete request in a single batch. By default UI5 send the multiple request in a single batch with same change sets ids. So if any record fails, all the records are rolled back if changeset is not handled in backend.

With this blog I will show you, how you can send multiple CRUD operation in a single batch with different changeset ids. With different changeset ids all the records will be independent of each other.

Create a master map with following parameter

var mParameter = {
				
				urlParameters: null,
				groupId:"randomgroupid",
				success: function(innerdata) {

//This success handler will only be called if batch support is enabled. 
//If multiple batch groups are submitted the handlers will be called for every batch group.
			
				},
				error: function(oError) {
				
				}
			};

 

Create a map for each entry with following parameters

	var singleentry = {
				groupId: "randomgroupid",
				urlParameters: null,
				success: function(innerdata) {
					
				//The success callback function for each record
					
				},
				error: function(oError) {

				//The error callback function for each record
			};

 

For my current use case am reading a complete record from a sap.ui.table and sending it as a POST

 

//data model contains the table data
//Assign unique changeset id to singleentry
for (var i = 0; i < data.BP.length; i++) {
				singleentry.properties= data.BP[i];

				singleentry.changeSetId="changeset "+i;
				this.getOwnerComponent().getModel().createEntry("/Entity", singleentry);
			}

 

Finally submit the changes

this.getOwnerComponent().getModel().submitChanges(mParameter);

 

For more details refer : https://sapui5.hana.ondemand.com/#/api/sap.ui.model.odata.v2.ODataModel/methods/createEntry

 

Thanks

Mohit Kanoria

4 Comments
You must be Logged on to comment or reply to a post.