Hi Indira,
The problem probably lies with the fact that you use a FM call for each record (which in turn calls different other FM's). When writing an extractor function, there are two things you should pay attention to :
- Write your code for mass processing : this means that you have to try to select as much data from the database at once and then process it in the ABAP code. In your case, this means you should try to see what the logic in the FM is and see if you can select the data by writing your own ABAP in a more performant way. You might need the help of an experienced abap developer with this. A few correctly used indexes can make the differences between hours and minutes.
- When processing lots of data, try to use a delta loading mechanism in your datasource. If your init is too big, do an init without data and then load the data with full repair requests, splitting the data by some parameters, as suggested by Chanda.
If you post your code, I will take a look at it to see if there is some part where you can have a quick win. It would also help to know what the function is supposed to do.
Regards,
Freek