CLAS: Fix deserializing child exception classes (#6682)

This commit is contained in:
Marc Bernard 2023-12-01 04:24:03 -05:00 committed by GitHub
parent 931e4c1006
commit 7a86b71cd5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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.