Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

handle errors in Function module

Former Member
0 Likes
367

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,

1 REPLY 1
Read only

Former Member
0 Likes
338

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.