JUMP: Switch execution order - first specific then generic (#5357)

* Switch jump order

* fix DDLS

* fix SHI3
This commit is contained in:
Christian Günter 2022-02-18 05:48:36 +01:00 committed by GitHub
parent 256007685e
commit 2ba6151355
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
57 changed files with 89 additions and 71 deletions

View File

@ -447,6 +447,9 @@ CLASS ZCL_ABAPGIT_OBJECT_AIFC IMPLEMENTATION.
APPEND ls_param TO lt_params.
SUBMIT (lv_report) WITH SELECTION-TABLE lt_params AND RETURN.
rv_exit = abap_true.
ENDMETHOD.

View File

@ -224,7 +224,6 @@ CLASS zcl_abapgit_object_area IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |Jump to AREA is not yet supported| ).
ENDMETHOD.

View File

@ -90,9 +90,6 @@ CLASS zcl_abapgit_object_asfc IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |TODO: Jump| ).
ENDMETHOD.

View File

@ -155,6 +155,7 @@ CLASS ZCL_ABAPGIT_OBJECT_AUTH IMPLEMENTATION.
EXPORTING
id_field = mv_fieldname
id_wbo_mode = abap_false.
rv_exit = abap_true.
ENDIF.
ENDMETHOD.

View File

@ -187,7 +187,6 @@ CLASS ZCL_ABAPGIT_OBJECT_AVAR IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |Jump to AVAR is not supported| ).
ENDMETHOD.

View File

@ -201,9 +201,6 @@ CLASS ZCL_ABAPGIT_OBJECT_AVAS IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |Todo, AVAS jump| ).
ENDMETHOD.

View File

@ -343,6 +343,8 @@ CLASS zcl_abapgit_object_chdo IMPLEMENTATION.
iv_tcode = 'SCDO'
it_bdcdata = lt_bdcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -156,7 +156,6 @@ CLASS ZCL_ABAPGIT_OBJECT_CMOD IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |Jump to CMOD is not supported| ).
ENDMETHOD.

View File

@ -155,6 +155,8 @@ CLASS zcl_abapgit_object_cus0 IMPLEMENTATION.
i_display = abap_true
CHANGING
img_activity = lv_img_activity.
rv_exit = abap_true.
ENDMETHOD.

View File

@ -137,9 +137,6 @@ CLASS zcl_abapgit_object_cus2 IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |TODO: Jump| ).
ENDMETHOD.

View File

@ -399,12 +399,10 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
IMPORTING
typekind = lv_ddtypekind.
CASE lv_ddtypekind.
WHEN 'STOB'.
open_adt_stob( ms_item-obj_name ).
WHEN OTHERS.
zcx_abapgit_exception=>raise( 'DDLS Jump Error' ).
ENDCASE.
IF lv_ddtypekind = 'STOB'.
open_adt_stob( ms_item-obj_name ).
rv_exit = abap_true.
ENDIF.
ENDMETHOD.

View File

@ -171,9 +171,7 @@ CLASS zcl_abapgit_object_dial IMPLEMENTATION.
object_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
rv_exit = boolc( sy-subrc = 0 ).
ENDMETHOD.

View File

@ -144,6 +144,8 @@ CLASS zcl_abapgit_object_doct IMPLEMENTATION.
iv_tcode = 'SE61'
it_bdcdata = lt_bcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -149,9 +149,6 @@ CLASS zcl_abapgit_object_docv IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( 'todo, jump DOCV' ).
ENDMETHOD.

View File

@ -213,9 +213,7 @@ CLASS zcl_abapgit_object_dsys IMPLEMENTATION.
object_not_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
rv_exit = boolc( sy-subrc = 0 ).
ENDMETHOD.

View File

@ -669,6 +669,8 @@ CLASS zcl_abapgit_object_fdt0 IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'Could not open BRF+ Workbench' ).
ENDIF.
rv_exit = abap_true.
ENDMETHOD.

View File

@ -387,6 +387,8 @@ CLASS zcl_abapgit_object_form IMPLEMENTATION.
iv_tcode = 'SE71'
it_bdcdata = lt_bdcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -90,9 +90,6 @@ CLASS zcl_abapgit_object_g4ba IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |TODO: Jump| ).
ENDMETHOD.

View File

@ -90,9 +90,6 @@ CLASS zcl_abapgit_object_g4bs IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |TODO: Jump| ).
ENDMETHOD.

View File

