SAP的311属于场内库存一步法调拨,直接从A库调拨到B库,比较节省时间,也是众多公司常用的一种调拨方式,本只列举了普通库存和E库存的调拨传参,其他特殊库存调拨未归纳进来,本文仅供参考
DATA: lt_item TYPE TABLE OF bapi2017_gm_item_create, lt_return TYPE TABLE OF bapiret2, ls_item TYPE bapi2017_gm_item_create, ls_header TYPE bapi2017_gm_head_01, ls_code TYPE bapi2017_gm_code, lv_mblnr TYPE mblnr, lv_mjahr TYPE mjahr. ls_code = '04'. "T158G-GMCODE ls_header-pstng_date = sy-datum. ls_header-doc_date = sy-datum. ls_item-move_type = '311'. "移动类型 ls_item-material = '10008782'. "退货物料 ls_item-entry_qnt = '1'. "退货数量 ls_item-entry_uom = 'PAK'. "退货单位 ls_item-plant = '2001'. "退货工厂 ls_item-stge_loc = '1001'. "退货库位 ls_item-move_stloc = '1002'."接收的库位 "做E库存调拨时需要填写以下信息。 *ls_item-SPEC_STOCK = 'E'."特殊库存 * *ls_item-SALES_ORD = '1300000203'. "调拨前的的销售订单 * *ls_item-S_ORD_ITEM = '000020'."调拨前的的销售订单行项目 * *ls_item-VAL_SALES_ORD = '1300000203'."调拨后的的销售订单 *ls_item-VAL_S_ORD_ITEM = '000020'."调拨后的的销售订单行项目 APPEND ls_item TO lt_item.CLEAR ls_item. CALL FUNCTION 'BAPI_GOODSMVT_CREATE' EXPORTING goodsmvt_header = ls_header goodsmvt_code = ls_code IMPORTING * goodsmvt_headret = materialdocument = lv_mblnr matdocumentyear = lv_mjahr TABLES goodsmvt_item = lt_item return = lt_return. READ TABLE lt_return WITH KEY type = 'E' TRANSPORTING NO FIELDS. IF sy-subrc NE 0. COMMIT WORK AND WAIT. ELSE. ROLLBACK WORK. ENDIF. cl_demo_output=>write( lv_mblnr ). cl_demo_output=>write( lv_mjahr ). cl_demo_output=>write( lt_return ). cl_demo_output=>display( ).