MBST 冲销物料凭证 BAPI_GOODSMVT_CANCEL

DEMO1:

REPORT  zdemo_mbst.

PARAMETERS p_mblnr TYPE bapi2017_gm_head_02-mat_doc.
PARAMETERS p_ebeln TYPE ebeln.

DATA:lt_ekbe TYPE TABLE OF ekbe.
DATA:ls_ekbe TYPE          ekbe.

DATA:lv_mblnr LIKE mseg-mblnr..

DATA:ls_goodsmvt_headret LIKE bapi2017_gm_head_ret.
DATA:lt_return LIKE TABLE OF   bapiret2.
DATA:ls_return LIKE            bapiret2.

DATA:ls_goodsmvt_pstng_date  TYPE  bapi2017_gm_head_02-pstng_date.
DATA:ls_goodsmvt_pr_uname    TYPE  bapi2017_gm_head_01-pr_uname.

CLEAR ls_goodsmvt_headret.
CLEAR lt_return[].
ls_goodsmvt_pstng_date = sy-datum.
ls_goodsmvt_pr_uname =  sy-uname.


"根据MIGO收货的采购订单,找到对应的收货凭证
IF p_mblnr IS INITIAL AND p_ebeln IS NOT INITIAL.
  SELECT * FROM ekbe INTO TABLE lt_ekbe
    WHERE ebeln = p_ebeln AND gjahr = sy-datum(4) AND bwart = '101'.

  SORT lt_ekbe BY belnr DESCENDING.
  READ TABLE lt_ekbe INTO ls_ekbe INDEX 1.
  p_mblnr = ls_ekbe-belnr.
ENDIF.


CALL FUNCTION 'BAPI_GOODSMVT_CANCEL'
  EXPORTING
    materialdocument    = p_mblnr
    matdocumentyear     = sy-datum(4)
    goodsmvt_pstng_date = ls_goodsmvt_pstng_date
    goodsmvt_pr_uname   = ls_goodsmvt_pr_uname
  IMPORTING
    goodsmvt_headret    = ls_goodsmvt_headret
  TABLES
    return              = lt_return.


CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  EXPORTING
    wait = 'X'.

DEMO2:

     DATA: e_companycode TYPE bukrs,
      e_asset       TYPE bf_anln1,
      e_subnumber   TYPE bf_anln2,
      e_return      TYPE bapiret2 OCCURS 0 WITH HEADER LINE.

*&-----冲销
     DATA :i_materialdocument TYPE bapi2017_gm_head_02-mat_doc,
      i_matdocumentyear  TYPE bapi2017_gm_head_02-doc_year,
      i_goodsmvt_headret TYPE bapi2017_gm_head_ret.

     LOOP AT it_alv INTO wa_alv WHERE box = 'X'.
        CLEAR: e_return,i_materialdocument,i_matdocumentyear,i_goodsmvt_headret.
        i_materialdocument = wa_alv-mblnr.
        i_matdocumentyear = wa_alv-mjahr.

        CALL FUNCTION 'BAPI_GOODSMVT_CANCEL'
          EXPORTING
            materialdocument    = i_materialdocument
            matdocumentyear     = i_matdocumentyear
            goodsmvt_pstng_date = sy-datum
        "   GOODSMVT_PR_UNAME   = sy-usnam
          IMPORTING
            goodsmvt_headret    = i_goodsmvt_headret
          TABLES
            return              = e_return
*           GOODSMVT_MATDOCITEM =
          .
        READ TABLE e_return WITH KEY type = 'E'.
        IF sy-subrc <> 0.
          wa_alv-mblnr = i_goodsmvt_headret-mat_doc.
          wa_alv-mjahr = i_goodsmvt_headret-doc_year.
          wa_alv-flag = ''.
          MODIFY it_alv FROM wa_alv.

          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
            EXPORTING
              wait = 'X'.
          MESSAGE '冲销成功!' TYPE 'S'.
        ELSE.
          CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .
          MESSAGE e_return-message TYPE e_return-type.
        ENDIF.
      ENDLOOP.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值