diff --git a/src/objects/zcl_abapgit_object_clas.clas.abap b/src/objects/zcl_abapgit_object_clas.clas.abap index 5b0d2c661..5cb33fdb4 100644 --- a/src/objects/zcl_abapgit_object_clas.clas.abap +++ b/src/objects/zcl_abapgit_object_clas.clas.abap @@ -33,6 +33,9 @@ CLASS zcl_abapgit_object_clas DEFINITION IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input iv_package TYPE devclass RAISING zcx_abapgit_exception, + deserialize_exceptions + IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input + RAISING zcx_abapgit_exception, serialize_xml IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_output RAISING zcx_abapgit_exception, @@ -301,6 +304,21 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. ENDMETHOD. + METHOD deserialize_exceptions. + + DATA: ls_vseoclass TYPE vseoclass. + + ii_xml->read( EXPORTING iv_name = 'VSEOCLASS' + CHANGING cg_data = ls_vseoclass ). + + " For exceptions that are sub-class of another exception, we need to set the category explicitly (#6490) + IF ls_vseoclass-category = '40'. + UPDATE seoclassdf SET category = '40' WHERE clsname = ls_vseoclass-clsname. + ENDIF. + + ENDMETHOD. + + METHOD deserialize_pre_ddic. DATA: ls_vseoclass TYPE vseoclass. @@ -863,6 +881,10 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. corr_insert( iv_package ). ENDIF. + ELSEIF iv_step = zif_abapgit_object=>gc_step_id-late. + + deserialize_exceptions( io_xml ). + ENDIF. ENDMETHOD. @@ -898,6 +920,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. METHOD zif_abapgit_object~get_deserialize_steps. APPEND zif_abapgit_object=>gc_step_id-early TO rt_steps. APPEND zif_abapgit_object=>gc_step_id-abap TO rt_steps. + APPEND zif_abapgit_object=>gc_step_id-late TO rt_steps. ENDMETHOD.