Skip to Content

Hi community,

with DMIS 2011 SP6 we released the capability for ABAP to ABAP replication. The underlying database is not imporatent for this setup. We get more and more request how to set it up. It is described in the system docu, but of cause a how to with screenshots is much better.

First of all, why should you setup a ABAP to ABAP replication?!

    • Replacement of an batch-oriented option to move data between systems
    • Fill additional ABAP system beside ECC with real-time data

License: The standalone SLT license is required. Any license you got with HANA is not valid for any use case beside the replication directly into HANA DB!

Architectural Concept:

From a setup perspective nothing changed to the original HANA scenario. The main difference is that you need a RFC connection to the target ABAP system. The setup of the configuration is done via LTR, all other executions like start/pause/resume/stop replication is handled via LTRC. The DMIS Addon has to be deployed, in the source, SLT and target system.

Picture1.png

Setup steps:

1.) You have to create a configuration via LTR, first you specify a configuration name.

Picture2.png

2.) Afterwards you specify the RFC Destination of the source system.

Picture3.png

3.) In the third step you choose RFC Connection from the radio buttons and specify the RFC Destination and the Scenario with Standard RFC scenario.

Picture4.png

4.) In the next step, you define the transfer settings as required.Nothing special to the settings you know from HANA replication.

Picture5.png

5.) In the last step, you review your configuration and create it finally.

Picture6.png

Picture7.png

The configuration is now ready to use.

Start replication:

To start the replication for a table you have to enter transaction LTRC and execute the Data Provisioning function.

Picture8.png

Specify the table name you want to replicate, the transfer option and execute it.

Two important points:

  • Ensure that a target table with the same name already exist. In the ABAP to ABAP scenario, SLT will not create the target table structure automatically.
  • Take care for the client, if you do not have the same client in source and target, specify a transformation rule that change the source client to the target client.

Monitoring:

You can check the transfer process, the logging tables, triggers and the creation of the different objects in the Table Overview and Data Transfer Monitor in transaction LTRC.

Picture9.png

Result:

Picture10.png

The procedure to enable ABAP to ABAP replication is pretty easy, the only important points are that you have to ensure that the target table is already available on the target system. SLT will not create the table automatically (of cours you can have tables with different fields and transformaiton rules). Also the client field is an important point. In the HANA case SLT will write all records from all clients to the schema, here with ABAP to ABAP the client seperation will take place and you will only see the client depend data. If you have the need to transfer records from client 100 to the target system to client 200 – a transformation rule is required.

Hope this how to helps to setup a ABAP to ABAP replication. Let me know your feedback.

Best,

Tobias

To report this post you need to login first.

