1.定义
DATA: LS_HEADER TYPE BAPI2017_GM_HEAD_01,
LV_CODE TYPE GM_CODE,
LS_HEAD_RET TYPE BAPI2017_GM_HEAD_RET,
LT_ITEM TYPE TABLE OF BAPI2017_GM_ITEM_CREATE,
LS_ITEM LIKE LINE OF LT_ITEM,
LT_RETURN TYPE TABLE OF BAPIRET2,
LS_RETURN LIKE LINE OF LT_RETURN.
2.
GM_CODE 对应的事务码,可在表T158G中找到。
01 MB01
02 MB31
03 MB1A
04 MB1B
05 MB1C
06 MB11
07 MB04
*表头赋值
LS_HEADER-PSTNG_DATE = SY-DATUM.
LS_HEADER-DOC_DATE = SY-DATUM.
*行项目赋值
LS_ITEM-MATERIAL = LT_MB1B-MATNR."物料
LS_ITEM-PLANT = LT_MB1B-WERKS."工厂
LS_ITEM-STGE_LOC = LT_MB1B-LGORT."库位
LS_ITEM-MOVE_TYPE = GC_MOVE_344."移动类型
LS_ITEM-SPEC_STOCK = 'E'."特殊库存标识
LS_ITEM-VAL_SALES_ORD = LT_MB1B-VBELN."销售订单
LS_ITEM-VAL_S_ORD_ITEM = LT_MB1B-POSNR."销售订单项目
LS_ITEM-ENTRY_QNT = LT_MB1B-KALAB.
APPEND LS_ITEM TO LT_ITEM.
CLEAR LS_ITEM.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
GOODSMVT_HEADER = LS_HEADER
GOODSMVT_CODE = GC_CODE_04
IMPORTING
GOODSMVT_HEADRET = LS_HEAD_RET
TABLES
GOODSMVT_ITEM = LT_ITEM
RETURN = LT_RETURN.
READ TABLE LT_RETURN INTO LS_RETURN WITH KEY TYPE = 'E'.
IF SY-SUBRC <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ELSE .
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF .
不同的CODE对应需要的参数可能不一致,不清楚时可在前端操作一遍,查看是缺少了哪个字段。