cancel
Showing results for 
Search instead for 
Did you mean: 

Not able to read large amount of data from InfoCube present in APO system

Former Member
0 Kudos

Dear All,

I am trying to read data present InfoCube (APO system) from ECC system. RFC RSDRI_INFOPROV_READ_RFC is used to read the data. When I read large amount of data using default, 'V' and 'U' as options for I_RESULTTYPE, it raises OTHERS exception when RFC is executed in ECC system. When executed directly in SE37 in APO system, it gives a dump.

I tried to break the data by specifying Package Size using I_S_RFCMODE, but E_END_OF_DATA will always be 'X'. Please suggest how I can read very large amount of data from InfoCubes (APO system) in ECC system.

Thanks in advance.

Regards,

Pavan

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi All,

Adding my findings:

For each execution of local function module RSDRI_INFOPROV_READ, the callback function module (I_S_RFCMODE-RFC_RECIEVER) gets executed. If I skip the execution of this callback FM, local function module RSDRI_INFOPROV_READ gets executed normally without any exception. (Earlier it was subrc 9 when second time local FM was executed).

But technically, callback FM has to be executed for each iteration of local function module RSDRI_INFOPROV_READ as the data should be transferred to ECC system in each iteration.

There is some problem when the RFC callback is getting called. Please suggest what can be done.

Thanks,

Pavan

Former Member
0 Kudos

Hi All,

Adding my findings:

We can use I_S_RFCMODE parameter provided in RFC RSDRI_INFOPROV_READ_RFC. I_S_RFCMODE expects us to provide the below details:

  • ID - Random value
  • RFC_RECEIVER - We need to create a new RFC in our ECC system to be able to get the data package wise. You can debug the RFC and see the structure. This new RFC created in ECC system will be invoked inside RFC RSDRI_INFOPROV_READ_RFC using destination 'BACK'.
  • PACKAGESIZE - Number of records that you are expecting in each package

How RFC RSDRI_INFOPROV_READ_RFC is executed:


This RFC executes the local function module RSDRI_INFOPROV_READ (FM to read data from InfoCube locally) till END_OF_DATA is reached. And every time local FM is executed and new data is fetched, it invokes the new RFC created in ECC system and transfers the data.

I am facing a new problem now:

Inside RFC RSDRI_INFOPROV_READ_RFC, local FM RSDRI_INFOPROV_RFC returns sy-subrc 9 when executed the second time. i.e. if package size is specified as 1000 in RFC call, local FM fetches 1000 records first time and sends it to ECC system and it tries to fetch the next set of 1000 records and subrc is 9. I could debug the code and the actual function raising subrc 9 is given below:

Class  - CL_SQL_RESULT_SET => method - NEXT_PACKAGE

Can you please help me here.

Thanks,

Pavan