进行退货后产生的物料凭证MvT也分两种:

如果参照的收货物料凭证的MvT 101或105,则退货物料凭证的MvT是122;

如果参照的是收货冻结的物料凭证(MvT 103)退货,生成的退货物料凭证MvT是124,做此项操作时不需要输入工厂

本文案例只针对105做退货物料凭证MvT122的参数过账

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 = '01'. "T158G-GMCODE
ls_header-pstng_date = sy-datum.
ls_header-doc_date = sy-datum.

"退料
ls_item-material = '1000000501'. "物料
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = ls_item-material
    IMPORTING
      output = ls_item-material.
ls_item-vendor = '008200111'. "供应商
ls_item-po_number = '3000000209'."采购单
ls_item-po_item = '10'."采购单行项目
ls_item-ref_doc = '6000006596'."参考的采购凭证 此处为105入库凭证中的参考凭证LFBNR 的值
ls_item-ref_doc_IT = '1'.
ls_item-entry_qnt = '1'.  "数量
ls_item-entry_uom = 'PCS'. "单位
ls_item-plant = '1000'. "工厂
ls_item-stge_loc = '1000'. "库位
ls_item-move_type = '122'. "移动类型
ls_item-mvt_ind = 'B'.
LS_ITEM-batch = '2300010201'."批次
ls_item-move_reas = '0101'."退货原因

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