Skip to Content
Author's profile photo Former Member

how to use History Preserving Transform

Use of History Preserving Transform


It is used to preserve the history of the source records.

If the source row has operation code of Insert/Update then it inserts a new record in the target table.


We are doing a scenario where we want to insert the updated record into target table to preserve the history of the source records.

1) Create project, job, workflow & dataflow as usual.

2) Drag a source table to dataflow. Its contents are as follows.

3) Drag a target table to dataflow. Its contents are as follows.

4) Drag query, Table-Comparison, History Preserving blocks as shown in the figure.

5)  Open Query & do mappings as you do normally.

6) Open Table_Comparison block & enter all the properties.

7) Similarly provide details for the History_Preserving block.

8) Now after this we have updated 1st 3 rows of source records & 4th row is deleted .

Fields where changes are made are circled with the red marks as seen in the above figure.

9) Validate & Execute the job.

10) 3 new records got added in the target table as shown below.

You can see that new entry for updated record is made in the target table along with the

‘Y’ flag & new END_DATE as ‘9000.12.31’ & the flag of the original records are changed to ‘N’.


So in this way History Preserving block is useful in preserving the History if the source records.

Assigned Tags

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

      Hello Rahul,

      Thanks for your post. Can I have ATL file for reference.


      Author's profile photo Rajan Burad
      Rajan Burad

      Hi Rahul,

      I've designed a job in which when I've updated the source record the record is getting inserted in target with end_date as future date. But again when I update the same record and run the job, I find that Flag value is not changing and also for the end_date has future value for both updates.
      Please advise where did I went wrong!!