2013 Apr 21 9:00 AM
Hi All,
I am doing parallel processing in METHOD SAVE_AND_PUBLISH_DOCUMENT. Please refer below piece of code.
CALL FUNCTION 'ZZBAPI_GOODSMVT_CREATE' STARTING NEW TASK lv_task
CALLING RETURN_INFO ON END OF TASK
EXPORTING
goodsmvt_header = lt_goodsmvt_header
goodsmvt_code = lt_goodsmvt_code
TABLES
goodsmvt_item = lt_goodsmvt_item
return = lt_return.
lv_task = lv_task + 1.
method RETURN_INFO.
DATA: lt_messages TYPE bapiret2_t, "messages from each process..
gv_msg(220) TYPE c VALUE SPACE.
RECEIVE RESULTS FROM FUNCTION 'BAPI_GOODSMVT_CREATE'
TABLES
et_messages = lt_messages
EXCEPTIONS
communication_failure = 1 MESSAGE gv_msg
system_failure = 2 MESSAGE gv_msg.
endmethod.
My issue is call to method return_info is not getting triggered. Please suggest.
Thanks,
Vikas Badhan
2013 Apr 21 2:53 PM
Hi Vikas,
1) Not this :
vikas badhan wrote:
method RETURN_INFO.
DATA: lt_messages TYPE bapiret2_t, "messages from each process..
gv_msg(220) TYPE c VALUE SPACE.
RECEIVE RESULTS FROM FUNCTION 'BAPI_GOODSMVT_CREATE'
TABLES
et_messages = lt_messages
EXCEPTIONS
communication_failure = 1 MESSAGE gv_msg
system_failure = 2 MESSAGE gv_msg.
endmethod.
Function name "RECEIVE RESULTS FROM FUNCTION 'ZZBAPI_GOODSMVT_CREATE'" must be same.
and declare your method like this :
methods : return_info
importing p_task type clike.
2) In one case, i used Asynchronous RFC and i needed to know, function finished its proccess. I did that like this.
CALL FUNCTION 'ZFI_TFRS_DOCUMENT_POST'
STARTING NEW TASK tfrs
PERFORMING handle_subrc_post ON END OF TASK
EXPORTING
is_header = ls_header
it_item = lt_item.
WAIT UNTIL gv_finish EQ 'X'.
CLEAR : gv_finish.
*
*
*
FORM handle_subrc_post USING p_task TYPE clike.
RECEIVE RESULTS FROM FUNCTION 'ZFI_TFRS_DOCUMENT_POST'
IMPORTING
e_finish = gv_finish
EXCEPTIONS
error_post = 1
system_failure = 2
communication_failure = 3
resource_failure = 4
OTHERS = 5.
ENDFORM. "handle_subrc_post
I hope this will help
2013 Apr 21 2:53 PM
Hi Vikas,
1) Not this :
vikas badhan wrote:
method RETURN_INFO.
DATA: lt_messages TYPE bapiret2_t, "messages from each process..
gv_msg(220) TYPE c VALUE SPACE.
RECEIVE RESULTS FROM FUNCTION 'BAPI_GOODSMVT_CREATE'
TABLES
et_messages = lt_messages
EXCEPTIONS
communication_failure = 1 MESSAGE gv_msg
system_failure = 2 MESSAGE gv_msg.
endmethod.
Function name "RECEIVE RESULTS FROM FUNCTION 'ZZBAPI_GOODSMVT_CREATE'" must be same.
and declare your method like this :
methods : return_info
importing p_task type clike.
2) In one case, i used Asynchronous RFC and i needed to know, function finished its proccess. I did that like this.
CALL FUNCTION 'ZFI_TFRS_DOCUMENT_POST'
STARTING NEW TASK tfrs
PERFORMING handle_subrc_post ON END OF TASK
EXPORTING
is_header = ls_header
it_item = lt_item.
WAIT UNTIL gv_finish EQ 'X'.
CLEAR : gv_finish.
*
*
*
FORM handle_subrc_post USING p_task TYPE clike.
RECEIVE RESULTS FROM FUNCTION 'ZFI_TFRS_DOCUMENT_POST'
IMPORTING
e_finish = gv_finish
EXCEPTIONS
error_post = 1
system_failure = 2
communication_failure = 3
resource_failure = 4
OTHERS = 5.
ENDFORM. "handle_subrc_post
I hope this will help