REPORT zdtest6.
**判断是否有原始组件,如有全删
DATA: ls_return TYPE coxt_bapireturn.
DATA: lt_resbkeys TYPE coxt_t_resbdel,
lt_return TYPE STANDARD TABLE OF bapiret2,
lv_error TYPE flag.
DATA:
lv_orderno TYPE aufnr,
ls_orderdata TYPE bapi_pp_order_create,
ls_return1 TYPE bapiret2.
START-OF-SELECTION.
PARAMETERS:p_aufnr TYPE aufnr OBLIGATORY.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = p_aufnr
IMPORTING
output = p_aufnr.
SELECT SINGLE rsnum
FROM afko
INTO @DATA(lv_rsnum)
WHERE aufnr = @p_aufnr.
SELECT rsnum,
rspos,
matnr,
werks,
bdmng,
meins
FROM resb
INTO TABLE @DATA(lt_resb)
WHERE rsnum = @lv_rsnum.
IF sy-subrc EQ 0.
lt_resbkeys = CORRESPONDING #( lt_resb ).
ENDIF.
CHECK lt_resbkeys[] IS NOT INITIAL.
* BAPI to delete the components of Production Order
CALL FUNCTION 'CO_XT_COMPONENTS_DELETE'
EXPORTING
it_resbkeys_to_delete = lt_resbkeys
IMPORTING
e_error_occurred = lv_error
TABLES
ct_bapireturn = lt_return
EXCEPTIONS
delete_failed = 1
OTHERS = 2.
IF lv_error IS INITIAL.
PERFORM change_flag_set(saplcozv).
* CALL FUNCTION 'CO_IT_SET_FLG_ITAB_NEW'.
CALL FUNCTION 'CO_XT_ORDER_PREPARE_COMMIT'.
COMMIT WORK AND WAIT.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.