Skip to Content

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.

Abstract

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.

Background

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.

More Information

To report this post you need to login first.

3 Comments

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

  1. Patrick Kelleher Post author

    Jin Shin has recently moved on to building amazing things with BI and Lumira.

    In his place, I will be happy to respond to any questions you have in this area.

    (0) 
  2. Wolfgang Röckelein

    The Documentation mentions SMFND 600_700, in the Service Market Place SMFND 610_700 is also available. Is this newer? What to use?

    (0) 
  3. Wolfgang Röckelein

    H Patrick,

    with the document 49290 referenced in the video I have the following problem:

    When using extended exchange tables, how do I detect the need to send a tombstone to the client if a entity is changes in a way that it leaves the selection criteria?

    With the suggested

    accountid IN ls_filter_select_options-select_options

    neither a update nor a tombstone is sent when accountid changes -> client is left with old and irrelevant entry.

    Thanks,

    Wolfgang

    (0) 

Leave a Reply