使用转移类型343将过账将过帐锁定库存传输到未限制使用的库存。
*使用bapi需要用到的
"Import
DATA: gs_goodsmvt_header TYPE bapi2017_gm_head_01,
gv_goodsmvt_code TYPE bapi2017_gm_code.
"Export
DATA: gs_goodsmvt_headref TYPE bapi2017_gm_head_ret.
"Table
DATA: gt_goodsmvt_item TYPE TABLE OF bapi2017_gm_item_create,
wa_goodsmvt_item TYPE bapi2017_gm_item_create,
gt_return TYPE TABLE OF bapiret2,
wa_return TYPE bapiret2.
DATA: lv_error TYPE c.
GM Code 在 T158G 这个表里
"Goods Move
"Header
gs_goodsmvt_header-pstng_date = sy-datum.
gs_goodsmvt_header-doc_date = sy-datum.
"GM Code
gv_goodsmvt_code = '06'. "收货
"Item
wa_goodsmvt_item-material = gs_output-matnr. "物料
wa_goodsmvt_item-plant = gs_output-werks101. "工厂
wa_goodsmvt_item-stge_loc = gs_output-lgort101. "库存地点
wa_goodsmvt_item-move_type = '343'. "移动类型 343
wa_goodsmvt_item-entry_qnt = gs_output-menge343. "交货数量
wa_goodsmvt_item-entry_uom = gs_output-meins. "销售单位
wa_goodsmvt_item-entry_uom_iso = gs_output-meins. "基本的单位
APPEND wa_goodsmvt_item TO gt_goodsmvt_item.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = gs_goodsmvt_header
goodsmvt_code = gv_goodsmvt_code
IMPORTING
goodsmvt_headret = gs_goodsmvt_headref
TABLES
goodsmvt_item = gt_goodsmvt_item
return = gt_return.
LOOP AT gt_return INTO wa_return WHERE type CA 'AEX'.
IF sy-subrc = 0.
lv_error = 'E'.
EXIT.
ENDIF.
ENDLOOP.
IF lv_error EQ 'E'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
MESSAGE '过账失败' TYPE 'S' DISPLAY LIKE 'E'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
MESSAGE '过账成功' TYPE 'S'.
ENDIF.