1、使用标准事务ccundo可以取消ECN的更改
参照标准事务写了个简单的程序
PARAMETERS:P_AENNR TYPE AENNR OBLIGATORY MATCHCODE OBJECT AEN1. DATA: BADI_ECM_UNDO TYPE REF TO IF_EX_ECM_UNDO, LS_OBJECT TYPE CC01_UNDO_OBJECT, LT_MESSAGES TYPE SEDEP_ERROR_TABLE, GS_AENR TYPE AENR, lt_undo TYPE cc01_undo_object_tab. SELECT SINGLE * FROM AENR INTO GS_AENR WHERE AENNR EQ P_AENNR. CALL METHOD cl_exithandler=>get_instance EXPORTING exit_name = 'ECM_UNDO' null_instance_accepted = space CHANGING instance = badi_ecm_undo. CALL METHOD BADI_ECM_UNDO->SELECT_OBJECTS EXPORTING I_AENNR = P_AENNR CHANGING CT_OBJECTS = LT_UNDO. LOOP AT LT_UNDO INTO LS_OBJECT. *** ls_object-aenob = BOM/plant/Alternative BOM CALL METHOD BADI_ECM_UNDO->UNDO_OBJECT EXPORTING I_AENR = GS_AENR CHANGING C_OBJECT = LS_OBJECT CT_MESSAGES = LT_MESSAGES. ENDLOOP.
|