49 Comments

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

  1. Srinivas Kakarla

    Tobias,

    Thanks for the details. So, this new approach is completely replacing the TDMS approach of replicating data between ABAP – ABAP systens?

    Please advise.

    Regards,

    Srinivas K.

    (0) 
    1. Tobias Koebler Post author

      Hi,

      no – this is for table-based replication between productive systems. TDMS is to setup non-productive systems (e.g. test/ Q&A systems) object-based and time-sliced.

      Best,

      Tobias

      (0) 
      1. Leo Frederiksen

        So it can be used for i.e. BW. I.e. replicate GL header and item data to BW and then create a virtual provider on top?

        And maybe then also load from the replicated tables (using i.e. date/time) to load into other data targets like cubes.

        Regards

        Leo

        (0) 
  2. Pete Zhou

    Hi Tobias

    Thanks for this great How-To. I’m facing a question from customer about replicate to 2 target systems with different frequency. Let me describe a little detail. ECC source to 1 HANA DB and 1 BW on HANA. Some of the tables are planed to be replicated to both side while ‘real-time’ to HANA DB and ‘periodocally’ to BW on HANA. Does SLT RS support this with same logging table?  How logging table to control the different frequency and prevent logging table to be too big at meantime?

    Thanks a lot.

    Cheers

    Pete

    (0) 
    1. Tobias Koebler Post author

      Hi,

      when you have 2 targets, you will create also 2 configuration. For each configuration you have the option to define the frequency (real-time, scheduled by time, scheduled by interval). Depending on the settings the configuration will execute the replication process.

      The entry will be deleted out of the logging tables after the record was successfully inserted in all targets. E.g. you will transfer the delta to BW only once a month, the logging table can become big. Sure this is a sizing exercise.

      Best,

      Tobias

      (0) 
      1. R. ter Wal

        Hi Tobias,

        This is interesting. Where is the registration of the inserted records been done? Or how does SLT decides to delete the record from the logging table in the source?

        In our case we’ve replication running for a while now for one target (ie HANA ). However a need for certain big table to be replicated into BW is been risen. We want to start loading that without stopping replication to HANA. We’re unsure if all changes will be picked up by BW, after the initial load. We’re affraid the addition since start of the nitia load will be deleted from the log table.

        Regards Rolf

        (0) 
        1. Tobias Koebler Post author

          Hi Rolf,

          the load is not execute over the logging table, is will be performed on the application tables. So what would happen when you add a second replication (multiple usage flag is active).

          1.) New configuration will register to the existig logging table.

          2.) Load will be executed and after it is finished, SLT will switch to replication mode for the table

          3.) Logging table entries will only deleted if both targets will send a successfull commit

          4.) Second configuration will replicate all available records from the logging table

          5.) After the successfull commit of the second configuration, the logging entries wil be deleted.

          Hope this explanation helps, let me know if you need more details.

          Best,

          Tobias

          (0) 
          1. R. ter Wal

            Thanks Tobias,

            That explains a lot. But…

            How does the SLT register in the logging table of the source table, which target has commited the changes?

            What will happen if one the targets configurations is been stopped?

            Is it possible to create a logging table per target configuration?

            Regards Rolf

            (0) 
            1. Tobias Koebler Post author

              Hi,

              SLT was designed to have minimum impact on the source (only one-time storage, one trigger execution). This is why only one logging table exists. Within the logging table we have a field that is used to be determine if all targets send a successfull commit back.

              It is not possible to have more logging tables.

              Best,

              Tobias

              (0) 
      1. Pavan Bukkapuram

        Thank you for your quick response. I have replication setup for every 5 minutes but it fails with the below error.

        Error when reading the DDIC-data for table ZBAFIRE2 (RFC destination NONE).

        To fix this i have to delete data from the target system and start over in LTRC transaction.

        1. start load

        2. Resume replication

        I even tried setting transfer behaviour to “3”.

        Please advise.

        Thanks,

        Pavan

        (0) 
  3. Joydeep Gupta

    Hi Tobias,

    An excellent document & very self explanatory..

    Just one quick question..

      Can we change the Target System from HANA to DB2? Not ableto do so in LTRC as I can see it is hard coded.

    (0) 
      1. Joydeep Gupta

        No Tobias I want to dynamically swich from HANA to DB2.

        Can we change the Target System from HANA to DB2? Not able to do so as I can see it is hard coded.

        This is one of the requirements where we need to connect SLT to other  system & not HANA.It would be something like this:

        HANA–>SLT–>ABAP System(ECC).

        (0) 
      2. Joydeep Gupta

        Tobias- in the 5th step(Create Configuration) & Connection to Target system how have you selected RFC Connection?I am using DMIS 2011(SP4) & its not allowing me to change the Target System from HANA.

        (0) 
  4. Cosmin Jimborean

    Hi Tobias,

    Thanks. This is great info.

    I would be interested if there is any flexibility on the target RFC. Can we use application specific RFCs in order to transform the data before storing it in the target tables? or a standard RFC must be used in the target system?

    Thank you,

    Cosmin

    (0) 
      1. Cosmin Jimborean

        Hi Tobias,

        The use case would be used to do more complex transformations on the data before saving it in the target structures. This does not necesarily need to be an applicaton RFC, could also be BAdI that exists in the standard RFC before saving the data and we would simply implement this BAdI. Do you know if any BAdI like this exist either in the source or in the target system?

        Thanks a lot,

        Cosmin

        (0) 
      2. Joydeep Gupta

        Tobias- in the 5th step(Create Configuration) & Connection to Target system how have you selected RFC Connection?Is that option is enabled with SP6?

        I cannot find that option in DMIS-SP4.

        Regards,

        Joydeep.

        (0) 
  5. Johannes Goerlich

    Hi Tobias,

    is it possible to use SLT to transfer data (with at least a transformation of MANDT) from one client to another in one ABAP system (based on HANA)?

    Could this ABAP system also be the SLT Master?

    Regards,

    Johannes

    (0) 
  6. Kalyana Kollipara

    Hi Tobias,

    Can we automate starting and stopping of a replication on a daily basis. If so, can you give me guidance on how this can be done.

    Regards

    Kalyan

    (0) 
    1. Tobias Koebler Post author

      Hi,

      you can set in Step 4.) Replication options to scheduled by time (e.g. 01:00) or scheduled by intervall (r.g. every 20mins / 4h/,..)

      Best, Tobias

      (0) 
      1. Kalyana Kollipara

        Thanks for responding Tobias.

        Our scenario is Non-SAP source system undergoes a refresh every day at a specified time. Now i need to stop replication before the refresh and restart it afterwards. We are fine with doing a full load as many times as we want. Do you have any suggestions to achieve this. Even if it involves some custom coding, please share your thoughts so i could build on it.

        Regards

        Kalyan

        (0) 
  7. Miguel Vega

    Hi Tobias,

         We want to use SLT to replicate from one Abap to another Abap, but we only want to replicate information from a company code, is this posible?

        For example, in the source we have company A,B and C, en the target we only want the information from the company code C,

         how should be the best aproche to reach this replication?

    Best regards

    (0) 
  8. Sachin Bhatt

    Hi Tobias,

    Thanks for the How to .

    We are doing a migration project from AIX to Linux.

    Looks like this scenario can be helpful for us.

    I want to use SLT to replicate 5 or 10 big tables & rest of the tables using Export/Import so that we can reduce the overall downtime.

    Have you or anyone else has worked on such scenario?

    Regards

    Sachin Bhatt

    (0) 
    1. Tobias Koebler Post author

      Hi,

      yes we have several customer with this scenario using SLT to get tables from one system to another system. The question with a migration is more, are there any additional changes required for the data or is a 1:1 table move sufficient. This topic I cannot answer, but if it is just to bring a table from one to another system – this can be done via SLT easily. I was last week at a customer and we replicated a few table of the PoC within several hours.

      Best, Tobias

      (0) 
      1. Sachin Bhatt

        Hi,

        Thanks for the reply. it will be 1:1 scenario.

        We may soon start a POC around this.

        Below is my thought process:

        Build target DB

        Initial load few big tables.

        Establish replication between source & target DB for big tables.

        Final replication

        stop Source system.

        Skip big tables from the Export/Import (R3load).

        Have you come across any customer who has tried this approach for migrating database on new servers?

        Best Regards

        Sachin Bhatt

        (0) 
        1. Tobias Koebler Post author

          I am not aware of a project, but this does not mean that no one is using it for such a project.

          But when it is a 1:1 table replication, this could be an approach.

          Best, Tobias

          (0) 
  9. Takeshi Sugie

    Hello Tobias,

    Thanks for the detail explanation.

    Would you show me how to define specify a transformation rule bebause I have client 300 in source system and client 100 in target system .

    Is it defined in Rule Assignment in LTCS?

    Best regards,

    Sugie

    (0) 
  10. Basant Aggarwal

    Hello Tobias and others.

    We have a scenario where we have to build N:1 from ABAP to ABAP.

    Now there is a possibility that same Table Name might have different stcutures in two source systems . SO how do i get a super structure in Target system because this appraoch expects the  table to be there in Target System.

    We did N:1 from ABAP to DB and i created harmonized Table structure in SLT and it worked perfectly fine for me.

    Help is appreciated.

    (0) 
  11. Shyam Sunder D

    Hello Tobias,

    Thank you for the post/document

    we have similar scenario but from view to view replication

    Request to explain or share about replicating data from ABAP View to ABAP View via RFC Connection

    when we are trying, could not establish triggers in the Source system and also there is a piece of validation code which is an additional one specific for View Scenario.

    We are using DMIS SP10 below is the snippet from LTRC ( IUUC_SYNC_MON )

    CASE sysubrc.
    WHEN 0 OR 2 OR 3.
    IF gs_dd02vtabclass = ‘TRANSP’ OR
    gs_dd02v
    tabclass = ‘CLUSTER’ OR
    gs_dd02v
    tabclass = ‘POOL’ OR
    ( gs_dd02vtabclass = ‘VIEW’ AND rb_crea = ‘X’ ).
    ELSE.
    MESSAGE i078(cnv_iuuc_replication) WITH gs_dd02vtabclass s_tab_dplow.
    CONTINUE.
    ENDIF.

    In the above code field rb_crea is validated for value X. unsure when the value is assigned

    Roles used are standard provided by SAP and example is V_T001

    Awaiting for reply or response ➕ 🙂

    Regards

    Andreas, Shyam

    (0) 
  12. Anna Vladi

    Tobias, great article thank you!

    We are in need to do a data slice for our SOH migration from a SBX to SBX, but SBX is 16TB.  We are doing TDMS and it has been running for weeks with many performance and other issues.  Do you believe we can get a better performance with this approach?  And also is there any limitation in terms of data that it can replicate.?  Thank you in advance

    (0) 
  13. Morris Lenyon

    Hello Tobias,

    We are migrating an SAP ABAP System from the AS400/DB2 to an SAP ABAP System on Linux/Oracle. We are first seeding the data on the target side with an OS/DB migration. We are then keeping the data current using SLT replication. Since the target SAP ABAP System has a lot of the same data, we are getting the Duplicate Key error. I already know how to fix this problem 1 table at a time using SAP Notes 1919356 and 1905253. We have tens of thousands of SAP Tables which need to switch to Array Modify during the SLT replication. We are using DMIS 2011 on SP11. I see that WRITE_BEHAVIOUR is contained in table, DMC_MT_TABLES. Can you explain how we can change to Array Modify is a mass change or global way for an ABAP to ABAP data transfer of this nature?

    Kind regards,

    Morris

    (0) 

Leave a Reply