The topic gives a detailed overview of the communication between SAP BW and R/3 systems during data extraction.
The jobs that pull data from R3/ECC use InfoPackages (BW Scheduling Tool) to schedule the job.
When we schedule InfoPackage to start later in the background, we will see program SAPLRSS1 scheduled in BW under the job RSBATCH1 in SM37.
In BW, if you have selected the checkbox on the InfoPackage schedule tab to “request batch process runs….”, you will see a program SAPLRSSM continue to run in BW (tcode SM66 or SM50) to monitor the job. This used to be important for job dependencies…
Depending on whether you are using 3.x or 7.x, you will have different options available to you in the processing tab of an InfoPackage. These options drive very different behaviors in R3/ECC and BW. (i.e. asynchronous vs synchronous tRFCs, sequential vs parallel processing)
Focusing on 7.x, your only option in the processing tab of an InfoPackage is “only PSA“. Based on this, information will be sent to BW from R3/ECC and written to the PSA. Information will be sent with IDOCs and data will be sent with tRFCs. The number of parallel processes defined governs the number of tRFCs executing at any one time on R3/ECC. (Parallel processes are defined by program RSA1_TRFC_OPTION_SET as of 7.x… it is very important that this is configured correctly.
In 3.x, parallel processes were governed by settings in SBIW or table ROIDOCPRMS).
Once the InfoPackage starts, BW sends an information IDOC of message type RSRQST R3 to request extraction for a given dataSource. You should see this idoc in the BW outbox as status 03/successfully sent.
R3 receives the IDOC and processes it scheduling a background job under ALEREMOTE with program SBIE0001 and a variant defined by datasource and InfoPackage selection criteria. In the R3 inbox you should see the idoc as status 53, successfully received and R3 job scheduled. If there are not enough background work processes on your R3 instance, you may see status 68 and the job never gets scheduled…
Once the job has started, R3 then sends back 2 informational idocs, one in RQSTATE 0 and one in RQSTATE 1. In the BW monitor you would see two entries, “Data request arranged” and “Confirmed with: OK”. R3 outbox now has 2 idocs with status 03 and BW inbox now has an additional idoc with status 53.
SBIE0001 runs function module RSAP_PERFORM_EXTRACTION… gets all necessary information from table ROOSGEN (i.e. program id and transfer structure). You would see a GP* program running in SM66/SM50 if you were watching. Data is extracted as part of the background job, in a background work process. Once a data package is extracted, the program then needs to process the data package (i.e. execute the user-exit if there, and then send the information to BW through program SAPLRSAP in a dialog work process/tRFC)
During extraction, R3/ECC will send back information idocs, 1 per X data packages (number of them depends on setting in ROIDOCPRMS-STATFREQ)… these tell you ECC/R3 has extracted X records and BI has received X records. In the BW monitor this shows as “20000 records sent (20000 records received)”. If a data package failed the numbers would not match.
While each tRFC is excuting, you will see a Dialog process running in SM66 or SM50 / program SAPLRSAP. One tRFC = 1 data package. You can see tRFCs executing or failing in SM58 in ECC/R3. If they fail, sometimes you may execute them manually, and sometimes not. It depends on why it failed (you’ll have to do the research to assess that).
When all records have been sent to BW, R3 issues an information idoc to BW in RQSTATE 9 stating the job is complete.