Delta Calculation using the SAP Exchange Framework
Recently my colleague Jin Shin created a video on YouTube demonstrating how to implement change tracking in an ABAP system using the SAP Exchange Framework. This change tracking is particularly important for Mobile use cases as it allows you to implement Delta Query Protocol enabled OData services in SAP NetWeaver Gateway.
This demonstration was built entirely within a Gateway system using the EPM sample data delivered within any ABAP Basis server. This makes it easier for developers to get started experimenting with this framework without requiring access to an ECC or CRM system to test against. The SAP Exchange Framework delivers a more powerful approach to change tracking than the change log approach used in the SFlight Travel Agency example delivered in Gateway.
What is most exciting about this technology is that it forms the basis for the new offline enabled, OData-based Mobile SDK app developers can use to build complex business apps that can be used anywhere. These apps will allow mobile users to take their business data with them regardless of network coverage. The apps will then securely re-connect to their corporate network when coverage is available. Delta query support enabled using the SAP Exchange Framework will allow those apps to exchange only the data that is relevant for that user on that device and only that data which has changed since the last request.
Detecting and capturing meaningful changes to business objects in SAP Business Suite systems is a complex topic. There are different technologies available to enable the detection of changes, such as a change pointer database, user exits, BAdIs, Business Transaction Events and many others. However, a unified and consistent approach on how change detection should be carried out does not exist. The SAP Exchange Framework provides a validated approach for calculating and capturing changes of relevant business objects at modification time (i.e. as the actual changes occur). Thus at request time when making delta queries, the deltas are already prepared and available. This optimizes performance and makes this approach more scalable. This demo introduces and provides an overview of the SAP Exchange Framework including its main concepts, how changes are captured, and how delta queries can be executed.
In the context of mobile applications, especially offline capable mobile applications, the ability to detect data changes in the backend SAP system becomes critical. Data from backend SAP systems are downloaded to the mobile device in order to support continuous usage of an application in offline mode. Data downloaded to the mobile device can be quite large. When the mobile application client reconnects to the backend system, it needs to be synchronized with the backend system in order to receive the latest information. A complete refresh of the mobile client is not practical from the perspective of data volume, user experience, and functionality. Instead, the ability to perform incremental synchronization or “delta queries” with the backend system is required. In order to support incremental synchronization with the mobile client, change detection support in the backend system is mandatory.
What you can learn from this video
In this demo:
- Jin gives a high-level overview of the Exchange Framework (EFI)
- describes the components required to build the demo
- gives a detailed walk-though of how to build an Delta Query enabled OData Service and
- demonstrates how to enable that service by building a change tracking enhancement using the EFI, which is then used for the delta calculation
This demonstration provides a simplified, easy to understand, condensation of the amazing work of Fahmi Cheikhrouhou on how to enable delta queries. Fahmi’s document is required reading for any developer looking at supporting delta query enabled OData services for ECC, CRM, or other SAP System.
- How To… Enable Delta Queries using Syclo Exchange Framework and SAP NetWeaver Gateway: http://scn.sap.com/docs/DOC-49290
- SAP Note 1921547 – How to integrate OData service with standard exchange table: http://service.sap.com/sap/support/notes/1921547
- SMP 3.0 – Integration: Mobile Application Development Platform – Integration