‎2007 Feb 19 5:43 AM
Hi every 1,
here i m trying to handle all the errors from the function module into
return stucture.(it_return)
But iam not able to do it , this is my coding will anybody help me in rectifying it.
its urgent..
FUNCTION zmm_stock_update.
*"----
""Local Interface:
*" IMPORTING
*" VALUE(IM_STOCK) TYPE ZMM_TAB OPTIONAL
*" TABLES
*" IT_STKBAPI TYPE ZMM_MNA OPTIONAL
*" IT_RETURN TYPE BAPIRET2_T OPTIONAL
*"----
data : lv_message type string.
SORT im_stock BY werks lgort matnr.
LOOP AT im_stock INTO gs_lstock.
MOVE gs_lstock TO gs_gstock.
APPEND gs_gstock TO gt_stock.
ENDLOOP.
LOOP AT gt_stock INTO gs_gstock.
ADD 1 TO gv_cnt.
CALL FUNCTION 'GUID_CREATE'
IMPORTING
ev_guid_16 = gv_transid.
gs_stk-tran_id = gv_transid. " Transaction id
gs_stk-line_no = gv_cnt. " line count
gs_stk-bldat = sy-datum. " Document Date
gs_stk-budat = sy-datum - 1. " Posting Date
SELECT SINGLE werks
FROM t001w
INTO gv_werks
WHERE werks = gs_gstock-werks.
validate plant exist in the check table
IF sy-subrc NE c_0.
ls_return-message_v1 = gv_transid.
ls_return-message_v2 = 'Plant does not exist in check table'(001).
ls_return-parameter = 'werks' .
ls_return-field = gs_gstock-werks.
gv_error = c_X. "error flag
continue.
ELSE.
gs_stk-werks = gs_gstock-werks. " Plant
ENDIF.
SELECT SINGLE matnr
FROM mara
INTO gv_matnr
WHERE matnr = gs_gstock-matnr.
validate plant exist in the check table
IF sy-subrc NE c_0.
ls_return-message_v1 = gv_transid.
ls_return-message_v2 = 'material does not exist in Mara table'(002).
ls_return-parameter = 'matnr'.
ls_return-field = gs_gstock-matnr.
gv_error = c_x. "error flag
continue.
ELSE.
gs_stk-matnr = gs_gstock-matnr. " Material
ENDIF.
APPEND gs_stk TO gt_stktabl.
CLEAR gs_stk.
if gv_error = c_X.
CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = gv_err
cl = gv_id
number = gv_number
PAR1 = ls_return-message_v1
PAR2 = ls_return-message_v2
PARAMETER = ls_return-parameter
ROW = gv_cnt
FIELD = ls_return-field
IMPORTING
RETURN = it_return
.
clear ls_return.
endif.
ENDLOOP.
ENDFUNCTION.
Regards,
‎2007 Feb 19 6:43 AM
Hi Sapna ,
I have modified the code in the bold.
data : ls_return type BAPIRET2.
data : lv_message type string.
SORT im_stock BY werks lgort matnr.
LOOP AT im_stock INTO gs_lstock.
MOVE gs_lstock TO gs_gstock.
APPEND gs_gstock TO gt_stock.
ENDLOOP.
LOOP AT gt_stock INTO gs_gstock.
ADD 1 TO gv_cnt.
CALL FUNCTION 'GUID_CREATE'
IMPORTING
ev_guid_16 = gv_transid.
gs_stk-tran_id = gv_transid. " Transaction id
gs_stk-line_no = gv_cnt. " line count
gs_stk-bldat = sy-datum. " Document Date
gs_stk-budat = sy-datum - 1. " Posting Date
SELECT SINGLE werks
FROM t001w
INTO gv_werks
WHERE werks = gs_gstock-werks.
validate plant exist in the check table
IF sy-subrc NE c_0.
ls_return-message_v1 = gv_transid.
ls_return-message_v2 = 'Plant does not exist in check table'(001).
ls_return-parameter = 'werks' .
ls_return-field = gs_gstock-werks.
gv_error = c_X. "error flag
<b>CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = gv_err
cl = gv_id
number = gv_number
PAR1 = ls_return-message_v1
PAR2 = ls_return-message_v2
PARAMETER = ls_return-parameter
ROW = gv_cnt
FIELD = ls_return-field
IMPORTING
RETURN = ls_return.</b>
append ls_return to it_return.
continue.
ELSE.
gs_stk-werks = gs_gstock-werks. " Plant
ENDIF.
SELECT SINGLE matnr
FROM mara
INTO gv_matnr
WHERE matnr = gs_gstock-matnr.
validate plant exist in the check table
IF sy-subrc NE c_0.
ls_return-message_v1 = gv_transid.
ls_return-message_v2 = 'material does not exist in Mara table'(002).
ls_return-parameter = 'matnr'.
ls_return-field = gs_gstock-matnr.
gv_error = c_x. "error flag
<b>CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = gv_err
cl = gv_id
number = gv_number
PAR1 = ls_return-message_v1
PAR2 = ls_return-message_v2
PARAMETER = ls_return-parameter
ROW = gv_cnt
FIELD = ls_return-field
IMPORTING
RETURN = ls_return.</b>
append ls_return to it_return.
continue.
ELSE.
gs_stk-matnr = gs_gstock-matnr. " Material
ENDIF.
APPEND gs_stk TO gt_stktabl.
CLEAR gs_stk.
remove the following code.
<b>if gv_error = c_X.
CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = gv_err
cl = gv_id
number = gv_number
PAR1 = ls_return-message_v1
PAR2 = ls_return-message_v2
PARAMETER = ls_return-parameter
ROW = gv_cnt
FIELD = ls_return-field
IMPORTING
RETURN = it_return
.</b>clear ls_return.
endif.
ENDLOOP.
ENDFUNCTION.
Please reward if useful.