Hi Muralidharan,
Please consider the code snippet below for your a-synchronous function moduling process.
Please be aware that the function module must be made 'Remote enabled'.
Good luck, and if you have any queries, please let us know.
Best,
Sander
CLASS lcl_parallel_process_construct DEFINITION.
PUBLIC SECTION.
DATA mv_id TYPE char8.
DATA mv_jobs TYPE int4.
DATA mv_dest_group TYPE rzlli_apcl VALUE 'parallel_generators'.
DATA mv_jobs TYPE int4.
METHODS rfc_parallel_process
IMPORTING
!iv_jobs TYPE i .
METHODS rfc_parallel_processed
IMPORTING
!p_task TYPE clike.
ENDCLASS.
CLASS lcl_parallel_process_construct IMPLEMENTATION.
METHOD rfc_parallel_process.
* These should be globals
WAIT UNTIL mv_jobs LT iv_jobs.
mv_jobs = mv_jobs + 1.
mv_id = mv_id + 1.
CALL FUNCTION 'ZYOUR_FUMO'
STARTING NEW TASK mv_id
DESTINATION IN GROUP mv_dest_group
CALLING me->rfc_parallel_processed ON END OF TASK
EXPORTING
iv_id = 'TOOLBOX'.
ENDMETHOD.
METHOD rfc_parallel_processed.
DATA lv_failed TYPE i.
DATA lv_success TYPE i.
RECEIVE RESULTS FROM FUNCTION 'ZYOUR_FUMO'
IMPORTING
ev_failed = lv_failed
ev_success = lv_success
EXCEPTIONS
OTHERS = 1.
mv_jobs = mv_jobs - 1.
ENDMETHOD.
ENDCLASS.