From 43b0d95335dc1a104ba63698f50f4f65ba7b9bc2 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Fri, 29 Apr 2022 08:38:12 +0200 Subject: [PATCH] IOBJ, ODSO: Add jump (#5495) * IOBJ, ODSO: Add jump Support navigation to BW objects * Lint Co-authored-by: Lars Hvam --- .../core/zcl_abapgit_gui_jumper.clas.abap | 56 +++++++++++++++++-- src/objects/zcl_abapgit_object_iobj.clas.abap | 3 +- src/objects/zcl_abapgit_object_odso.clas.abap | 30 +++++----- 3 files changed, 70 insertions(+), 19 deletions(-) diff --git a/src/objects/core/zcl_abapgit_gui_jumper.clas.abap b/src/objects/core/zcl_abapgit_gui_jumper.clas.abap index 6cc23ef17..640277c7d 100644 --- a/src/objects/core/zcl_abapgit_gui_jumper.clas.abap +++ b/src/objects/core/zcl_abapgit_gui_jumper.clas.abap @@ -33,6 +33,13 @@ CLASS zcl_abapgit_gui_jumper DEFINITION RETURNING VALUE(rv_exit) TYPE abap_bool. + METHODS jump_bw + IMPORTING + !is_item TYPE zif_abapgit_definitions=>ty_item + !iv_new_window TYPE abap_bool + RETURNING + VALUE(rv_exit) TYPE abap_bool. + ENDCLASS. @@ -40,6 +47,38 @@ ENDCLASS. CLASS zcl_abapgit_gui_jumper IMPLEMENTATION. + METHOD jump_bw. + + DATA: + lv_exit TYPE abap_bool, + lv_tlogo TYPE rstlogo, + lv_objnm TYPE rsawbnobjnm. + + + lv_tlogo = is_item-obj_type. + lv_objnm = is_item-obj_name. + + lv_exit = cl_rsawbn_awb=>is_supported_navigation( + i_tlogo = lv_tlogo + i_fcode = 'DISPLAY' ). + + IF lv_exit = abap_false. + RETURN. + ENDIF. + + cl_rsawbn_awb=>navigate_from_application( + EXPORTING + i_tlogo = lv_tlogo + i_objnm = lv_objnm + i_new_mode = iv_new_window + IMPORTING + e_exit_own_application = lv_exit ). + + rv_exit = lv_exit. + + ENDMETHOD. + + METHOD jump_tr. DATA: @@ -153,6 +192,15 @@ CLASS zcl_abapgit_gui_jumper IMPLEMENTATION. " 4) Transport Tool Jump rv_exit = jump_tr( is_item ). + IF rv_exit = abap_true. + RETURN. + ENDIF. + + " 5) BW Jump + rv_exit = jump_bw( + is_item = is_item + iv_new_window = iv_new_window ). + ENDMETHOD. @@ -201,12 +249,12 @@ CLASS zcl_abapgit_gui_jumper IMPLEMENTATION. ELSE. CALL FUNCTION 'ABAP4_CALL_TRANSACTION' EXPORTING - tcode = iv_tcode - mode_val = 'E' + tcode = iv_tcode + mode_val = 'E' TABLES - using_tab = it_bdcdata + using_tab = it_bdcdata EXCEPTIONS - OTHERS = 4. + OTHERS = 4. ENDIF. CASE sy-subrc. diff --git a/src/objects/zcl_abapgit_object_iobj.clas.abap b/src/objects/zcl_abapgit_object_iobj.clas.abap index 1e833676a..0273b80cb 100644 --- a/src/objects/zcl_abapgit_object_iobj.clas.abap +++ b/src/objects/zcl_abapgit_object_iobj.clas.abap @@ -17,7 +17,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_OBJECT_IOBJ IMPLEMENTATION. +CLASS zcl_abapgit_object_iobj IMPLEMENTATION. METHOD clear_field. @@ -336,6 +336,7 @@ CLASS ZCL_ABAPGIT_OBJECT_IOBJ IMPLEMENTATION. METHOD zif_abapgit_object~jump. + " Covered by ZCL_ABAPGIT_OBJECTS=>JUMP ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_odso.clas.abap b/src/objects/zcl_abapgit_object_odso.clas.abap index 0cddede83..1bebb72cf 100644 --- a/src/objects/zcl_abapgit_object_odso.clas.abap +++ b/src/objects/zcl_abapgit_object_odso.clas.abap @@ -22,9 +22,24 @@ CLASS zcl_abapgit_object_odso DEFINITION ENDCLASS. + CLASS zcl_abapgit_object_odso IMPLEMENTATION. + METHOD clear_field. + + FIELD-SYMBOLS: TYPE data. + + ASSIGN COMPONENT iv_fieldname + OF STRUCTURE cg_metadata + TO . + ASSERT sy-subrc = 0. + + CLEAR: . + + ENDMETHOD. + + METHOD zif_abapgit_object~changed_by. DATA: lv_dsonam TYPE c LENGTH 30, @@ -260,7 +275,7 @@ CLASS zcl_abapgit_object_odso IMPLEMENTATION. METHOD zif_abapgit_object~jump. - zcx_abapgit_exception=>raise( |Jump to ODSO is not yet supported| ). + " Covered by ZCL_ABAPGIT_OBJECTS=>JUMP ENDMETHOD. @@ -343,17 +358,4 @@ CLASS zcl_abapgit_object_odso IMPLEMENTATION. ig_data = ). ENDMETHOD. - - METHOD clear_field. - - FIELD-SYMBOLS: TYPE data. - - ASSIGN COMPONENT iv_fieldname - OF STRUCTURE cg_metadata - TO . - ASSERT sy-subrc = 0. - - CLEAR: . - - ENDMETHOD. ENDCLASS.