SLT and HANA deleting archived data
From the SLT Operations Guide, section 5.2 I can see the following statement
5.2 Archiving Data in Source Systems
The trigger-based replication also considers the deletion in source tables by archive activities (since it is not possible to distinguish on the database level between delete actions cause by archiving versus regular deletion of data records). As a consequence, SAP LT Replication Server will also replicate archiving activities as delete actions in the SAP HANA database.
In a typical standalone/sidecar implementation of SAP HANA, I would assume that in most cases this is not favorable behavior or a desired function. In typical DW/DataMart implementations, the data should be persisted in the target even after the source system data may have been archived. I can refer back to how BW operates in this caes - any new/changed data is extracted to BW, but any archiving operations do not affect the already extracted data in the target system.
I know there is functionality available to load archived data into HANA, but that would seem like a troublsome method to 'put the pieces back together' and get a wholistic picture of all the historical data (online data + archived objects) and would present some interesting challenges in the target (HANA).
Is there any way to disable the functionality to replicate deleted data due to archiving? Is there anyone with some experience navigating around this hurdle in a standalone/sidecar scenario that can shed some light as to how they handled this?
Tobias Koebler replied
I never tried option 1, but you can display all active triggers via trx: iuuc_remote in the source system.When you click "List Triggers" you also find the names. delete triggers will end with "
/1LT/<number>DEL . When you go back to the expert function of this transaction you see the option delete triggers. There you could define only the delete triggers and ge rid of them. Let me know if this is working for you.
Go to IUUC_REPL_CONTENT and fill and create a new rule in IUUC_A S S_RULE_MAP. Also an ABAP include has to be specified where you define the rule.
This is the coding of the ABAP include:
If the code detects the opertion "D" (delete) it will skip the record and will not transfer it to the target. Transformations can also applied only during the timeframe you execute the archive run, if you can ensure that not any usual delete will be executed.
Option 3: With DMIS 2011 SP5 we introduced also an third option. The idea is that you have an additional applications server added to the productive system. Only the archive run is executed at this additional application server. The next step is to have an transformation rule on SLT (see above) and you skip all reocrds that are coming from this additional app server (because you know the deletes are caused by the archive run).The big advantage is, that you do not block any users from the productive systems. everything can work normaly.