on 09-05-2008 2:21 PM
Hi all,
I am creating a generic datasource with delta using the copy of the function module RSVD_BW_GET_DELTA_DATA.
My function module has the logic to get delta records based on CPUDT.But when i run the extractor from rsa3 using delta or init mode the update mode is always 'F' ( full ).
when i debugged it i see that it is going to the function module RSC1_INIT_BIW_GET even before it goes to my function module where in the update mode is getting filled as 'F' all the time.
Is there a way to solve this. Please help as i have been struggling with it. I had tried the copy of RSAX_BIW_GET_DATA_SIMPLE, again with the code to handle delta but it also was behaving the same way: taking the update mode as full all the time.
Any help is greatly appreciated
thanks
shree
Hi,
did you check a second load after the first?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This is how generic delta via function module works. Function RSC1_INIT_BIW_GET calls RSA8_GENDELTA_RANGE_GET which reads table ROOSGENDLM to find out what the "deltaid" is (the delta pointer), then it uses that to fill the I_T_SELECT parameter and calls your function in full mode. Your function just needs to read the I_T_SELECT internal table parameter for field CPUDT, populate a range with it, and include it in the WHERE clause of your SELECT statement.
It's a little confusing at first but it's actually pretty cool since the SAPI layer takes care of all the delta handling for you.
Hi Jason,
Thanks for the reply. I do understand all the explaination you have provided. My code has all the logic to get the delta records. But the delta queue is not getting populated and because of this when I run a infopackage with delta from BW I am not getting any records. but if i run a infopackage with full load iam getting the delta's ( i.e the changes i made after the timeid in the ROOSGENDLM table).
could you please let me know as to y the delta queue ( rsa7) is not getting filled with the delta records.My datasource is listed in rsa7 but no records in the queue and every time i run a delta the time stamp in ROOSGENDLM gets changed but rsa7 has no records so bw gets 0 records.
thanks
shree
Thanks for your reply.
But I still am not sure as to y my delta infopackage is not getting any records.
My code has all the logic to get the records and it does get the records in full infopackage but not in the delta package.
Please let me know what can be done and if iam missing any steps
Thanks and Regards
shree
Since your generic delta is based on a date field (not a timestamp), I believe the standard delta processing logic will only extract up to the PRIOR date. That is because you could never guarantee that all records have been posted for the current date. If you want to override this behavior you can adjust the safety intervals of your DataSource. I would suggest using -1 for the upper limit and 2 for the lower limit. These settings will cause it to extract from the prior day to the next day. You will get duplicate records with each delta run, so you will need to load into a DSO with only overwrite update rules.
If that doesn't help then you must have an error in your extractor logic. Put a breakpoint in your function module, examine what is passed into I_T_SELECT, verify you are populating your ranges correctly, verify your SELECT statement and WHERE clause.
User | Count |
---|---|
93 | |
11 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.