Hi,
This DS 4.0 job has the 2LIS_11_VAITM as its source. There is a subscription to that extractor via Ds 4.0. When we load regular delta using Extract date time field from a control table, we are able to get the data.
We did couple of delta extraction and they also worked fine. Only when we repeat the delta by setting the Extract Date time to a prior value, we face the following error,
RFC CallReceive error <Function Open: RFC_ABAP_RUNTIME_FAILURE-(Exception_Key: ITAB_DUPLICATE_KEY)- A row with the same key already exists.[SAP NWRFC 711][SAP Partner 701 ][SE1][se1cen00][s4dale100][4102]>
This clearly states that its a primary key violation. We analysed and found that there is a program called CL_RODPS_REPLICATION which encounters this error. This program is using the table rodps_repl_rid. We believe, the repeat delta is trying to insert into this table some rows which already exist.
If anyone has encountered this and handled the same issue while extracting from ODP queues, please help.
Kindly check the attachment for detail description.
The SAP note got applied and we managed to test repeat delta feature. I was able to repeat the delta without any errors. However, i have an observation which i want to share and get your feedback on.
Please see the attached image.
In that, After my initial load, i had delta 1,2 and 3 on the same day.
Now, for repeat delta testing, i picked a time between my initial load and first delta and it error out, which i understand as there is no delta available.
Then i picked a time between my delta 1 and delta 2.
Now i expect the repeat delta to return all records which i had pulled in my delta 2, 3 however it returned me only delta 3 records. Why? Can you explain this?
We had this issue early this year. that the first delta cannot be recovered using a between date. But in reality you will use the exact date anyhow. My job finds the last successful start date - e.g. 2 days old - from a status table and hence keeps requesting this data again and again until the job finished successfully and hence the final script updating the status table was called.
Thanks Werner for your prompt reply and your comment that we are doing the extraction and repeat delta correctly.
However, Say i run jobs as shown below.
2012-08-14 11:00:00 ---- initial load ---- 100 records
2012-08-14 11:15:00 ---- Delta load1---- 20 records
2012-08-14 11:30:00 ---- Delta load2---- 10 records
2012-08-14 11:45:00 ---- Delta load3 ---- 30 records
2012-08-14 12:00:00 ---- REPEAT DELTA with Extract DateTime as 2012-08-14 11:30:00, This execution i expect ODQ to give me 10 (delta load2) + 30 (delta load3) + any new delta.
However, this is not the case. ODP is giving only the latest delta execution, in this case 30 records (delta load3).
Can you please let me know why? Also, kindly get back in case i need to articulate this better.