Skip to Content
Author's profile photo Ravi Dasari

SLT ODP – Real-Time Data Replication from SAP source to BW (ADSO)

Hi All,

In this blog we are going to discuss how to replicate real-time data from SAP Source –> BW ( ADSO ) via SAP ODP Framework.

Below are my system configuration:

ECC system: ERP 6.0
SLT Replication server:  SLT 2.0 (DMIS 2011_1_731 SP13)
BW system : BW 7.5 SP 5

What is ODP Framework?

ODP supports extraction and replication of data to several Target systems and support delta queue mechanism in real-time mode. The Target system receives the data from delta queue and continue the data processing.

In my scenario, I have implemented replication on EKKO table from SAP ECC to BW (ADSO) via SLT-ODP replication server.

Step-by-step guide to replicate real-time data from SAP ECC     –> SLT Replication Server –> BW ( ADSO )

1. Firstly in SLT server, goto LTRC tcode and make sure Basis team configure the connection in SLT server.

2. Also make sure the Source and Target systems are correct in the configuration.

Source: ECC

Target: ODP

3. Make sure Basis team created Sourcesystem in BW.

Goto RSA1 -> Sourcesystems-> ODP –SLT Queue.

4. Goto DataSources -> Select the SLT sourcesystem-> Rightclick and click Create DataSource.

5. In this scenario, we are creating DataSource for table EKKO.

6. Give the Descriptions and Activate the DataSource.

7. Make sure all the Fields from Table EKKO are present in DataSource.

 

8. Developing ADSO in Hana Studio :

Goto HanaStudio -> Windows -> Perspective -> other Perspective-> Others -> select BW Modeling.

Goto Infoarea  -> Rightclick on DataStoreObject (Advance) and create New ADSO.

 

9. Give all the Information to create ADSO and Click on Finish.

10 Select the required fields. If some of the objects are not needed in ADSO and click on Delete.

 

11. Activate the ADSO.

12. In BW, the newly created ADSO will be shown under respective Infoarea.

13. Create Transformation for ADSO – ZEKKO_A01

14. Make sure all the required field mapping are done and Activate the Transformation.

15. Create a new DTP and Activate.

16. Always the First/Initial Dataload is checked as Delta Init. And then the next loads will be deltas.

17. Once the Data loaded successfully. Click on Manage and Click on Activate button to activate the Data. Activation will be very quick and you can see Activation request. 

 

18. After you start dataload, you can goto SLT server ( LTRC ) and click on the connection to check if the replication job is running for EKKO table.

19. After starting the DTP to load data into ADSO, you can see the replication job just started.

Here you can see the logging table & Triggers will be active to capture the Delta changes on EKKO table.

20. Also In Tcode – ODQMON, you can see how many records are replicated into SLT server from ECC – EKKO table.

Testing the Real-Time replication:

21. For testing purpose, Now Iam going to change a Purchase order in ECC via ME22N tcode, this will change the entry in EKKO table.

Before Making the change in ECC

After Making the change in ECC , the Purc.Grp is changed from 125 -> 124 in EKKO table.

22. Now Goto SLT server -> ODQMON tcode.

Here you can see the changed record will be updated in the Delta Queue.

Record type : C ( New record)

Record type : U (Updated Rec)

23. Execute the DTP again and you can see 1 record loaded which is updated in ECC. Activate the ADSO

24. In ADSO, the Purch Grp is updated to 124.

 

Process Chain In Real-Time Mode:

25. Create ProcessChain in RSPC.

1)     Start Variant

2)     DTP Load

3)     Activation of ADSO

 Activate the Processchain.

26. Start Variant -> immediate schedule and SAVE.

27. Click on the “Streaming” and check “Process Chain Run in Streaming Mode”.

28. Activate the Processchain & execute.

Now you can see the Streaming is “Green” and it will automatically run the processchain whenever there is a change in EKKO table

29. Now the Processchain is ready to run in Real-time mode.

After the streaming mode is Active in BW Processchain.

Make sure the below Job is Actively running in SM37 for every 15 mins in SLT server.

JobName: ODQ_DAEMON_CLIENT_100  

This Job will send an event to trigger the Processchain automatically when there is change in the SLT delta queue for particular table.

 

