冲销交货单WS_REVERSE_GOODS_ISSUE

本文提供了一个使用SAP系统进行冲销货物发行的程序示例,其中包括了如何锁定交货单并调用SAP标准功能'WS_REVERSE_GOODS_ISSUE'来完成退货流程。
LOOP AT ITAB.

    AT END OF VBELN.
      PERFORM FRM_LOCK_DELIVERY(ZSDS0002) USING ITAB-VBELN.


      CALL FUNCTION 'WS_REVERSE_GOODS_ISSUE'
        EXPORTING
          I_VBELN                   = ITAB-VBELN
          I_BUDAT                   = LV_BUDAT
          I_TCODE                   = 'VL09'
          I_VBTYP                   = 'J'
        TABLES
          T_MESG                    = LT_MESG
        EXCEPTIONS
          ERROR_REVERSE_GOODS_ISSUE = 1
          OTHERS                    = 2.
      IF SY-SUBRC =  0.
        COMMIT WORK.

        WRITE : / ITAB-VBELN, '冲销成功'.
      ELSE.
        WRITE : / ITAB-VBELN, '冲销失败'.
      ENDIF.
    ENDAT.

  ENDLOOP.

*****************************************************
FORM FRM_LOCK_DELIVERY  USING    P_DELIVERY.
  DATA : LV_TIME TYPE P DECIMALS 2 VALUE '0.50'.

  CHECK P_DELIVERY IS NOT INITIAL.

  DO 10 TIMES.

    CALL FUNCTION 'ENQUEUE_EVVBLKE'
      EXPORTING
        VBELN          = P_DELIVERY
      EXCEPTIONS
        FOREIGN_LOCK   = 1
        SYSTEM_FAILURE = 2
        OTHERS         = 3.
    IF SY-SUBRC <> 0.
* Implement suitable error handling here
    ENDIF.

    IF SY-SUBRC EQ 0.

      CALL FUNCTION 'DEQUEUE_EVVBLKE'
        EXPORTING
          MODE_LIKP = 'E'
          MANDT     = SY-MANDT
          VBELN     = P_DELIVERY
          X_VBELN   = ' '
          _SCOPE    = '3'
          _SYNCHRON = ' '
          _COLLECT  = ' '.

      EXIT.
    ELSE.
      WAIT UP TO LV_TIME SECONDS.
    ENDIF.
  ENDDO.

ENDFORM.                    " FRM_LOCK_DELIVERY

 

转载于:https://www.cnblogs.com/sapSB/p/4863040.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值