Package-level declarations
Provides Offline OData framework classes to add offline capability to the application.
The package depends on following packages
- com.sap.cloud.mobile.foundation
- com.sap.cloud.mobile.odata
The class com.sap.cloud.mobile.odata.offline.OfflineODataProvider implements the com.sap.cloud.mobile.odata.DataServiceProvider interface and provides offline operations.
- Error Archive
Unlike Online OData where errors are discovered immediately, Offline OData errors are not discovered until the upload operation is performed. When a request fails against the OData backend during an upload operation, the request and any relevant details are stored in the ErrorArchive, a special entity set that can be queried using the com.sap.cloud.mobile.odata.offline.OfflineODataProvider. Application developers must determine what to do for these errors.
Example Usage:
// remove all errors if (!errorEntities.isEmpty()) { dataService.deleteEntity(errorEntities.get(0)); }DataQuery query = new DataQuery().orderBy(OfflineODataErrorArchiveEntity.requestID); List<OfflineODataErrorArchiveEntity> errorEntities = offlineODataProvider.getErrorArchive(query); for (OfflineODataErrorArchiveEntity errorEntity : errorEntities) { dataService.loadProperty(OfflineODataErrorArchiveEntity.affectedEntity, errorEntity); EntityValue affectedEntity = OfflineODataErrorArchiveEntity.affectedEntity.getEntity(errorEntity); // process affected entity }
Content copied to clipboardContent copied to clipboard - EventLog
Offline OData provides a queryable event log which contains information about Offline OData events (such as downloads and uploads). The event log is represented as a read-only entity set, EventLog, which can be read and queried using the com.sap.cloud.mobile.odata.offline.OfflineODataProvider.
Example Usage:
DataQuery query = new DataQuery(). select(OfflineODataEvent.id, OfflineODataEvent.eventType, OfflineODataEvent.details, OfflineODataEvent.time). orderBy(OfflineODataEvent.id); List<OfflineODataEvent> eventEntities = offlineODataProvider.getEventLog(query); for (OfflineODataEvent eventEntity : eventEntities) { // process event entity }
Content copied to clipboard