mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
DDLS, DCLS, DDLX: Improve Error handling
This commit is contained in:
parent
246b943b87
commit
2a11522598
|
@ -23,7 +23,8 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lo_dcl TYPE REF TO object.
|
||||
DATA: lo_dcl TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
|
@ -34,8 +35,9 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DCLS error' ).
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -43,8 +45,9 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lo_dcl TYPE REF TO object.
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lo_dcl TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
@ -78,8 +81,9 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DCLS error' ).
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
@ -89,7 +93,8 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lo_dcl TYPE REF TO object.
|
||||
DATA: lo_dcl TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
|
@ -102,8 +107,9 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
RECEIVING
|
||||
rv_exists = rv_bool.
|
||||
|
||||
CATCH cx_root.
|
||||
rv_bool = abap_false.
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -138,8 +144,9 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lo_dcl TYPE REF TO object.
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lo_dcl TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
@ -189,8 +196,9 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
io_xml->add( iv_name = 'DCLS'
|
||||
ig_data = <lg_data> ).
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DCLS error' ).
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -13,13 +13,14 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_DDLS IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD open_adt_stob.
|
||||
|
||||
DATA: lr_data TYPE REF TO data.
|
||||
DATA: lo_ddl TYPE REF TO object.
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lo_ddl TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <lt_ddnames> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS: <lt_entity_view> TYPE STANDARD TABLE.
|
||||
|
@ -66,8 +67,9 @@ CLASS ZCL_ABAPGIT_OBJECT_DDLS IMPLEMENTATION.
|
|||
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DDLS Jump Error' ).
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -76,7 +78,8 @@ CLASS ZCL_ABAPGIT_OBJECT_DDLS IMPLEMENTATION.
|
|||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
DATA: lo_ddl TYPE REF TO object,
|
||||
lr_data TYPE REF TO data.
|
||||
lr_data TYPE REF TO data,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
@ -102,7 +105,9 @@ CLASS ZCL_ABAPGIT_OBJECT_DDLS IMPLEMENTATION.
|
|||
IF sy-subrc = 0.
|
||||
rv_user = <lg_field>.
|
||||
ENDIF.
|
||||
CATCH cx_root.
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
IF rv_user IS INITIAL.
|
||||
|
@ -119,7 +124,8 @@ CLASS ZCL_ABAPGIT_OBJECT_DDLS IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lo_ddl TYPE REF TO object.
|
||||
DATA: lo_ddl TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
|
@ -130,8 +136,9 @@ CLASS ZCL_ABAPGIT_OBJECT_DDLS IMPLEMENTATION.
|
|||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~DELETE')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name.
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DDLS error deleting' ).
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -139,8 +146,9 @@ CLASS ZCL_ABAPGIT_OBJECT_DDLS IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lo_ddl TYPE REF TO object,
|
||||
lr_data TYPE REF TO data.
|
||||
DATA: lo_ddl TYPE REF TO object,
|
||||
lr_data TYPE REF TO data,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
@ -172,8 +180,10 @@ CLASS ZCL_ABAPGIT_OBJECT_DDLS IMPLEMENTATION.
|
|||
objectname = ms_item-obj_name
|
||||
devclass = iv_package
|
||||
prid = 0.
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DDLS error writing TADIR' ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
@ -250,7 +260,8 @@ CLASS ZCL_ABAPGIT_OBJECT_DDLS IMPLEMENTATION.
|
|||
|
||||
DATA: lo_ddl TYPE REF TO object,
|
||||
lr_data TYPE REF TO data,
|
||||
lt_clr_comps TYPE STANDARD TABLE OF fieldname WITH DEFAULT KEY.
|
||||
lt_clr_comps TYPE STANDARD TABLE OF fieldname WITH DEFAULT KEY,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any,
|
||||
|
@ -271,8 +282,9 @@ CLASS ZCL_ABAPGIT_OBJECT_DDLS IMPLEMENTATION.
|
|||
get_state = 'A'
|
||||
IMPORTING
|
||||
ddddlsrcv_wa = <lg_data>.
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DDLS error reading' ).
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
APPEND 'AS4USER' TO lt_clr_comps.
|
||||
|
|
|
@ -80,6 +80,8 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
|
||||
METHOD get_persistence.
|
||||
|
||||
DATA: lx_error TYPE REF TO cx_root.
|
||||
|
||||
TRY.
|
||||
IF mo_persistence IS NOT BOUND.
|
||||
|
||||
|
@ -88,8 +90,9 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( `DDLX not supported` ).
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
ri_persistence = mo_persistence.
|
||||
|
@ -111,7 +114,6 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
|
||||
DATA: lv_object_key TYPE seu_objkey,
|
||||
li_data_model TYPE REF TO if_wb_object_data_model,
|
||||
lv_text TYPE string,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
|
||||
|
@ -124,8 +126,8 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
p_version = swbm_version_active ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
lv_text = lx_error->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -135,7 +137,6 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
|
||||
DATA: li_data_model TYPE REF TO if_wb_object_data_model,
|
||||
lr_data TYPE REF TO data,
|
||||
lv_text TYPE string,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
|
@ -170,8 +171,8 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
get_persistence( )->save( li_data_model ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
lv_text = lx_error->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -208,6 +209,14 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~is_locked.
|
||||
|
||||
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'ESDICT'
|
||||
iv_argument = |{ ms_item-obj_type }{ ms_item-obj_name }| ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
TRY.
|
||||
|
@ -227,7 +236,6 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
li_data_model TYPE REF TO if_wb_object_data_model,
|
||||
li_persistence TYPE REF TO if_wb_object_persist,
|
||||
lr_data TYPE REF TO data,
|
||||
lv_text TYPE string,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
|
@ -269,17 +277,9 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
ig_data = <lg_data> ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
lv_text = lx_error->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~is_locked.
|
||||
|
||||
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'ESDICT'
|
||||
iv_argument = |{ ms_item-obj_type }{ ms_item-obj_name }| ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
Loading…
Reference in New Issue
Block a user