SPRX: improve exception handling

This commit is contained in:
Christian Guenter 2019-02-03 18:50:46 +01:00 committed by Lars Hvam
parent f0c8375dbd
commit 8219acf73b

View File

@ -357,9 +357,10 @@ CLASS zcl_abapgit_object_sprx IMPLEMENTATION.
METHOD zif_abapgit_object~serialize. METHOD zif_abapgit_object~serialize.
DATA: DATA:
lo_proxy TYPE REF TO cl_proxy, lo_proxy TYPE REF TO cl_proxy,
ls_sprx_db_data TYPE sprx_db_data, ls_sprx_db_data TYPE sprx_db_data,
lt_delta TYPE sprx_t_delta. lt_delta TYPE sprx_t_delta,
lx_proxy_gen_error TYPE REF TO cx_proxy_gen_error.
FIELD-SYMBOLS: FIELD-SYMBOLS:
<ls_sproxheader> LIKE LINE OF ls_sprx_db_data-sproxhdr, <ls_sproxheader> LIKE LINE OF ls_sprx_db_data-sproxhdr,
@ -371,8 +372,8 @@ CLASS zcl_abapgit_object_sprx IMPLEMENTATION.
TRY. TRY.
lo_proxy = cl_proxy_fact=>load_by_abap_name( lo_proxy = cl_proxy_fact=>load_by_abap_name(
object = mv_object object = mv_object
obj_name = mv_obj_name ). obj_name = mv_obj_name ).
lt_delta = lo_proxy->get_delta_all( ). lt_delta = lo_proxy->get_delta_all( ).
@ -381,35 +382,36 @@ CLASS zcl_abapgit_object_sprx IMPLEMENTATION.
inactive = abap_false inactive = abap_false
delta = lt_delta ). delta = lt_delta ).
CATCH cx_proxy_gen_error INTO lx_proxy_gen_error.
LOOP AT ls_sprx_db_data-sproxhdr ASSIGNING <ls_sproxheader>. zcx_abapgit_exception=>raise( iv_text = lx_proxy_gen_error->get_text( )
ix_previous = lx_proxy_gen_error ).
CLEAR:
<ls_sproxheader>-created_by,
<ls_sproxheader>-created_on,
<ls_sproxheader>-changed_by,
<ls_sproxheader>-changed_on.
ENDLOOP.
LOOP AT ls_sprx_db_data-sproxdat ASSIGNING <ls_sproxdat>.
CLEAR <ls_sproxdat>-warnings.
ENDLOOP.
io_xml->add(
iv_name = c_proxy-header
ig_data = ls_sprx_db_data-sproxhdr ).
io_xml->add(
iv_name = c_proxy-data
ig_data = ls_sprx_db_data-sproxdat ).
CATCH cx_proxy_gen_error.
zcx_abapgit_exception=>raise( |SPRX - error load proxy { mv_obj_name }| ).
ENDTRY. ENDTRY.
LOOP AT ls_sprx_db_data-sproxhdr ASSIGNING <ls_sproxheader>.
CLEAR:
<ls_sproxheader>-created_by,
<ls_sproxheader>-created_on,
<ls_sproxheader>-changed_by,
<ls_sproxheader>-changed_on.
ENDLOOP.
LOOP AT ls_sprx_db_data-sproxdat ASSIGNING <ls_sproxdat>.
CLEAR <ls_sproxdat>-warnings.
ENDLOOP.
io_xml->add(
iv_name = c_proxy-header
ig_data = ls_sprx_db_data-sproxhdr ).
io_xml->add(
iv_name = c_proxy-data
ig_data = ls_sprx_db_data-sproxdat ).
ENDMETHOD. ENDMETHOD.
METHOD check_sprx_tadir. METHOD check_sprx_tadir.