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(  ).

Comments are closed.

Post Navigation