@ -217,6 +217,8 @@ CLASS zcl_abapgit_object_idoc IMPLEMENTATION.
iv_tcode = 'WE30'
it_bdcdata = lt_bdcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -172,6 +172,8 @@ CLASS zcl_abapgit_object_iext IMPLEMENTATION.
iv_tcode = 'WE30'
it_bdcdata = lt_bdcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -336,7 +336,6 @@ CLASS ZCL_ABAPGIT_OBJECT_IOBJ IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |Jump to InfoObjects is not yet supported| ).
ENDMETHOD.

View File

@ -115,6 +115,8 @@ CLASS zcl_abapgit_object_iwmo IMPLEMENTATION.
iv_tcode = '/IWBEP/REG_MODEL'
it_bdcdata = lt_bdcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -90,9 +90,6 @@ CLASS zcl_abapgit_object_iwom IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |TODO: Jump| ).
ENDMETHOD.

View File

@ -95,6 +95,8 @@ CLASS zcl_abapgit_object_iwpr IMPLEMENTATION.
WITH i_prname = ms_item-obj_name
AND RETURN.
rv_exit = abap_true.
ENDMETHOD.

View File

@ -90,9 +90,6 @@ CLASS zcl_abapgit_object_iwsg IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |TODO: Jump| ).
ENDMETHOD.

View File

@ -115,6 +115,8 @@ CLASS zcl_abapgit_object_iwsv IMPLEMENTATION.
iv_tcode = '/IWBEP/REG_SERVICE'
it_bdcdata = lt_bdcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -96,6 +96,8 @@ CLASS zcl_abapgit_object_iwvb IMPLEMENTATION.
WITH ip_avers = ms_item-obj_name+32(4)
AND RETURN.
rv_exit = abap_true.
ENDMETHOD.

View File

@ -155,6 +155,8 @@ CLASS zcl_abapgit_object_jobd IMPLEMENTATION.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
rv_exit = abap_true.
ENDMETHOD.

View File

@ -252,6 +252,8 @@ CLASS zcl_abapgit_object_nrob IMPLEMENTATION.
iv_tcode = 'SNRO'
it_bdcdata = lt_bcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -303,9 +303,9 @@ CLASS ZCL_ABAPGIT_OBJECT_NSPC IMPLEMENTATION.
unknown_field_in_dba_sellist = 12
view_not_found = 13
OTHERS = 14.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
rv_exit = boolc( sy-subrc = 0 ).
ENDMETHOD.

View File

@ -198,6 +198,8 @@ CLASS zcl_abapgit_object_pers IMPLEMENTATION.
iv_tcode = 'PERSREG'
it_bdcdata = lt_bcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -435,6 +435,8 @@ CLASS zcl_abapgit_object_scp1 IMPLEMENTATION.
SUBMIT scpr3 AND RETURN.
rv_exit = abap_true.
ENDMETHOD.

View File

@ -156,9 +156,6 @@ CLASS zcl_abapgit_object_scvi IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |TODO: Jump| ).
ENDMETHOD.

View File

@ -321,10 +321,10 @@ CLASS zcl_abapgit_object_shi3 IMPLEMENTATION.
CASE ls_head-type.
WHEN 'BMENU'.
jump_se43( ).
rv_exit = abap_true.
WHEN 'GHIER'.
jump_sbach04( ).
WHEN OTHERS.
zcx_abapgit_exception=>raise( |Jump for type { ls_head-type } not implemented| ).
rv_exit = abap_true.
ENDCASE.
ENDMETHOD.

View File

@ -147,6 +147,9 @@ CLASS zcl_abapgit_object_shi5 IMPLEMENTATION.
originals_only = abap_true
TABLES
show_only_extensions = lt_extension.
rv_exit = abap_true.
ENDMETHOD.

View File

@ -124,7 +124,6 @@ CLASS ZCL_ABAPGIT_OBJECT_SHI8 IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |TODO: Jump SHI8| ).
ENDMETHOD.

View File

@ -250,6 +250,8 @@ CLASS zcl_abapgit_object_shma IMPLEMENTATION.
iv_tcode = 'SHMA'
it_bdcdata = lt_bcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -556,6 +556,8 @@ CLASS zcl_abapgit_object_sicf IMPLEMENTATION.
iv_tcode = 'SICF'
it_bdcdata = lt_bcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -95,7 +95,6 @@ CLASS ZCL_ABAPGIT_OBJECT_SPLO IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( 'todo, jump, SPLO' ).
ENDMETHOD.

View File

@ -90,9 +90,6 @@ CLASS ZCL_ABAPGIT_OBJECT_SPPF IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |TODO: Jump| ).
ENDMETHOD.