After all the above steps are done, the data will be loaded to ADSO automatically by processchain in real-time.

 

Assigned Tags

      6 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Hi

      Thanks for sharing, using your guide is working quite well. However, I have noticed some unclear elements that you might be able to help explaining:

      1. SLT is realtime replicate changes into SLT from the source system, i.e. if a change is made in the source, the record in the logging table is replicated immediately into SLT (note, I manually trigger a delta to BW). However, the record only comes into the ODQ when I trigger the Delta load from BW: Question - where is the delta record stored in SLT before it goes into the ODQ (and thereafter visible from ODQMON)?
      2. When I try to load very large tables (+100 million records), I have used parallel settings when having a HANA system as direct target. Using parallel setting I can control number of jobs in the source to select the data (ie. into index table for initial load when using reading type 5) and in the data transfer when SLT select from index table and moves into target HANA system. This does not seem to work similar when using ODP, do you have any knowledge in this?
      3. Is it possible to suspend and resume table replication, i.e. how can we use the features in ODP like the ones available in the Data Provisioning button? I.e. we do sometimes use "Stop replication" > "Start recording" > "Start replication w/o dataload" - how will this work in a ODP scenario?
      Author's profile photo David Gallego
      David Gallego

      Hi,

      1. I agree with you. It seems Delta record is stored in source system logging table and goes to SLT ODQ when subscriber (BW delta load) request it. Do you agree?

      According to SAP help doc:

      The SAP Landscape Transformation Replication Server system acts as the target system for the configuration, storing transferred data in the Operational Delta Queues (ODQ) in its own NetWeaver stack. The subscribing SAP BW system connects to the ODP interface of the SAP Landscape Transformation Replication Server system. As soon as a data source is called for replication by SAP BW, the initial load of the data is transferred from the source system into the ODQ and then to the SAP BW system. The data is always transferred from the source system to the ODQ, where it waits for the subscriber to retrieve the data. Note that if required, you can replicate data without performing an initial load, and also perform an initial load with any subsequent replication of data.

      Thanks and best regards.

      David

      Author's profile photo Former Member
      Former Member

      Hi Ravi,

      Good blog. But here, you are using real-time DTP in BW "this is not essentially SLT feature". Real time DTP can be used even without SLT i.e., directly connecting to a BW data source in source system. And it has downside that a dedicated job is needed in BW application server (erstwhile "not so popular" RDA).

      My two cents over which approach to use when:

      SLT table to table replication: has to be configured one-to-one (i.e., one source table and one target table.

      SLT-ODP framework: has advantage over above approach that, it can expose table replication to variety of ODP consumers that are supported under ODP framework. - > But, does SLT take care of writing or scheduling jobs in consumer system? No. So This has to be handled by consumer. Only good use case of this approach is when you are replicating something and want to make it available for multiple consumers, at the cost of consumption passed on to the consumer.

      ODP framework in source system without SLT: can expose any BW extractor, CDS views, HANA views etc. in the source system as operational delta queue in source system. Consumer can consume in similar manner as above. Only disadvantage here is, delta capability is defined by ODP source and is not a "freestyle, table logging based" delta capture as done by SLT.

      I hope these points make sense, if not feel free to correct me.

      Thanks,

      Anup

       

       

      Author's profile photo Rama Shankar
      Rama Shankar

      Nice Blog - thanks.

      Author's profile photo Sainath Kumar
      Sainath Kumar

      Hi Ravi and All

       

      Has some one tried to replicate the table using SLT to BODS. How does a table get enabled for ODP extraction .

       

      For datasources we can enable them via program . How does a table get enabled ?

       

      Thank  you

      Author's profile photo Abdulaziz Rafique Abdur
      Abdulaziz Rafique Abdur

      Hi Ravi,

      Thanks for sharing, your user guide is working well.

      I have few clarifications, what happens when a new column is added to a table?

      1. New column added to the table, but not required for reporting.
      2. New column added to the table, requirement for reporting came after a month.

      When we refresh the datasource and add that column in datasource and the ADSO... Will the delta process chain takes care of the data which was added during last one month.

      Awaiting for your reply.

       

      Regards,

      Abdur Rafique