2014 Jun 03 7:43 AM
A BW data source ZTEST
has been created based on a function module ZTEST_FM to pull the
data into BW system from R/3.
(Have checked the parellel jobs running in SM66 transaction).
Inside the function module, an RFC function
module ZTEST_RFC1 has been called asynchronously to implement the parallelization
to improve the data extraction time into BW system.
Note: In this scenario asynchronous
RFC is used to implement the parallel processing.
The logic in the function module is as follows.
Function module ZTEST_FM Logic:
The output structure contains the following fields.
Could you please give us some suggestions, to implement the parellel processing using asychronous RFC in this scenario.
Would appreciate your help.
2014 Jun 03 9:40 AM
Hi Jayashankar,
Just want know, why WAIT statement is written before RFC call ? Usually WAIT will be written after RFC call to collect consolidated result in parallel processing . It seems like before calling RFC call system will wait till previously called RFC So it will be like synchronous behavior. Please correct me if my assumption is wrong.
Thanks & Regards,
Arun
2014 Jun 03 8:35 AM
Your RFC call looks correct. For collecting the result you will need to code the callback routine Write_E_T_data. Inside the callback you can use the statement
RECEIVE RESULTS FROM FUNCTION ZFHLS_EX_TNM_ACADEMY_RFC1 IMPORTING <parameter list>
to retrieve the calculated result. For the declaration of the callback routine I recommend
FORM Write_E_T_data USING iv_name TYPE c.
The parameter iv_name containing the name of the RFC task turned out to be mandatory in my tests.
2014 Jun 03 8:43 AM
Thank you Jochen for your reply,
I have implemented the RECEIVE RESULTS FROM FUNCTION ZFHLS_EX_TNM_ACADEMY_RFC1
in the function module in WRITE_E_T_DATA sub routine.
but main issue is the jobs are not running in parellel.
i.e. jobs running synchronously.
2014 Jun 03 8:51 AM
Have you checked with transaction RZ12 if any parallel server group has been configured on your system?
2014 Jun 03 9:03 AM
Yeah, have checked the RFC server group maintained in RZ12 transaction.
RZ12 server group name is 'pararellel_generators'.
system = 'pararellel_generators'.
we tried the below two options.
DESTINATION IN GROUP system
DESTINATION IN GROUP DEFAULT.
but the issue remains same.
Thanks
Jay.
2014 Jun 03 9:10 AM
I usually check my parallel jobs with SM50. Could it be that the calculation is so quick that the RFC call is finished before the next RFC request is issued? - Debugging parallel jobs is not easy. What I have done for my task is to create program logic to switch between synchronous or asynchronous/parallel execution. Whenever I have made major changes in the RFC code I first monitor a clean synchronous execution and only then switch to parallel execution. Note that you have to call the callback routine manually for synchronous execution.
2014 Jun 03 9:40 AM
Hi Jayashankar,
Just want know, why WAIT statement is written before RFC call ? Usually WAIT will be written after RFC call to collect consolidated result in parallel processing . It seems like before calling RFC call system will wait till previously called RFC So it will be like synchronous behavior. Please correct me if my assumption is wrong.
Thanks & Regards,
Arun
2014 Jun 03 11:01 AM
Thank you Aruna Kumara K,
I have tried by removing the statement WAIT UNTIL before the RFC CALL, now the jobs are executing in parellel.
Thanks again.
Regards,
Jay.