二维码

[BAPI] 外向交货单删除BAPI_OUTB_DELIVERY_CHANGE

Twilight发表于 2018-09-30 16:00Twilight 最后回复于 2018-09-30 16:00 [复制链接] 6003 0

这里是硬删除,直接删除整个订单数据,不是标记删除标记

程序代码:
  1. FUNCTION zsdfm016.
  2. *"----------------------------------------------------------------------
  3. *"*"本地接口
  4. *"  IMPORTING
  5. *"     VALUE(I_VBELN) TYPE  VBELN_VL OPTIONAL
  6. *"     VALUE(I_LIFEX) TYPE  LIFEX OPTIONAL
  7. *"  EXPORTING
  8. *"     VALUE(E_MESSAGE) TYPE  ZOTS001
  9. *"----------------------------------------------------------------------
  10.   DATA:BEGIN OF ls_vbeln,
  11.          vbeln TYPE likp-vbeln,
  12.        END OF ls_vbeln.
  13.   DATA:ls_header_data    TYPE bapiobdlvhdrchg.
  14.   DATA:ls_header_control TYPE bapiobdlvhdrctrlchg.
  15.   DATA:lv_vbeln          TYPE likp-vbeln.
  16.   DATA:lv_line           TYPE i.
  17.   DATA:lt_return TYPE TABLE OF bapiret2 WITH HEADER LINE.
  18.   DATA:lt_vbeln LIKE TABLE OF ls_vbeln WITH HEADER LINE.

  19.   IF i_vbeln IS NOT INITIAL.
  20.     lv_vbeln = i_vbeln.
  21.     SELECT SINGLE vbeln INTO ls_vbeln FROM likp WHERE vbeln = lv_vbeln.
  22.     IF sy-subrc NE 0.
  23.       e_message-type = 'S'.
  24.       e_message-message = '没有符合条件数据'.
  25.       EXIT.
  26.     ENDIF.
  27.   ELSEIF i_lifex IS NOT INITIAL.
  28.     SELECT vbeln INTO TABLE lt_vbeln FROM likp WHERE lifex = i_lifex.
  29.     IF sy-subrc = 0.
  30.       DESCRIBE TABLE lt_vbeln LINES lv_line.
  31.       IF lv_line = 1.
  32.         READ TABLE lt_vbeln INDEX 1.
  33.         lv_vbeln = lt_vbeln-vbeln.
  34.       ELSE.
  35.         e_message-type = 'E'.
  36.         e_message-message = '数据异常:多条'.
  37.         EXIT.
  38.       ENDIF.
  39.     ELSE.
  40.       e_message-type = 'S'.
  41.       e_message-message = '没有符合条件数据'.
  42.       EXIT.
  43.     ENDIF.
  44.   ELSE.
  45.     e_message-type = 'E'.
  46.     e_message-message = '输入条件不能全为空'.
  47.     EXIT.
  48.   ENDIF.

  49.   ls_header_data-deliv_numb    = lv_vbeln.
  50.   ls_header_control-deliv_numb = lv_vbeln.
  51.   ls_header_control-dlv_del    = 'X'."Delete whole Delivery

  52.   CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
  53.     EXPORTING
  54.       header_data    = ls_header_data
  55.       header_control = ls_header_control
  56.       delivery       = lv_vbeln
  57.     TABLES
  58. *     item_data      = item_data
  59. *     item_control   = item_control
  60.       return         = lt_return.

  61.   LOOP AT lt_return WHERE type CA 'AEX'.
  62.     IF e_message-message IS INITIAL.
  63.       e_message-message = lt_return-message.
  64.     ELSE.
  65.       e_message-message = e_message-message && '/' && lt_return-message.
  66.     ENDIF.
  67.   ENDLOOP.
  68.   IF sy-subrc = 0.
  69.     e_message-type = 'E'.
  70.     CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .
  71.     EXIT.
  72.   ELSE.
  73.     CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  74.       EXPORTING
  75.         wait = 'X'.
  76.     e_message-type = 'S'.
  77.     e_message-message  = '删除交货单成功'.
  78.   ENDIF.

  79. ENDFUNCTION.
复制代码

删除交货单行项目:
  1. item_control-deliv_numb = wa_lips-vbeln.
  2. item_control-deliv_item = wa_lips-posnr.
  3. item_control-del_item = 'X'."Delete item
  4. APPEND item_control.
复制代码
回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表