物料冲销过账MB_CANCEL_GOODS_MOVE…

*&---------------------------------------------------------------------*
*& Report  ZLM_TEST_023
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zlm_test_023.

TABLES: mkpf, imkpf, emkpf, likp.
DATA:   BEGIN OF imseg OCCURS 0.
        INCLUDE STRUCTURE imseg.
DATA:   END OF imseg.

DATA:   BEGIN OF emseg OCCURS 0.
        INCLUDE STRUCTURE emseg.
DATA:   END OF emseg.

PARAMETERS: lf_budat  LIKE sy-datlo   DEFAULT sy-datlo OBLIGATORY,
            lf_mjahr  LIKE mkpf-mjahr DEFAULT sy-datlo(4) OBLIGATORY,
            lf_mblnr  LIKE mkpf-mblnr OBLIGATORY,
            lf_vbeln  LIKE likp-vbeln OBLIGATORY,
            lf_test   TYPE c DEFAULT 'X'.

DATA:   mblpo LIKE mseg-zeile.

SELECT SINGLE * FROM mkpf WHERE mblnr = lf_mblnr
                          AND   mjahr = lf_mjahr
                          AND   xblnr = lf_vbeln.
IF sy-subrc IS INITIAL.
  CALL FUNCTION 'MB_CANCEL_GOODS_MOVEMENT'
    EXPORTING
      budat     = lf_budat
      mblnr     = lf_mblnr
      mblpo     = mblpo
      mjahr     = lf_mjahr
      tcode     = 'VL09'
      called_by = 'VL09'
    IMPORTING
      emkpf     = emkpf
    TABLES
      emseg     = emseg
      imseg     = imseg
    EXCEPTIONS
      OTHERS    = 1.
*... No error found, then it will be posted
  IF emkpf-subrc EQ 1.
    IF lf_test IS INITIAL.
      CALL FUNCTION 'MB_POST_GOODS_MOVEMENT'
        EXPORTING
          xblnr_sd = lf_vbeln
        IMPORTING
          emkpf    = emkpf
        EXCEPTIONS
          OTHERS   = 0.
      COMMIT WORK.
      WRITE: / 'Goods movement was cancelled successfully with document:',
              emkpf-mblnr.
    ELSE.
      WRITE: / 'Testmode: Goods movement could be cancelled !'.
    ENDIF.
  ELSE.
*... otherwise write an error-log
    LOOP AT emseg.
      WRITE: /
                emseg-msgid,
                emseg-msgno,
                emseg-msgty,
                emseg-msgv1,
               emseg-msgv2,
               emseg-msgv3,
               emseg-msgv4.
    ENDLOOP.
    WRITE: / emkpf-msgid,
             emkpf-msgno,
             emkpf-msgty,
             emkpf-msgv1,
             emkpf-msgv2,
             emkpf-msgv3,
             emkpf-msgv4.
  ENDIF.
ELSE.
  WRITE: / 'Material document to reverse does not exsist'.
ENDIF.

转载于:https://www.cnblogs.com/senlinmu110/p/3802155.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值