二维码

[BAPI] 生产订单报工取消CO13:BAPI_PRODORDCONF_CANCEL

Twilight发表于 2018-09-30 15:50Twilight 最后回复于 2018-09-30 15:50 [复制链接] 9689 0

程序代码:
  1. FUNCTION zppfm011.
  2. *"----------------------------------------------------------------------
  3. *"*"本地接口
  4. *"  IMPORTING
  5. *"     VALUE(I_INPUT) TYPE  ZPPS005 OPTIONAL
  6. *"  EXPORTING
  7. *"     VALUE(E_MESSAGE) TYPE  ZOTS001
  8. *"----------------------------------------------------------------------
  9.   DATA:BEGIN OF ls_aufnr,
  10.          rueck TYPE afru-rueck,
  11.          rmzhl TYPE afru-rmzhl,
  12.        END OF ls_aufnr.
  13.   DATA:lt_aufnr LIKE TABLE OF ls_aufnr WITH HEADER LINE.
  14.   DATA:lv_line  TYPE i.
  15.   DATA:ls_return TYPE bapiret1.

  16.   IF i_input-rueck IS NOT INITIAL AND i_input-rmzhl IS NOT INITIAL.
  17.     SELECT SINGLE rueck rmzhl INTO ls_aufnr FROM afru WHERE rueck = i_input-rueck AND rmzhl = i_input-rmzhl AND stokz = '' AND stzhl = ''.
  18.     IF sy-subrc NE 0.
  19.       e_message-type = 'S'.
  20.       e_message-message = '没有符合条件数据'.
  21.       EXIT.
  22.     ENDIF.
  23.   ELSEIF i_input-conf_text IS NOT INITIAL.
  24.     SELECT rueck rmzhl INTO TABLE lt_aufnr FROM afru WHERE ltxa1 = i_input-conf_text AND stokz = '' AND stzhl = ''. "stokz已冲销 ,stzhl取消确认
  25.     IF sy-subrc = 0.
  26.       DESCRIBE TABLE lt_aufnr LINES lv_line.
  27.       IF lv_line = 1.
  28.         READ TABLE lt_aufnr INTO ls_aufnr INDEX 1.
  29.       ELSE.
  30.         e_message-type = 'E'.
  31.         e_message-message = '数据异常:多条'.
  32.         EXIT.
  33.       ENDIF.
  34.     ELSE.
  35.       e_message-type = 'S'.
  36.       e_message-message = '没有符合条件数据'.
  37.       EXIT.
  38.     ENDIF.
  39.   ELSE.
  40.     e_message-type = 'E'.
  41.     e_message-message = '输入条件不能全为空'.
  42.     EXIT.
  43.   ENDIF.

  44.   CHECK e_message-type NE 'E'.

  45.   CALL FUNCTION 'BAPI_PRODORDCONF_CANCEL'
  46.     EXPORTING
  47.       confirmation        = ls_aufnr-rueck
  48.       confirmationcounter = ls_aufnr-rmzhl
  49.       postg_date          = sy-datum
  50. *     CONF_TEXT           =
  51.     IMPORTING
  52.       return              = ls_return
  53. *     LOCKED              =
  54. *     CREATED_CONF_NO     =
  55. *     CREATED_CONF_COUNT  =
  56.     .

  57.   IF ls_return-type CA 'AEX' .
  58.     CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .

  59.     e_message-type = 'E'.
  60.     e_message-message = ls_return-message.
  61.     EXIT.
  62.   ELSE.
  63.     CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  64.       EXPORTING
  65.         wait = 'X'.
  66.     e_message-type = 'S'.
  67.     e_message-message  = '取消生产订单报工成功'.
  68.   ENDIF.

  69. ENDFUNCTION.
复制代码


回复

使用道具 举报

快速回帖

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

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