ABAP 删除销售单

REPORT ZTEST72.

PARAMETERS:p_vbeln TYPE vbeln OBLIGATORY.


START-OF-SELECTION.

  DATA: ls_so_headerx TYPE bapisdh1x ,
        ls_dn_header  TYPE bapiobdlvhdrchg ,
        ls_dn_hcont   TYPE bapiobdlvhdrctrlchg ,
        lt_return     TYPE STANDARD TABLE OF bapiret2,
        ls_return     TYPE bapiret2,
        ov_msg        TYPE char200.


 SELECT COUNT(*) FROM VBAK WHERE vbeln = p_vbeln.
 IF SY-SUBRC = 0.
 CLEAR :ls_so_headerx,lt_return .
  ls_so_headerx-updateflag = 'D'.
  CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
    EXPORTING
      salesdocument    = p_vbeln
      order_header_inx = ls_so_headerx
    TABLES
      return           = lt_return.
  READ TABLE lt_return INTO ls_return TRANSPORTING NO FIELDS WITH KEY type = 'E'.
  IF sy-subrc = 0.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    LOOP AT lt_return INTO ls_return WHERE type = 'E'.
      CONCATENATE ls_return-message ov_msg INTO ov_msg SEPARATED BY '/'.
    ENDLOOP.
  ELSE.
    READ TABLE lt_return INTO ls_return TRANSPORTING NO FIELDS WITH KEY type = 'A'.
    IF sy-subrc = 0.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      LOOP AT lt_return INTO ls_return WHERE type = 'A'.
        CONCATENATE ls_return-message ov_msg INTO ov_msg SEPARATED BY '/'.
      ENDLOOP.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = 'X'.
      ov_msg  = '删除成功' .
    ENDIF .
  ENDIF .
 ENDIF.

 

posted @ 2023-02-10 15:18  骑着蜗牛着世界  阅读(87)  评论(0编辑  收藏  举报