DATA i_mblnr TYPE ztmm_xsj_salesp-mblnr.
DATA i_mjahr TYPE mseg-gjahr.
DATA i_datum TYPE sy-datum.
DATA:lt_return TYPE TABLE OF bapiret2 WITH HEADER LINE.
DATA:ls_goodsmvt_headret TYPE bapi2017_gm_head_ret.
LOOP AT gt_alv INTO gs_alv WHERE p_box = ‘X’ AND xblnr IS INITIAL.
CLEAR:ls_goodsmvt_headret,lt_return[],lt_return.
i_mblnr = gs_alv-mblnr.
i_mjahr = gs_alv-budat+0(4).
i_datum = gs_alv-budat.
ENDLOOP.
CALL FUNCTION ‘BAPI_GOODSMVT_CANCEL’
EXPORTING
materialdocument = i_mblnr
matdocumentyear = i_mjahr
goodsmvt_pstng_date = i_datum
goodsmvt_pr_uname = sy-uname
IMPORTING
goodsmvt_headret = ls_goodsmvt_headret
TABLES
return = lt_return.
IF lt_return[] IS INITIAL.
CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’
EXPORTING
wait = ‘X’.
CONCATENATE ‘作废成功,凭证号:’ ls_goodsmvt_headret-mat_doc INTO l_mess6.
MESSAGE l_mess6 TYPE ‘S’ .
g_mes = ‘’.
ELSE.
g_mes = lt_return-message.
CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK’.
LOOP AT gt_alv INTO gs_alv WHERE p_box = ‘X’ AND xblnr IS INITIAL.
gs_alv-mbinfo = g_mes. "执行信息
MODIFY gt_alv FROM gs_alv.
MOVE-CORRESPONDING gs_alv TO gs_salesp.
gs_salesp-usnam = gs_alv-usnam. "操作人员
gs_salesp-mbstat = gs_alv-mbstat. "单据状态
gs_salesp-budat = gs_alv-budat. "过账日期
gs_salesp-bldat = gs_alv-bldat. "凭证日期
gs_salesp-xblnr = gs_alv-xblnr. "物料凭
gs_salesp-mbinfo = g_mes. "执行信息
MODIFY ztmm_xsj_salesp FROM gs_salesp.
CLEAR: gs_alv, gs_salesp.
ENDLOOP.
EXIT.
ENDIF.