SAP Landscape Transformation (SLT) is used to transfer (load/replicate) data from source to target system.
After configuration set-up in SLT, in HANA studio we can load or replicate data using Data Provisioning link. In Data provisioning window, we have the following options:
Load: Starts an initial load of data from the source system. The procedure is a one-time event. After it is completed, further changes to the source system database will not be replicated. No data base triggers will be created. No logging of table occurs.
Replicate: It starts the initial load (if not done before) and also takes care of the delta changes. Database trigger and related logging table are created for each table in the source system.
Stop replication: Stops any current or replication process for a table. It removes the database trigger and related logging tables completely.
Suspend: Pauses a table from a running replication. The database trigger will not be deleted from the source system. The recording of changes will continue, and related information is stored in the related logging tables in the source system.
Resume: Restarts the replication for a suspended table. The previous suspended replication will be resumed (no new initial load required).
Jobs: Not explored yet on this option.
From the above available options, we do not have such option to do only delta loading.
In this document we will see how to do delta loading only (means initial load not required). I stolen this concept from SLT expert Tobias Koebler.
When we load or replicate table from Data provisioning window, an entry will be placed in RS_ORDER table of SLT schema. For every few seconds the Monitoring job checks in the SAP HANA system whether there are any new tasks, and if so, triggers the master control job and then deletes the processed entries from the same table.
So if we can place an entry in RS_ORDER table (an INSERT statement with little cautious) related to delta loading then our task is fully done. First let us understand the structure of this table.
SID – Source system ID
CI_HOST – Hostname of Source System
TABLENAME – Table name
ORDERID – Data Provisioning Order ID (not yet used)
ACTION – Requested Data Provisioning Action
Insert statement for RS_ORDER table would look like
INSERT INTO SCHEMA_NAME.RS_ORDER VALUES (‘SID’,’CI_HOST’,’TABLENAME’,ORDERID,’ACTION’);
SAP ECC has been used as source. To see this in action, let us take T009 table as example.
Values for SID and CI_HOST can be found in Data provisioning window. OrderID can always be set to zero(0) as this is not used.
Value for Action depends on what type of data provisioning you want to do.
Steps Involved in only Delta loading are:
- Create an empty table with no data in it
- Activate the Trigger and Logging information
- Activate the Replication process
All the above steps are performed with the help of INSERT statements only
Step 1. Create an empty table with no data in it ==> ACTION – T
ACTION parameter used will be “T” which creates an empty table. Insert statement would be:
INSERT INTO ECCDATA.RS_ORDER VALUES (‘EH5′,’SAPEHP5_EH5_65′,’T009′,0,’T‘);
Execute the above SQL in SQLConsole of HANA studio. Now you can see T009 table with Action as Create and Status as Executed.
We can confirm the table creation in SLT schema with no data in it. Also the entry which we created in RS_ORDER table will be deleted as it removes the processed entries.
Step2. Activate Triggers and Logging tables ==> ACTION – M
ACTION parameter used will be “M” which activates the Trigger and logging information.
INSERT INTO ECCDATA.RS_ORDER VALUES (‘EH5′,’SAPEHP5_EH5_65′,’T009′,0,’M‘);
Now the Action will be changed to ‘Record Only’ and Status to ‘In Process’. Entry in RS_ORDER table will be removed.
Step 3. Activate Delta recording ==> ACTION – Q
ACTION parameter used will be “Q” which activates the Delta recording without doing an initial load.
INSERT INTO ECCDATA.RS_ORDER VALUES (‘EH5′,’SAPEHP5_EH5_65′,’T009′,0,’Q‘);
Now the Action will be changed to ‘Replicate Only’ and Status remains ‘In Process’. Entry in RS_ORDER table will be removed.
From now any changes to table T009 in ECC will be captured in HANA. Now do the data preview on T009.
We see that there is no data. It means that there are no changes to table T009 yet, else you find delta records.
Now let us modify the source table in ECC. Changing ANZBP ‘00‘ to ‘1‘ for PERIV ‘EM’ as shown below.
Again do the Data preview for T009 in HANA studio. This time you definitely see the delta record
Though in Data Provisioning window we have few options, behind this window we can do little more than what data provisioning UI provides.
Disclaimer: This is only work-around and I never implemented this in the Production environment. Before you implement, you understand and test this thoroughly as neither SAP nor me would be responsible for any abnormal behavior.
Thank You for your time