View File

@ -390,6 +390,8 @@ CLASS zcl_abapgit_object_ssfo IMPLEMENTATION.
iv_tcode = 'SMARTFORMS'
it_bdcdata = lt_bdcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -204,6 +204,8 @@ CLASS zcl_abapgit_object_ssst IMPLEMENTATION.
iv_tcode = 'SMARTSTYLES'
it_bdcdata = lt_bcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -159,9 +159,6 @@ CLASS ZCL_ABAPGIT_OBJECT_STVI IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |TODO: Jump| ).
ENDMETHOD.

View File

@ -163,6 +163,8 @@ CLASS zcl_abapgit_object_styl IMPLEMENTATION.
iv_tcode = 'SE72'
it_bdcdata = lt_bcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -90,9 +90,6 @@ CLASS zcl_abapgit_object_sucu IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
zcx_abapgit_exception=>raise( |TODO: Jump| ).
ENDMETHOD.

View File

@ -232,6 +232,8 @@ CLASS zcl_abapgit_object_susc IMPLEMENTATION.
EXPORTING
objclass = lv_objclass.
rv_exit = abap_true.
ENDMETHOD.

View File

@ -310,6 +310,8 @@ CLASS zcl_abapgit_object_suso IMPLEMENTATION.
EXPORTING
object = mv_objectname.
rv_exit = abap_true.
ENDMETHOD.

View File

@ -256,9 +256,7 @@ CLASS ZCL_ABAPGIT_OBJECT_TOBJ IMPLEMENTATION.
jump_not_possible = 1
OTHERS = 2.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Jump not possible. Subrc={ sy-subrc } from TR_OBJECT_JUMP_TO_TOOL| ).
ENDIF.
rv_exit = boolc( sy-subrc = 0 ).
ENDMETHOD.

View File

@ -838,6 +838,8 @@ CLASS zcl_abapgit_object_tran IMPLEMENTATION.
iv_tcode = 'SE93'
it_bdcdata = lt_bdcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -738,6 +738,8 @@ CLASS zcl_abapgit_object_udmo IMPLEMENTATION.
iv_tcode = 'SD11'
it_bdcdata = lt_bdcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -618,6 +618,8 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION.
iv_tcode = 'SD11'
it_bdcdata = lt_bdcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -250,6 +250,8 @@ CLASS zcl_abapgit_object_vcls IMPLEMENTATION.
iv_tcode = 'SE54'
it_bdcdata = lt_bcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -421,6 +421,8 @@ CLASS zcl_abapgit_object_w3xx_super IMPLEMENTATION.
iv_tcode = 'SMW0'
it_bdcdata = lt_bdcdata ).
rv_exit = abap_true.
ENDMETHOD.

View File

@ -977,16 +977,20 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
zcx_abapgit_exception=>raise( |Object { is_item-obj_type } { is_item-obj_name } doesn't exist| ).
ENDIF.
" Open object in new window
lv_exit = zcl_abapgit_ui_factory=>get_gui_jumper( )->jump(
is_item = is_item
iv_sub_obj_name = iv_sub_obj_name
iv_sub_obj_type = iv_sub_obj_type
iv_line_number = iv_line_number ).
" First priority object-specific handler
lv_exit = li_obj->jump( ).
" If all fails, try object-specific handler
IF lv_exit IS INITIAL.
li_obj->jump( ).
IF lv_exit = abap_false.
" Open object in new window with generic jumper
lv_exit = zcl_abapgit_ui_factory=>get_gui_jumper( )->jump(
is_item = is_item
iv_sub_obj_name = iv_sub_obj_name
iv_sub_obj_type = iv_sub_obj_type
iv_line_number = iv_line_number ).
ENDIF.
IF lv_exit = abap_false.
zcx_abapgit_exception=>raise( |Jump to { is_item-obj_type } { is_item-obj_name } not possible| ).
ENDIF.
ENDMETHOD.

View File

@ -220,6 +220,7 @@ CLASS ZCL_ABAPGIT_OBJECTS_BRIDGE IMPLEMENTATION.
METHOD zif_abapgit_object~jump.
CALL METHOD mo_plugin->('ZIF_ABAPGITP_PLUGIN~JUMP').
rv_exit = abap_true.
ENDMETHOD.

View File

@ -54,6 +54,8 @@ INTERFACE zif_abapgit_object
RAISING
zcx_abapgit_exception .
METHODS jump
RETURNING
VALUE(rv_exit) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS get_metadata