Group IDs
The OData V4 model sends requests in the following cases:
Implicit read requests to retrieve data for a binding
For example, a list binding with the absolute path /UX_Customer triggers a GET UX_Customer to read data.
Implicit update requests via two-way binding
For example, update a customer’s name through a property binding with the relative path CustomerName, which has a context with path /UX_Customer(00505604-4e85-1edd-818f-21e64b9cd2cf) triggering PATCH UX_Customer(00505604-4e85-1edd-818f-21e64b9cd2cf) with the customer name's value as JSON payload.
Explicit requests triggered through API calls like ODataListBinding.refresh() or ODataContextBinding.execute()
For each of these cases, it is possible to specify a Group ID of type string that allows you to group multiple operations into a single HTTP request payload (batch request).
I.e. the OData model's use of batch requests is controlled by such Group IDs. For this purpose a Group ID has one of the following submit modes:
- sap.ui.model.odata.v4.SubmitMode.API
- sap.ui.model.odata.v4.SubmitMode.Auto
- sap.ui.model.odata.v4.SubmitMode.Direct
The following figure shows the valid Group IDs in SAPUI5 and explains their corresponding submit modes.
Usage of Group IDs in XML Views
In the example shown in the figure, Usage of Group IDs in XML Views, the binding context of the form is set to /UX_Customer(00505604-4e85-1edd-818f-21e64b9cd2cf) via the binding attribute of the <SimpleForm> tag. In addition, the Group ID for read and update requests is set to $direct ($$updateGroupId and $$groupId parameters). Therefore, the data for the form, that is, name and city of the customer with Id 00505604-4e85-1edd-818f-21e64b9cd2cf, is read directly without batch. Likewise, updates for the name and the city through two-way binding are sent directly without batch.
The default for the Group ID of the OData model is $auto. The value of Group ID is used as default for the Update Group ID of the OData model.
On instantiation of the OData model, you can also provide both a Group ID and an Update Group ID; if specified, these values are used as defaults if the corresponding binding parameters are not explicitly set.
For explicit requests, the Group ID can be specified as an optional parameter to the corresponding API method. The Group ID or Update Group ID of the binding is used as a default.