From 9f126932cc3e77e7ea807c512e16cbcff515bc9b Mon Sep 17 00:00:00 2001 From: larshp Date: Mon, 11 Sep 2017 17:53:06 +0000 Subject: [PATCH 01/30] first steps #911 --- src/zcl_abapgit_syntax_check.clas.abap | 66 ++++++++++++++++++++++++++ src/zcl_abapgit_syntax_check.clas.xml | 18 +++++++ 2 files changed, 84 insertions(+) create mode 100644 src/zcl_abapgit_syntax_check.clas.abap create mode 100644 src/zcl_abapgit_syntax_check.clas.xml diff --git a/src/zcl_abapgit_syntax_check.clas.abap b/src/zcl_abapgit_syntax_check.clas.abap new file mode 100644 index 000000000..0749a8e35 --- /dev/null +++ b/src/zcl_abapgit_syntax_check.clas.abap @@ -0,0 +1,66 @@ +class ZCL_ABAPGIT_SYNTAX_CHECK definition + public + create public . + +public section. + + class-methods RUN + importing + !IV_PACKAGE type DEVCLASS . +protected section. + + class-methods CREATE_OBJECTSET + importing + !IV_PACKAGE type DEVCLASS + returning + value(RO_SET) type ref to CL_CI_OBJECTSET . +private section. +ENDCLASS. + + + +CLASS ZCL_ABAPGIT_SYNTAX_CHECK IMPLEMENTATION. + + + METHOD create_objectset. + + CONSTANTS: lc_anonymous TYPE sci_objs VALUE ''. + + DATA: lt_objects TYPE scistadir, + ls_flags TYPE sci_flgl. + + FIELD-SYMBOLS: LIKE LINE OF lt_objects-sodevc. + + + ro_set = cl_ci_objectset=>create( + p_user = sy-uname + p_name = lc_anonymous ). + + APPEND INITIAL LINE TO lt_objects-sodevc ASSIGNING . + -sign = 'I'. + -option = 'CP'. + CONCATENATE iv_package '*' INTO -low. +* todo, find all subpackages + + ls_flags-class = abap_true. + ls_flags-fugrs = abap_true. + ls_flags-repos = abap_true. + ls_flags-wdyns = abap_true. + ls_flags-ddics = abap_true. + ls_flags-typps = abap_true. + + ro_set->save_objectset( + p_tadir = lt_objects + p_sel_flags = ls_flags ). + + ENDMETHOD. + + + METHOD run. + + create_objectset( iv_package ). + +* todo: add returning parameter + + ENDMETHOD. +ENDCLASS. diff --git a/src/zcl_abapgit_syntax_check.clas.xml b/src/zcl_abapgit_syntax_check.clas.xml new file mode 100644 index 000000000..b08b74ccb --- /dev/null +++ b/src/zcl_abapgit_syntax_check.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_SYNTAX_CHECK + 1 + E + abapGit - Syntax check + 2 + 1 + X + X + X + + + + From 374e69146c692b17fe5df2c81bf2392818a89b4e Mon Sep 17 00:00:00 2001 From: larshp Date: Tue, 12 Sep 2017 19:45:37 +0000 Subject: [PATCH 02/30] more syntax check #911 --- src/zcl_abapgit_syntax_check.clas.abap | 144 ++++++++++++++++++++----- 1 file changed, 118 insertions(+), 26 deletions(-) diff --git a/src/zcl_abapgit_syntax_check.clas.abap b/src/zcl_abapgit_syntax_check.clas.abap index 0749a8e35..ddddd56c8 100644 --- a/src/zcl_abapgit_syntax_check.clas.abap +++ b/src/zcl_abapgit_syntax_check.clas.abap @@ -6,14 +6,30 @@ public section. class-methods RUN importing - !IV_PACKAGE type DEVCLASS . + !IV_PACKAGE type DEVCLASS + returning + value(RT_LIST) type SCIT_ALVLIST . protected section. + class-methods CREATE_INSPECTION + importing + !IO_SET type ref to CL_CI_OBJECTSET + !IO_VARIANT type ref to CL_CI_CHECKVARIANT + returning + value(RO_INSPECTION) type ref to CL_CI_INSPECTION . class-methods CREATE_OBJECTSET importing !IV_PACKAGE type DEVCLASS returning value(RO_SET) type ref to CL_CI_OBJECTSET . + class-methods CREATE_VARIANT + returning + value(RO_VARIANT) type ref to CL_CI_CHECKVARIANT . + class-methods RUN_INSPECTION + importing + !IO_INSPECTION type ref to CL_CI_INSPECTION + returning + value(RT_LIST) type SCIT_ALVLIST . private section. ENDCLASS. @@ -22,45 +38,121 @@ ENDCLASS. CLASS ZCL_ABAPGIT_SYNTAX_CHECK IMPLEMENTATION. + METHOD create_inspection. + + cl_ci_inspection=>create( + EXPORTING + p_user = sy-uname + p_name = '' + RECEIVING + p_ref = ro_inspection + EXCEPTIONS + locked = 1 + error_in_enqueue = 2 + not_authorized = 3 + OTHERS = 4 ). + ASSERT sy-subrc = 0. + + ro_inspection->set( + p_chkv = io_variant + p_objs = io_set +* p_deldate = CONV sci_deldat( sy-datum + 1 ) + ). + + ENDMETHOD. + + METHOD create_objectset. - CONSTANTS: lc_anonymous TYPE sci_objs VALUE ''. - - DATA: lt_objects TYPE scistadir, - ls_flags TYPE sci_flgl. - - FIELD-SYMBOLS: LIKE LINE OF lt_objects-sodevc. + DATA: lt_objs TYPE scit_objs, + lt_packages TYPE cl_pak_package_queries=>tt_subpackage_info, + ls_package LIKE LINE OF lt_packages, + ls_obj LIKE LINE OF lt_objs. - ro_set = cl_ci_objectset=>create( - p_user = sy-uname - p_name = lc_anonymous ). + cl_pak_package_queries=>get_all_subpackages( + EXPORTING + im_package = iv_package + im_also_local_packages = abap_true + IMPORTING + et_subpackages = lt_packages ). - APPEND INITIAL LINE TO lt_objects-sodevc ASSIGNING . - -sign = 'I'. - -option = 'CP'. - CONCATENATE iv_package '*' INTO -low. -* todo, find all subpackages + ls_package-package = iv_package. + INSERT ls_package INTO TABLE lt_packages. - ls_flags-class = abap_true. - ls_flags-fugrs = abap_true. - ls_flags-repos = abap_true. - ls_flags-wdyns = abap_true. - ls_flags-ddics = abap_true. - ls_flags-typps = abap_true. +* todo + ls_obj-objtype = 'PROG'. + ls_obj-objname = 'ZABAPGIT'. + INSERT ls_obj INTO TABLE lt_objs. - ro_set->save_objectset( - p_tadir = lt_objects - p_sel_flags = ls_flags ). + ro_set = cl_ci_objectset=>save_from_list( lt_objs ). + + ENDMETHOD. + + + METHOD create_variant. + + DATA: lt_variant TYPE sci_tstvar, + ls_variant LIKE LINE OF lt_variant. + + + cl_ci_checkvariant=>create( + EXPORTING + p_user = sy-uname + RECEIVING + p_ref = ro_variant + EXCEPTIONS + chkv_already_exists = 1 + locked = 2 + error_in_enqueue = 3 + not_authorized = 4 + OTHERS = 5 ). + ASSERT sy-subrc = 0. + + ls_variant-testname = 'CL_CI_TEST_SYNTAX_CHECK'. + INSERT ls_variant INTO TABLE lt_variant. + + ro_variant->set_variant( + EXPORTING + p_variant = lt_variant + EXCEPTIONS + not_enqueued = 1 + OTHERS = 2 ). + ASSERT sy-subrc = 0. ENDMETHOD. METHOD run. - create_objectset( iv_package ). + DATA: lo_set TYPE REF TO cl_ci_objectset, + lo_inspection TYPE REF TO cl_ci_inspection, + lo_variant TYPE REF TO cl_ci_checkvariant. -* todo: add returning parameter + + lo_set = create_objectset( iv_package ). + lo_variant = create_variant( ). + + lo_inspection = create_inspection( + io_set = lo_set + io_variant = lo_variant ). + + rt_list = run_inspection( lo_inspection ). + + ENDMETHOD. + + + METHOD run_inspection. + + io_inspection->run( + EXCEPTIONS + invalid_check_version = 1 + OTHERS = 2 ). + ASSERT sy-subrc = 0. + + io_inspection->plain_list( + IMPORTING + p_list = rt_list ). ENDMETHOD. ENDCLASS. From 33cba1d3b8de0609b6e1178b92371feb9e43f0a6 Mon Sep 17 00:00:00 2001 From: eduardocopat Date: Mon, 18 Sep 2017 21:05:32 +0200 Subject: [PATCH 03/30] Skip SADL generated classes --- src/zabapgit.prog.abap | 2 + src/zabapgit_file_status.prog.abap | 28 ++++++++++++- src/zabapgit_object_oo_functions.prog.abap | 12 +++++- src/zabapgit_skip_objects.prog.abap | 46 ++++++++++++++++++++++ src/zabapgit_skip_objects.prog.xml | 25 ++++++++++++ src/zabapgit_unit_test_clas_intf.prog.abap | 4 ++ 6 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 src/zabapgit_skip_objects.prog.abap create mode 100644 src/zabapgit_skip_objects.prog.xml diff --git a/src/zabapgit.prog.abap b/src/zabapgit.prog.abap index 7ec348804..119a894ed 100644 --- a/src/zabapgit.prog.abap +++ b/src/zabapgit.prog.abap @@ -67,6 +67,8 @@ INCLUDE zabapgit_objects_impl. INCLUDE zabapgit_object_serializing. " All serializing classes here +INCLUDE zabapgit_skip_objects. + INCLUDE zabapgit_repo_impl. INCLUDE zabapgit_background. INCLUDE zabapgit_transport. diff --git a/src/zabapgit_file_status.prog.abap b/src/zabapgit_file_status.prog.abap index d7402cfa1..35a48422b 100644 --- a/src/zabapgit_file_status.prog.abap +++ b/src/zabapgit_file_status.prog.abap @@ -7,6 +7,23 @@ *----------------------------------------------------------------------* CLASS ltcl_file_status DEFINITION DEFERRED. CLASS ltcl_file_status2 DEFINITION DEFERRED. +CLASS lcl_skip_objects DEFINITION. + PUBLIC SECTION. + METHODS: + skip_sadl_generated_objects + IMPORTING + it_results TYPE lif_defs=>ty_results_tt + io_log TYPE REF TO lcl_log + RETURNING + VALUE(rt_results) TYPE lif_defs=>ty_results_tt. + PRIVATE SECTION. + METHODS: + has_sadl_superclass + IMPORTING + is_class TYPE lif_defs=>ty_result + RETURNING + VALUE(rv_return) TYPE abap_bool. +ENDCLASS. CLASS lcl_file_status DEFINITION FINAL FRIENDS ltcl_file_status ltcl_file_status2. @@ -144,8 +161,9 @@ CLASS lcl_file_status IMPLEMENTATION. METHOD status. - DATA: lv_index LIKE sy-tabix, - lo_dot_abapgit TYPE REF TO lcl_dot_abapgit. + DATA: lv_index LIKE sy-tabix, + lo_dot_abapgit TYPE REF TO lcl_dot_abapgit, + lo_skip_objects TYPE REF TO lcl_skip_objects. FIELD-SYMBOLS LIKE LINE OF rt_results. @@ -169,6 +187,12 @@ CLASS lcl_file_status IMPLEMENTATION. ENDIF. ENDLOOP. + + CREATE OBJECT lo_skip_objects. + rt_results = lo_skip_objects->skip_sadl_generated_objects( + it_results = rt_results + io_log = io_log ). + run_checks( io_log = io_log it_results = rt_results diff --git a/src/zabapgit_object_oo_functions.prog.abap b/src/zabapgit_object_oo_functions.prog.abap index ba0fe5da8..2d71e47c9 100644 --- a/src/zabapgit_object_oo_functions.prog.abap +++ b/src/zabapgit_object_oo_functions.prog.abap @@ -125,7 +125,12 @@ INTERFACE lif_oo_object_fnc. IMPORTING is_deletion_key TYPE seoclskey RAISING - lcx_exception. + lcx_exception, + read_superclass + IMPORTING + iv_classname TYPE seoclsname + RETURNING + VALUE(rv_superclass) TYPE seoclsname. ENDINTERFACE. CLASS lcl_oo_serializer DEFINITION. @@ -612,6 +617,11 @@ CLASS lcl_oo_base IMPLEMENTATION. ASSERT 0 = 1. "Subclass responsibility ENDMETHOD. + METHOD lif_oo_object_fnc~read_superclass. + SELECT SINGLE refclsname FROM vseoextend INTO rv_superclass + WHERE clsname = iv_classname. + ENDMETHOD. + ENDCLASS. "Backdoor injection for test purposes diff --git a/src/zabapgit_skip_objects.prog.abap b/src/zabapgit_skip_objects.prog.abap new file mode 100644 index 000000000..e4afe3d84 --- /dev/null +++ b/src/zabapgit_skip_objects.prog.abap @@ -0,0 +1,46 @@ +*&---------------------------------------------------------------------* +*& Include zabapgit_skip_objects +*&---------------------------------------------------------------------* + +CLASS lcl_skip_objects IMPLEMENTATION. + METHOD skip_sadl_generated_objects. + DATA: ls_ddls_class_result LIKE LINE OF rt_results, + lo_sadl_class TYPE REF TO lif_object, + ls_item TYPE lif_defs=>ty_item, + ls_result LIKE LINE OF rt_results, + lt_lines_to_delete TYPE lif_defs=>ty_results_tt. + + rt_results = it_results. + LOOP AT it_results INTO ls_result WHERE obj_type = 'DDLS'. + LOOP AT it_results INTO ls_ddls_class_result + WHERE obj_type = 'CLAS' AND obj_name CS ls_result-obj_name. + + IF has_sadl_superclass( ls_ddls_class_result ). + APPEND ls_ddls_class_result TO lt_lines_to_delete. + ENDIF. + ENDLOOP. + ENDLOOP. + + SORT lt_lines_to_delete BY filename. + DELETE ADJACENT DUPLICATES FROM lt_lines_to_delete. + LOOP AT lt_lines_to_delete INTO ls_ddls_class_result. + DELETE TABLE rt_results FROM ls_ddls_class_result. + io_log->add( + iv_msg = |{ ls_ddls_class_result-filename } skipped: generated by SADL| + iv_type = 'W' ). + ENDLOOP. + ENDMETHOD. + + METHOD has_sadl_superclass. + DATA: lo_oo_functions TYPE REF TO lif_oo_object_fnc, + lv_class_name TYPE seoclsname, + lv_superclass TYPE seoclsname. + + lo_oo_functions = lcl_oo_factory=>make( is_class-obj_type ). + lv_class_name = is_class-obj_name. + lv_superclass = lo_oo_functions->read_superclass( lv_class_name ). + IF lv_superclass = 'CL_SADL_GTK_EXPOSURE_MPC'. + rv_return = abap_true. + ENDIF. + ENDMETHOD. +ENDCLASS. diff --git a/src/zabapgit_skip_objects.prog.xml b/src/zabapgit_skip_objects.prog.xml new file mode 100644 index 000000000..3ab107430 --- /dev/null +++ b/src/zabapgit_skip_objects.prog.xml @@ -0,0 +1,25 @@ + + + + + + ZABAPGIT_SKIP_OBJECTS + A + X + S + D$ + I + X + D$S + X + + + + R + Include ZABAPGIT_SKIP_OBJECTS + 29 + + + + + diff --git a/src/zabapgit_unit_test_clas_intf.prog.abap b/src/zabapgit_unit_test_clas_intf.prog.abap index de0f19545..424cf4323 100644 --- a/src/zabapgit_unit_test_clas_intf.prog.abap +++ b/src/zabapgit_unit_test_clas_intf.prog.abap @@ -150,6 +150,10 @@ CLASS ltd_spy_oo_object IMPLEMENTATION. ms_delete_key = is_deletion_key. ENDMETHOD. + METHOD lif_oo_object_fnc~read_superclass. + RETURN. + ENDMETHOD. + ENDCLASS. CLASS ltd_fake_object_files DEFINITION FOR TESTING From 8490b08e8f64b9bcb7296c2451cbc2fa0876453a Mon Sep 17 00:00:00 2001 From: larshp Date: Tue, 19 Sep 2017 19:15:34 +0000 Subject: [PATCH 04/30] class done, next step ui, #911 --- src/zcl_abapgit_syntax_check.clas.abap | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/zcl_abapgit_syntax_check.clas.abap b/src/zcl_abapgit_syntax_check.clas.abap index ddddd56c8..16a2bfec1 100644 --- a/src/zcl_abapgit_syntax_check.clas.abap +++ b/src/zcl_abapgit_syntax_check.clas.abap @@ -54,10 +54,8 @@ CLASS ZCL_ABAPGIT_SYNTAX_CHECK IMPLEMENTATION. ASSERT sy-subrc = 0. ro_inspection->set( - p_chkv = io_variant - p_objs = io_set -* p_deldate = CONV sci_deldat( sy-datum + 1 ) - ). + p_chkv = io_variant + p_objs = io_set ). ENDMETHOD. @@ -80,10 +78,16 @@ CLASS ZCL_ABAPGIT_SYNTAX_CHECK IMPLEMENTATION. ls_package-package = iv_package. INSERT ls_package INTO TABLE lt_packages. -* todo - ls_obj-objtype = 'PROG'. - ls_obj-objname = 'ZABAPGIT'. - INSERT ls_obj INTO TABLE lt_objs. + IF lines( lt_packages ) = 0. + RETURN. + ENDIF. + + SELECT object AS objtype obj_name AS objname + FROM tadir + INTO CORRESPONDING FIELDS OF TABLE lt_objs + FOR ALL ENTRIES IN lt_packages + WHERE devclass = lt_packages-package + AND pgmid = 'R3TR'. "#EC CI_GENBUFF ro_set = cl_ci_objectset=>save_from_list( lt_objs ). From deecf87870232190f293bfe252b6a96e9bc91667 Mon Sep 17 00:00:00 2001 From: larshp Date: Tue, 19 Sep 2017 19:17:50 +0000 Subject: [PATCH 05/30] fix indentation --- src/zcl_abapgit_syntax_check.clas.abap | 60 +++++++++++++------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/zcl_abapgit_syntax_check.clas.abap b/src/zcl_abapgit_syntax_check.clas.abap index 16a2bfec1..74f50d5af 100644 --- a/src/zcl_abapgit_syntax_check.clas.abap +++ b/src/zcl_abapgit_syntax_check.clas.abap @@ -1,36 +1,36 @@ -class ZCL_ABAPGIT_SYNTAX_CHECK definition - public - create public . +CLASS zcl_abapgit_syntax_check DEFINITION + PUBLIC + CREATE PUBLIC . -public section. + PUBLIC SECTION. - class-methods RUN - importing - !IV_PACKAGE type DEVCLASS - returning - value(RT_LIST) type SCIT_ALVLIST . -protected section. + CLASS-METHODS run + IMPORTING + !iv_package TYPE devclass + RETURNING + VALUE(rt_list) TYPE scit_alvlist . + PROTECTED SECTION. - class-methods CREATE_INSPECTION - importing - !IO_SET type ref to CL_CI_OBJECTSET - !IO_VARIANT type ref to CL_CI_CHECKVARIANT - returning - value(RO_INSPECTION) type ref to CL_CI_INSPECTION . - class-methods CREATE_OBJECTSET - importing - !IV_PACKAGE type DEVCLASS - returning - value(RO_SET) type ref to CL_CI_OBJECTSET . - class-methods CREATE_VARIANT - returning - value(RO_VARIANT) type ref to CL_CI_CHECKVARIANT . - class-methods RUN_INSPECTION - importing - !IO_INSPECTION type ref to CL_CI_INSPECTION - returning - value(RT_LIST) type SCIT_ALVLIST . -private section. + CLASS-METHODS create_inspection + IMPORTING + !io_set TYPE REF TO cl_ci_objectset + !io_variant TYPE REF TO cl_ci_checkvariant + RETURNING + VALUE(ro_inspection) TYPE REF TO cl_ci_inspection . + CLASS-METHODS create_objectset + IMPORTING + !iv_package TYPE devclass + RETURNING + VALUE(ro_set) TYPE REF TO cl_ci_objectset . + CLASS-METHODS create_variant + RETURNING + VALUE(ro_variant) TYPE REF TO cl_ci_checkvariant . + CLASS-METHODS run_inspection + IMPORTING + !io_inspection TYPE REF TO cl_ci_inspection + RETURNING + VALUE(rt_list) TYPE scit_alvlist . + PRIVATE SECTION. ENDCLASS. From 56d97751068ef4e3d04514d2937885b94d4fa921 Mon Sep 17 00:00:00 2001 From: Alexander Petrenz Date: Wed, 27 Sep 2017 11:09:04 +0200 Subject: [PATCH 06/30] dialog for overwriting local objects rewritten When Pulling local objects are checked if they have been modified. If so there was a confirmation popup for each objects. This has been replaced with a popup table allowing to have a look at all modified objects at once and selecting a checkbox to confirm that all selected objects should be overwritten. --- src/zabapgit_objects_impl.prog.abap | 24 ++--- src/zabapgit_popups.prog.abap | 147 ++++++++++++++++++++++++++-- 2 files changed, 145 insertions(+), 26 deletions(-) diff --git a/src/zabapgit_objects_impl.prog.abap b/src/zabapgit_objects_impl.prog.abap index 0efc5a322..e706bbd07 100644 --- a/src/zabapgit_objects_impl.prog.abap +++ b/src/zabapgit_objects_impl.prog.abap @@ -11,39 +11,27 @@ CLASS lcl_objects IMPLEMENTATION. METHOD warning_overwrite. - DATA: lv_index TYPE i, - lv_answer TYPE c, - lv_question TYPE string. + DATA: lt_results_overwrite LIKE ct_results. FIELD-SYMBOLS: LIKE LINE OF ct_results. - LOOP AT ct_results ASSIGNING WHERE NOT obj_type IS INITIAL. - lv_index = sy-tabix. - IF -lstate IS NOT INITIAL AND -lstate <> lif_defs=>gc_state-deleted AND NOT ( -lstate = lif_defs=>gc_state-added AND -rstate IS INITIAL ). - lv_question = |It looks like object { - -obj_type } { -obj_name - } has been modified locally, overwrite object?|. - - lv_answer = lcl_popups=>popup_to_confirm( - titlebar = 'Warning' - text_question = lv_question - display_cancel_button = abap_false ). "#EC NOTEXT - - IF lv_answer = '2'. - DELETE ct_results INDEX lv_index. - ENDIF. + "current object has been modified locally, add to table for popup + APPEND TO lt_results_overwrite. ENDIF. ENDLOOP. + "all returned objects will be overwritten + ct_results = lcl_popups=>popup_select_obj_overwrite( lt_results_overwrite ). + ENDMETHOD. METHOD warning_package. diff --git a/src/zabapgit_popups.prog.abap b/src/zabapgit_popups.prog.abap index 5a3ebd202..fba82e21b 100644 --- a/src/zabapgit_popups.prog.abap +++ b/src/zabapgit_popups.prog.abap @@ -76,18 +76,46 @@ CLASS lcl_popups DEFINITION FINAL. RAISING lcx_exception lcx_cancel, popup_to_select_transports - RETURNING VALUE(rt_trkorr) TYPE trwbo_request_headers. + RETURNING VALUE(rt_trkorr) TYPE trwbo_request_headers, + popup_select_obj_overwrite + IMPORTING it_list TYPE lif_defs=>ty_results_tt + RETURNING VALUE(rt_list) TYPE lif_defs=>ty_results_tt + RAISING lcx_exception. PRIVATE SECTION. TYPES: ty_sval_tt TYPE STANDARD TABLE OF sval WITH DEFAULT KEY. - CLASS-METHODS: add_field - IMPORTING iv_tabname TYPE sval-tabname - iv_fieldname TYPE sval-fieldname - iv_fieldtext TYPE sval-fieldtext - iv_value TYPE clike DEFAULT '' - iv_field_attr TYPE sval-field_attr DEFAULT '' - CHANGING ct_fields TYPE ty_sval_tt. + TYPES BEGIN OF t_popup_select_list. + TYPES selected TYPE flag. + INCLUDE TYPE lif_defs=>ty_result. + TYPES END OF t_popup_select_list. + + TYPES: t_popup_select_list_tt TYPE STANDARD TABLE OF t_popup_select_list WITH DEFAULT KEY. + + CLASS-DATA: + mtr_select_list TYPE REF TO t_popup_select_list_tt, + mo_select_list_popup TYPE REF TO cl_salv_table. + + CLASS-METHODS: + add_field + IMPORTING iv_tabname TYPE sval-tabname + iv_fieldname TYPE sval-fieldname + iv_fieldtext TYPE sval-fieldtext + iv_value TYPE clike DEFAULT '' + iv_field_attr TYPE sval-field_attr DEFAULT '' + CHANGING ct_fields TYPE ty_sval_tt, + + on_select_list_link_click + FOR EVENT link_click OF cl_salv_events_table + IMPORTING + !row + !column, + + on_select_list_function_click + FOR EVENT added_function OF cl_salv_events_table + IMPORTING + !e_salv_function. + ENDCLASS. @@ -699,4 +727,107 @@ CLASS lcl_popups IMPLEMENTATION. rs_transport_branch-commit_text = -value. ENDMETHOD. + METHOD popup_select_obj_overwrite. + DATA: + ls_list LIKE LINE OF it_list, + ls_popup_list TYPE t_popup_select_list, + lt_popup_list TYPE t_popup_select_list_tt, + lo_events TYPE REF TO cl_salv_events_table, + lo_columns TYPE REF TO cl_salv_columns_table, + lt_columns TYPE salv_t_column_ref, + ls_column TYPE salv_s_column_ref, + lo_column TYPE REF TO cl_salv_column_list. + + LOOP AT it_list INTO ls_list. + MOVE-CORRESPONDING ls_list TO ls_popup_list. + APPEND ls_popup_list TO lt_popup_list. + ENDLOOP. + + TRY. + cl_salv_table=>factory( IMPORTING r_salv_table = mo_select_list_popup + CHANGING t_table = lt_popup_list ). + + GET REFERENCE OF lt_popup_list INTO mtr_select_list. + mo_select_list_popup->set_screen_status( pfstatus = 'ST850' + report = 'SAPLKKBL' ). + + mo_select_list_popup->set_screen_popup( start_column = 1 + end_column = 65 + start_line = 1 + end_line = 20 ). + + lo_events = mo_select_list_popup->get_event( ). + + SET HANDLER on_select_list_link_click FOR lo_events. + SET HANDLER on_select_list_function_click FOR lo_events. + + lo_columns = mo_select_list_popup->get_columns( ). + lo_columns->set_optimize( abap_true ). + lt_columns = lo_columns->get( ). + + LOOP AT lt_columns INTO ls_column. + CASE ls_column-columnname. + WHEN 'OBJ_TYPE' OR 'OBJ_NAME'. + + WHEN 'SELECTED'. + lo_column ?= ls_column-r_column. + lo_column->set_cell_type( if_salv_c_cell_type=>checkbox_hotspot ). + lo_column->set_output_length( 20 ). + lo_column->set_short_text( 'Overwrite?' ). + lo_column->set_medium_text( 'Overwr. Lcl Object?' ). + lo_column->set_long_text( 'Overwrite Local Object?' ). + + WHEN OTHERS. + ls_column-r_column->set_technical( abap_true ). + + ENDCASE. + ENDLOOP. + + mo_select_list_popup->display( ). + + CATCH cx_salv_msg. + lcx_exception=>raise( 'Error from POPUP_SELECT_OBJ_OVERWRITE' ). + ENDTRY. + + LOOP AT lt_popup_list INTO ls_popup_list WHERE selected = abap_true. + MOVE-CORRESPONDING ls_popup_list TO ls_list. + APPEND ls_list TO rt_list. + ENDLOOP. + + CLEAR: + mo_select_list_popup, + mtr_select_list. + + ENDMETHOD. + + METHOD on_select_list_function_click. + CASE e_salv_function. + WHEN 'GOON'. + mo_select_list_popup->close_screen( ). + WHEN 'ABR'. + "Canceled: clear list to overwrite nothing + CLEAR mtr_select_list->*. + mo_select_list_popup->close_screen( ). + ENDCASE. + ENDMETHOD. + + METHOD on_select_list_link_click. + DATA: + lsr_line TYPE REF TO t_popup_select_list, + lv_line TYPE sytabix. + + lv_line = row. + + READ TABLE mtr_select_list->* REFERENCE INTO lsr_line INDEX lv_line. + IF sy-subrc = 0. + IF lsr_line->selected = abap_true. + lsr_line->selected = abap_false. + ELSE. + lsr_line->selected = abap_true. + ENDIF. + ENDIF. + + mo_select_list_popup->refresh( ). + ENDMETHOD. + ENDCLASS. From 376281729439adb155fbba51908741799078e413 Mon Sep 17 00:00:00 2001 From: Alexander Petrenz Date: Wed, 27 Sep 2017 11:36:42 +0200 Subject: [PATCH 07/30] added info header to overwrite table dialog --- src/zabapgit_popups.prog.abap | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/zabapgit_popups.prog.abap b/src/zabapgit_popups.prog.abap index fba82e21b..0368c64f6 100644 --- a/src/zabapgit_popups.prog.abap +++ b/src/zabapgit_popups.prog.abap @@ -729,14 +729,15 @@ CLASS lcl_popups IMPLEMENTATION. METHOD popup_select_obj_overwrite. DATA: - ls_list LIKE LINE OF it_list, - ls_popup_list TYPE t_popup_select_list, - lt_popup_list TYPE t_popup_select_list_tt, - lo_events TYPE REF TO cl_salv_events_table, - lo_columns TYPE REF TO cl_salv_columns_table, - lt_columns TYPE salv_t_column_ref, - ls_column TYPE salv_s_column_ref, - lo_column TYPE REF TO cl_salv_column_list. + ls_list LIKE LINE OF it_list, + ls_popup_list TYPE t_popup_select_list, + lt_popup_list TYPE t_popup_select_list_tt, + lo_events TYPE REF TO cl_salv_events_table, + lo_columns TYPE REF TO cl_salv_columns_table, + lt_columns TYPE salv_t_column_ref, + ls_column TYPE salv_s_column_ref, + lo_column TYPE REF TO cl_salv_column_list, + lo_table_header TYPE REF TO cl_salv_form_text. LOOP AT it_list INTO ls_list. MOVE-CORRESPONDING ls_list TO ls_popup_list. @@ -761,6 +762,12 @@ CLASS lcl_popups IMPLEMENTATION. SET HANDLER on_select_list_link_click FOR lo_events. SET HANDLER on_select_list_function_click FOR lo_events. + CREATE OBJECT lo_table_header + EXPORTING + text = |The following Objects have been modified locally. Select the Objects which should be overwritten.|. + + mo_select_list_popup->set_top_of_list( lo_table_header ). + lo_columns = mo_select_list_popup->get_columns( ). lo_columns->set_optimize( abap_true ). lt_columns = lo_columns->get( ). From 7536057a139dcb94cf97a7316691cf6d8865dbb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Wed, 27 Sep 2017 16:03:21 +0000 Subject: [PATCH 08/30] #920 deletion sequence DDLS --- src/zabapgit_objects.prog.abap | 3 ++ src/zabapgit_objects_impl.prog.abap | 58 +++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/src/zabapgit_objects.prog.abap b/src/zabapgit_objects.prog.abap index 68e2c60e7..2fa71ef91 100644 --- a/src/zabapgit_objects.prog.abap +++ b/src/zabapgit_objects.prog.abap @@ -2329,5 +2329,8 @@ CLASS lcl_objects DEFINITION FINAL. iv_descr TYPE string CHANGING ct_files TYPE lif_defs=>ty_file_signatures_tt RAISING lcx_exception. + CLASS-METHODS resolve_ddls + CHANGING + ct_tadir TYPE lif_defs=>ty_tadir_tt. ENDCLASS. "lcl_object DEFINITION diff --git a/src/zabapgit_objects_impl.prog.abap b/src/zabapgit_objects_impl.prog.abap index 0efc5a322..4817cd805 100644 --- a/src/zabapgit_objects_impl.prog.abap +++ b/src/zabapgit_objects_impl.prog.abap @@ -334,6 +334,8 @@ CLASS lcl_objects IMPLEMENTATION. resolve_ddic( CHANGING ct_tadir = lt_tadir ). + resolve_ddls( CHANGING ct_tadir = lt_tadir ). + SORT lt_tadir BY korrnum ASCENDING. LOOP AT lt_tadir ASSIGNING . @@ -732,4 +734,60 @@ CLASS lcl_objects IMPLEMENTATION. ENDMETHOD. + + METHOD resolve_ddls. + + TYPES: BEGIN OF ty_ddls_name. + INCLUDE TYPE ddsymtab. + TYPES: END OF ty_ddls_name, + tty_ddls_names TYPE STANDARD TABLE OF ty_ddls_name + WITH NON-UNIQUE DEFAULT KEY. + + TYPES: BEGIN OF ty_s_masdepwa, + depname TYPE dd02l-tabname, + deptyp(4), + deplocal TYPE dd02l-as4local, "Version der abhängigen + refname TYPE dd02l-tabname, + reftyp(4), + kind(1), + END OF ty_s_masdepwa. + + DATA: lt_dep TYPE STANDARD TABLE OF ty_s_masdepwa + WITH NON-UNIQUE DEFAULT KEY, + lt_ddls_name TYPE tty_ddls_names, + ls_ddls_name LIKE LINE OF lt_ddls_name. + + FIELD-SYMBOLS: TYPE lif_defs=>ty_tadir, + TYPE ty_s_masdepwa, + TYPE lif_defs=>ty_tadir. + + LOOP AT ct_tadir ASSIGNING + WHERE object = 'DDLS'. + + CLEAR: lt_dep, + lt_ddls_name. + + ls_ddls_name-name = -obj_name. + INSERT ls_ddls_name INTO TABLE lt_ddls_name. + + PERFORM ('DDLS_GET_DEP') IN PROGRAM ('RADMASDL') TABLES lt_ddls_name lt_dep. + + LOOP AT lt_dep ASSIGNING + WHERE deptyp = 'DDLS' + AND refname = -obj_name. + + READ TABLE ct_tadir ASSIGNING + WITH KEY obj_name = -depname + object = 'DDLS'. + + CHECK sy-subrc = 0. + + -korrnum = -korrnum - 1. + + ENDLOOP. + + ENDLOOP. + + ENDMETHOD. + ENDCLASS. "lcl_objects IMPLEMENTATION From 48c0a730e24bca2ad42455378b3558120e1a9144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Wed, 27 Sep 2017 16:06:34 +0000 Subject: [PATCH 09/30] Fix lint errors --- src/zabapgit_objects_impl.prog.abap | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/zabapgit_objects_impl.prog.abap b/src/zabapgit_objects_impl.prog.abap index 4817cd805..a55c1adb1 100644 --- a/src/zabapgit_objects_impl.prog.abap +++ b/src/zabapgit_objects_impl.prog.abap @@ -746,13 +746,13 @@ CLASS lcl_objects IMPLEMENTATION. TYPES: BEGIN OF ty_s_masdepwa, depname TYPE dd02l-tabname, deptyp(4), - deplocal TYPE dd02l-as4local, "Version der abhängigen + deplocal TYPE dd02l-as4local, refname TYPE dd02l-tabname, reftyp(4), kind(1), END OF ty_s_masdepwa. - DATA: lt_dep TYPE STANDARD TABLE OF ty_s_masdepwa + DATA: lt_dep TYPE STANDARD TABLE OF ty_s_masdepwa WITH NON-UNIQUE DEFAULT KEY, lt_ddls_name TYPE tty_ddls_names, ls_ddls_name LIKE LINE OF lt_ddls_name. From 051f3fb6a3ec151e49972730fac043b414f0bd62 Mon Sep 17 00:00:00 2001 From: Alexander Petrenz Date: Wed, 27 Sep 2017 22:37:56 +0200 Subject: [PATCH 10/30] fixing table dialog: lint error, empty table --- src/zabapgit_objects_impl.prog.abap | 6 ++++-- src/zabapgit_popups.prog.abap | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/zabapgit_objects_impl.prog.abap b/src/zabapgit_objects_impl.prog.abap index e706bbd07..19682e368 100644 --- a/src/zabapgit_objects_impl.prog.abap +++ b/src/zabapgit_objects_impl.prog.abap @@ -29,8 +29,10 @@ CLASS lcl_objects IMPLEMENTATION. ENDLOOP. - "all returned objects will be overwritten - ct_results = lcl_popups=>popup_select_obj_overwrite( lt_results_overwrite ). + if lines( lt_results_overwrite ) > 0. + "all returned objects will be overwritten + ct_results = lcl_popups=>popup_select_obj_overwrite( lt_results_overwrite ). + endif. ENDMETHOD. diff --git a/src/zabapgit_popups.prog.abap b/src/zabapgit_popups.prog.abap index 0368c64f6..f97e81c9f 100644 --- a/src/zabapgit_popups.prog.abap +++ b/src/zabapgit_popups.prog.abap @@ -85,8 +85,8 @@ CLASS lcl_popups DEFINITION FINAL. PRIVATE SECTION. TYPES: ty_sval_tt TYPE STANDARD TABLE OF sval WITH DEFAULT KEY. - TYPES BEGIN OF t_popup_select_list. - TYPES selected TYPE flag. + TYPES: BEGIN OF t_popup_select_list, + selected TYPE flag. INCLUDE TYPE lif_defs=>ty_result. TYPES END OF t_popup_select_list. From 94ff4c7df9b716e5c34086066e90255f28f582ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Thu, 28 Sep 2017 08:39:35 +0000 Subject: [PATCH 11/30] refactoring --- src/zabapgit_objects_impl.prog.abap | 64 +++++++++++++++-------------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/src/zabapgit_objects_impl.prog.abap b/src/zabapgit_objects_impl.prog.abap index a55c1adb1..fe8853a1d 100644 --- a/src/zabapgit_objects_impl.prog.abap +++ b/src/zabapgit_objects_impl.prog.abap @@ -737,52 +737,56 @@ CLASS lcl_objects IMPLEMENTATION. METHOD resolve_ddls. + " As CDS-Views aka DDLS can be dependent on each other, + " we wan't to ensure that they are deleted in the right order + TYPES: BEGIN OF ty_ddls_name. INCLUDE TYPE ddsymtab. - TYPES: END OF ty_ddls_name, - tty_ddls_names TYPE STANDARD TABLE OF ty_ddls_name - WITH NON-UNIQUE DEFAULT KEY. + TYPES: END OF ty_ddls_name. - TYPES: BEGIN OF ty_s_masdepwa, - depname TYPE dd02l-tabname, - deptyp(4), - deplocal TYPE dd02l-as4local, - refname TYPE dd02l-tabname, - reftyp(4), - kind(1), - END OF ty_s_masdepwa. + TYPES: tty_ddls_names TYPE STANDARD TABLE OF ty_ddls_name + WITH NON-UNIQUE DEFAULT KEY, + BEGIN OF ty_dependency, + depname TYPE dd02l-tabname, + deptyp TYPE c LENGTH 4, + deplocal TYPE dd02l-as4local, + refname TYPE dd02l-tabname, + reftyp TYPE c LENGTH 4, + kind TYPE c LENGTH 1, + END OF ty_dependency. - DATA: lt_dep TYPE STANDARD TABLE OF ty_s_masdepwa - WITH NON-UNIQUE DEFAULT KEY, - lt_ddls_name TYPE tty_ddls_names, - ls_ddls_name LIKE LINE OF lt_ddls_name. + DATA: lt_dependency TYPE STANDARD TABLE OF ty_dependency + WITH NON-UNIQUE DEFAULT KEY, + lt_ddls_name TYPE tty_ddls_names, + ls_ddls_name LIKE LINE OF lt_ddls_name. - FIELD-SYMBOLS: TYPE lif_defs=>ty_tadir, - TYPE ty_s_masdepwa, - TYPE lif_defs=>ty_tadir. + FIELD-SYMBOLS: TYPE lif_defs=>ty_tadir, + TYPE ty_dependency, + TYPE lif_defs=>ty_tadir. - LOOP AT ct_tadir ASSIGNING + LOOP AT ct_tadir ASSIGNING WHERE object = 'DDLS'. - CLEAR: lt_dep, + CLEAR: lt_dependency, lt_ddls_name. - ls_ddls_name-name = -obj_name. + ls_ddls_name-name = -obj_name. INSERT ls_ddls_name INTO TABLE lt_ddls_name. - PERFORM ('DDLS_GET_DEP') IN PROGRAM ('RADMASDL') TABLES lt_ddls_name lt_dep. + PERFORM ('DDLS_GET_DEP') IN PROGRAM ('RADMASDL') + TABLES lt_ddls_name lt_dependency. - LOOP AT lt_dep ASSIGNING - WHERE deptyp = 'DDLS' - AND refname = -obj_name. - - READ TABLE ct_tadir ASSIGNING - WITH KEY obj_name = -depname - object = 'DDLS'. + LOOP AT lt_dependency ASSIGNING + WHERE deptyp = 'DDLS' + AND refname = -obj_name. + READ TABLE ct_tadir ASSIGNING + WITH KEY pgmid = 'R3TR' + object = 'DDLS' + obj_name = -depname. CHECK sy-subrc = 0. - -korrnum = -korrnum - 1. + -korrnum = -korrnum - 1. ENDLOOP. From 4af9da522dd3555d65d1bb4c7a382424524b9187 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Thu, 28 Sep 2017 08:58:32 +0000 Subject: [PATCH 12/30] Add binary search --- src/zabapgit_objects_impl.prog.abap | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/zabapgit_objects_impl.prog.abap b/src/zabapgit_objects_impl.prog.abap index fe8853a1d..4555647cd 100644 --- a/src/zabapgit_objects_impl.prog.abap +++ b/src/zabapgit_objects_impl.prog.abap @@ -738,7 +738,8 @@ CLASS lcl_objects IMPLEMENTATION. METHOD resolve_ddls. " As CDS-Views aka DDLS can be dependent on each other, - " we wan't to ensure that they are deleted in the right order + " we wan't to ensure that they are deleted in the right order. + " Otherwise deletion is prohibited by standard API TYPES: BEGIN OF ty_ddls_name. INCLUDE TYPE ddsymtab. @@ -783,7 +784,8 @@ CLASS lcl_objects IMPLEMENTATION. READ TABLE ct_tadir ASSIGNING WITH KEY pgmid = 'R3TR' object = 'DDLS' - obj_name = -depname. + obj_name = -depname + BINARY SEARCH. CHECK sy-subrc = 0. -korrnum = -korrnum - 1. From b1c22a5b349724b0e8b4bbc49cbed2b7c743e7be Mon Sep 17 00:00:00 2001 From: eduardocopat Date: Thu, 28 Sep 2017 21:41:38 +0200 Subject: [PATCH 13/30] Moves lcl_skip_objects closer to lcl_tadir --- src/zabapgit_file_status.prog.abap | 26 +------------------ src/zabapgit_repo_impl.prog.abap | 3 ++- src/zabapgit_skip_objects.prog.abap | 37 ++++++++++++++------------- src/zabapgit_tadir.prog.abap | 39 +++++++++++++++++++++++++---- 4 files changed, 56 insertions(+), 49 deletions(-) diff --git a/src/zabapgit_file_status.prog.abap b/src/zabapgit_file_status.prog.abap index 35a48422b..827bf21ba 100644 --- a/src/zabapgit_file_status.prog.abap +++ b/src/zabapgit_file_status.prog.abap @@ -7,23 +7,6 @@ *----------------------------------------------------------------------* CLASS ltcl_file_status DEFINITION DEFERRED. CLASS ltcl_file_status2 DEFINITION DEFERRED. -CLASS lcl_skip_objects DEFINITION. - PUBLIC SECTION. - METHODS: - skip_sadl_generated_objects - IMPORTING - it_results TYPE lif_defs=>ty_results_tt - io_log TYPE REF TO lcl_log - RETURNING - VALUE(rt_results) TYPE lif_defs=>ty_results_tt. - PRIVATE SECTION. - METHODS: - has_sadl_superclass - IMPORTING - is_class TYPE lif_defs=>ty_result - RETURNING - VALUE(rv_return) TYPE abap_bool. -ENDCLASS. CLASS lcl_file_status DEFINITION FINAL FRIENDS ltcl_file_status ltcl_file_status2. @@ -162,8 +145,7 @@ CLASS lcl_file_status IMPLEMENTATION. METHOD status. DATA: lv_index LIKE sy-tabix, - lo_dot_abapgit TYPE REF TO lcl_dot_abapgit, - lo_skip_objects TYPE REF TO lcl_skip_objects. + lo_dot_abapgit TYPE REF TO lcl_dot_abapgit. FIELD-SYMBOLS LIKE LINE OF rt_results. @@ -187,12 +169,6 @@ CLASS lcl_file_status IMPLEMENTATION. ENDIF. ENDLOOP. - - CREATE OBJECT lo_skip_objects. - rt_results = lo_skip_objects->skip_sadl_generated_objects( - it_results = rt_results - io_log = io_log ). - run_checks( io_log = io_log it_results = rt_results diff --git a/src/zabapgit_repo_impl.prog.abap b/src/zabapgit_repo_impl.prog.abap index 8d5147f8a..bccf9b731 100644 --- a/src/zabapgit_repo_impl.prog.abap +++ b/src/zabapgit_repo_impl.prog.abap @@ -636,7 +636,8 @@ CLASS lcl_repo IMPLEMENTATION. lt_tadir = lcl_tadir=>read( iv_package = get_package( ) iv_ignore_subpackages = ignore_subpackages( ) - io_dot = get_dot_abapgit( ) ). + io_dot = get_dot_abapgit( ) + io_log = io_log ). lt_filter = it_filter. lv_filter_exist = boolc( lines( lt_filter ) > 0 ). diff --git a/src/zabapgit_skip_objects.prog.abap b/src/zabapgit_skip_objects.prog.abap index e4afe3d84..ccc528e30 100644 --- a/src/zabapgit_skip_objects.prog.abap +++ b/src/zabapgit_skip_objects.prog.abap @@ -4,30 +4,31 @@ CLASS lcl_skip_objects IMPLEMENTATION. METHOD skip_sadl_generated_objects. - DATA: ls_ddls_class_result LIKE LINE OF rt_results, - lo_sadl_class TYPE REF TO lif_object, - ls_item TYPE lif_defs=>ty_item, - ls_result LIKE LINE OF rt_results, - lt_lines_to_delete TYPE lif_defs=>ty_results_tt. + DATA: ls_tadir_class LIKE LINE OF rt_tadir, + lo_sadl_class TYPE REF TO lif_object, + ls_item TYPE lif_defs=>ty_tadir, + ls_tadir LIKE LINE OF rt_tadir, + lt_lines_to_delete TYPE lif_defs=>ty_tadir_tt. - rt_results = it_results. - LOOP AT it_results INTO ls_result WHERE obj_type = 'DDLS'. - LOOP AT it_results INTO ls_ddls_class_result - WHERE obj_type = 'CLAS' AND obj_name CS ls_result-obj_name. + rt_tadir = it_tadir. + LOOP AT it_tadir INTO ls_tadir WHERE object = 'DDLS'. + LOOP AT rt_tadir INTO ls_tadir_class + WHERE object = 'CLAS' AND obj_name CS ls_tadir-obj_name. - IF has_sadl_superclass( ls_ddls_class_result ). - APPEND ls_ddls_class_result TO lt_lines_to_delete. + IF has_sadl_superclass( ls_tadir_class ). + APPEND ls_tadir_class TO lt_lines_to_delete. ENDIF. ENDLOOP. ENDLOOP. - SORT lt_lines_to_delete BY filename. DELETE ADJACENT DUPLICATES FROM lt_lines_to_delete. - LOOP AT lt_lines_to_delete INTO ls_ddls_class_result. - DELETE TABLE rt_results FROM ls_ddls_class_result. - io_log->add( - iv_msg = |{ ls_ddls_class_result-filename } skipped: generated by SADL| - iv_type = 'W' ). + LOOP AT lt_lines_to_delete INTO ls_tadir_class. + DELETE TABLE rt_tadir FROM ls_tadir_class. + IF io_log IS BOUND. + io_log->add( + iv_msg = |{ ls_tadir_class-obj_name } skipped: generated by SADL| + iv_type = 'W' ). + ENDIF. ENDLOOP. ENDMETHOD. @@ -36,7 +37,7 @@ CLASS lcl_skip_objects IMPLEMENTATION. lv_class_name TYPE seoclsname, lv_superclass TYPE seoclsname. - lo_oo_functions = lcl_oo_factory=>make( is_class-obj_type ). + lo_oo_functions = lcl_oo_factory=>make( is_class-object ). lv_class_name = is_class-obj_name. lv_superclass = lo_oo_functions->read_superclass( lv_class_name ). IF lv_superclass = 'CL_SADL_GTK_EXPOSURE_MPC'. diff --git a/src/zabapgit_tadir.prog.abap b/src/zabapgit_tadir.prog.abap index b3170da02..52dd4118b 100644 --- a/src/zabapgit_tadir.prog.abap +++ b/src/zabapgit_tadir.prog.abap @@ -7,6 +7,24 @@ *----------------------------------------------------------------------* * *----------------------------------------------------------------------* +CLASS lcl_skip_objects DEFINITION. + PUBLIC SECTION. + METHODS: + skip_sadl_generated_objects + IMPORTING + it_tadir TYPE lif_defs=>ty_tadir_tt + io_log TYPE REF TO lcl_log OPTIONAL + RETURNING + VALUE(rt_tadir) TYPE lif_defs=>ty_tadir_tt. + PRIVATE SECTION. + METHODS: + has_sadl_superclass + IMPORTING + is_class TYPE lif_defs=>ty_tadir + RETURNING + VALUE(rv_return) TYPE abap_bool. +ENDCLASS. + CLASS lcl_tadir DEFINITION FINAL. PUBLIC SECTION. @@ -15,6 +33,7 @@ CLASS lcl_tadir DEFINITION FINAL. IMPORTING iv_package TYPE tadir-devclass iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false io_dot TYPE REF TO lcl_dot_abapgit OPTIONAL + io_log TYPE REF TO lcl_log OPTIONAL RETURNING VALUE(rt_tadir) TYPE lif_defs=>ty_tadir_tt RAISING lcx_exception, read_single @@ -50,6 +69,7 @@ CLASS lcl_tadir DEFINITION FINAL. iv_top TYPE tadir-devclass io_dot TYPE REF TO lcl_dot_abapgit iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false + io_log TYPE REF TO lcl_log OPTIONAL RETURNING VALUE(rt_tadir) TYPE lif_defs=>ty_tadir_tt RAISING lcx_exception. @@ -188,7 +208,8 @@ CLASS lcl_tadir IMPLEMENTATION. rt_tadir = build( iv_package = iv_package iv_top = iv_package io_dot = io_dot - iv_ignore_subpackages = iv_ignore_subpackages ). + iv_ignore_subpackages = iv_ignore_subpackages + io_log = io_log ). rt_tadir = check_exists( rt_tadir ). @@ -196,9 +217,10 @@ CLASS lcl_tadir IMPLEMENTATION. METHOD build. - DATA: lt_tadir TYPE lif_defs=>ty_tadir_tt, - lt_tdevc TYPE STANDARD TABLE OF tdevc, - lv_path TYPE string. + DATA: lt_tadir TYPE lif_defs=>ty_tadir_tt, + lt_tdevc TYPE STANDARD TABLE OF tdevc, + lv_path TYPE string, + lo_skip_objects TYPE REF TO lcl_skip_objects. FIELD-SYMBOLS: LIKE LINE OF lt_tdevc, LIKE LINE OF rt_tadir. @@ -216,6 +238,12 @@ CLASS lcl_tadir IMPLEMENTATION. AND delflag = abap_false ORDER BY PRIMARY KEY. "#EC CI_GENBUFF "#EC CI_SUBRC + CREATE OBJECT lo_skip_objects. + rt_tadir = lo_skip_objects->skip_sadl_generated_objects( + it_tadir = rt_tadir + io_log = io_log + ). + IF NOT io_dot IS INITIAL. lv_path = lcl_folder_logic=>package_to_path( iv_top = iv_top @@ -243,7 +271,8 @@ CLASS lcl_tadir IMPLEMENTATION. LOOP AT lt_tdevc ASSIGNING . lt_tadir = build( iv_package = -devclass iv_top = iv_top - io_dot = io_dot ). + io_dot = io_dot + io_log = io_log ). APPEND LINES OF lt_tadir TO rt_tadir. ENDLOOP. From 2acee1b836ea1c4feac6c62929f63d2e66885cd4 Mon Sep 17 00:00:00 2001 From: eduardocopat Date: Thu, 28 Sep 2017 21:45:20 +0200 Subject: [PATCH 14/30] lint --- src/zabapgit_tadir.prog.abap | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/zabapgit_tadir.prog.abap b/src/zabapgit_tadir.prog.abap index 52dd4118b..4877431a3 100644 --- a/src/zabapgit_tadir.prog.abap +++ b/src/zabapgit_tadir.prog.abap @@ -241,8 +241,7 @@ CLASS lcl_tadir IMPLEMENTATION. CREATE OBJECT lo_skip_objects. rt_tadir = lo_skip_objects->skip_sadl_generated_objects( it_tadir = rt_tadir - io_log = io_log - ). + io_log = io_log ). IF NOT io_dot IS INITIAL. lv_path = lcl_folder_logic=>package_to_path( From b5b0aef3fbc0fb4fab2b1539388d504082e8cecf Mon Sep 17 00:00:00 2001 From: larshp Date: Sun, 1 Oct 2017 07:15:42 +0000 Subject: [PATCH 15/30] closes #939 --- src/zabapgit_repo_impl.prog.abap | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/zabapgit_repo_impl.prog.abap b/src/zabapgit_repo_impl.prog.abap index bccf9b731..6242729e9 100644 --- a/src/zabapgit_repo_impl.prog.abap +++ b/src/zabapgit_repo_impl.prog.abap @@ -366,7 +366,10 @@ CLASS lcl_repo_online IMPLEMENTATION. obj_name = -obj_name devclass = -package BINARY SEARCH. - ASSERT sy-subrc = 0. + IF sy-subrc <> 0. +* skip objects that does not exist locally + CONTINUE. + ENDIF. INSERT INTO TABLE lt_tadir_unique. From ba9bf55f474f223fea79272e137715ab0431c5f0 Mon Sep 17 00:00:00 2001 From: larshp Date: Sun, 1 Oct 2017 07:19:25 +0000 Subject: [PATCH 16/30] v1.42.0 --- src/zabapgit_definitions.prog.abap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zabapgit_definitions.prog.abap b/src/zabapgit_definitions.prog.abap index 8aae714e6..90abd5bdf 100644 --- a/src/zabapgit_definitions.prog.abap +++ b/src/zabapgit_definitions.prog.abap @@ -7,7 +7,7 @@ TYPE-POOLS seop. INTERFACE lif_defs. CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT - gc_abap_version TYPE string VALUE 'v1.41.2'. "#EC NOTEXT + gc_abap_version TYPE string VALUE 'v1.42.0'. "#EC NOTEXT TYPES: ty_type TYPE c LENGTH 6, ty_bitbyte TYPE c LENGTH 8, From c3ab0ec8be884c64670fca36f4d97665a8b4983d Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sun, 1 Oct 2017 09:22:56 +0200 Subject: [PATCH 17/30] v1.42.0 --- changelog.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/changelog.txt b/changelog.txt index 175ca1a4c..840cba072 100644 --- a/changelog.txt +++ b/changelog.txt @@ -8,6 +8,13 @@ Legend + : added - : removed +2017-09-11 v1.42.0 +------------------ +* fix dump in "reset local objects" +* Fix DDLS deletion/uninstall sequence +* Skip DDLS auto generated objects +! New dialog box for overwriting local objects + 2017-09-11 v1.41.2 ------------------ * FUGR table maintenance, namespaces From 71a8fa6dc068fce38a3e31805a31e78104045282 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sun, 1 Oct 2017 09:23:15 +0200 Subject: [PATCH 18/30] v1.42.0 --- changelog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 840cba072..ee17e392d 100644 --- a/changelog.txt +++ b/changelog.txt @@ -8,7 +8,7 @@ Legend + : added - : removed -2017-09-11 v1.42.0 +2017-10-01 v1.42.0 ------------------ * fix dump in "reset local objects" * Fix DDLS deletion/uninstall sequence From 98f41dc759e9e34f415f642cc2b2213e7dc72be1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Sun, 1 Oct 2017 07:32:18 +0000 Subject: [PATCH 19/30] Catch class_not_existing exception #836 --- src/zabapgit_object_clas.prog.abap | 13 ++++++++++++- src/zabapgit_object_oo_functions.prog.abap | 4 +++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/zabapgit_object_clas.prog.abap b/src/zabapgit_object_clas.prog.abap index 35991602c..1bb625e13 100644 --- a/src/zabapgit_object_clas.prog.abap +++ b/src/zabapgit_object_clas.prog.abap @@ -557,7 +557,18 @@ CLASS lcl_oo_class IMPLEMENTATION. * when the methods are changed * APPEND cl_oo_classname_service=>get_cs_name( lv_class_name ) TO rt_includes. - lt_methods = cl_oo_classname_service=>get_all_method_includes( lv_class_name ). + cl_oo_classname_service=>get_all_method_includes( + EXPORTING + clsname = lv_class_name + RECEIVING + result = lt_methods + EXCEPTIONS + class_not_existing = 1 ). + + IF sy-subrc <> 0. + lcx_exception=>raise( |Class { lv_class_name } not existing| ). + ENDIF. + LOOP AT lt_methods ASSIGNING . APPEND -incname TO rt_includes. ENDLOOP. diff --git a/src/zabapgit_object_oo_functions.prog.abap b/src/zabapgit_object_oo_functions.prog.abap index ba0fe5da8..064ef6cf7 100644 --- a/src/zabapgit_object_oo_functions.prog.abap +++ b/src/zabapgit_object_oo_functions.prog.abap @@ -65,7 +65,9 @@ INTERFACE lif_oo_object_fnc. IMPORTING iv_object_name TYPE sobj_name RETURNING - VALUE(rt_includes) TYPE ty_includes_tt, + VALUE(rt_includes) TYPE ty_includes_tt + RAISING + lcx_exception, exists IMPORTING iv_object_name TYPE seoclskey From afd9c787917b5d5d758be70d4c1751f138688e99 Mon Sep 17 00:00:00 2001 From: larshp Date: Sun, 1 Oct 2017 07:36:45 +0000 Subject: [PATCH 20/30] #933, fix syntax error on 702 --- src/zabapgit_object_clas_new.prog.abap | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/zabapgit_object_clas_new.prog.abap b/src/zabapgit_object_clas_new.prog.abap index b086f8bdf..7132916a6 100644 --- a/src/zabapgit_object_clas_new.prog.abap +++ b/src/zabapgit_object_clas_new.prog.abap @@ -179,7 +179,8 @@ CLASS lcl_oo_class_new IMPLEMENTATION. ls_clskey-clsname = iv_name. - CREATE OBJECT lo_update +* todo, downport to 702, see https://github.com/larshp/abapGit/issues/933 + CREATE OBJECT lo_update TYPE ('CL_OO_CLASS_SECTION_SOURCE') EXPORTING clskey = ls_clskey exposure = iv_exposure From a43d4df2b93aab7fc3e6b48fd4e38d2f3caa10b2 Mon Sep 17 00:00:00 2001 From: larshp Date: Sun, 1 Oct 2017 08:48:03 +0000 Subject: [PATCH 21/30] GUI for calling syntax check #911 --- src/zabapgit_definitions.prog.abap | 1 + src/zabapgit_gui_pages.prog.abap | 1 + src/zabapgit_gui_router.prog.abap | 5 ++ src/zabapgit_page_syntax_check.prog.abap | 59 ++++++++++++++++++++++++ src/zabapgit_page_syntax_check.prog.xml | 22 +++++++++ src/zabapgit_view_repo.prog.abap | 2 + 6 files changed, 90 insertions(+) create mode 100644 src/zabapgit_page_syntax_check.prog.abap create mode 100644 src/zabapgit_page_syntax_check.prog.xml diff --git a/src/zabapgit_definitions.prog.abap b/src/zabapgit_definitions.prog.abap index 90abd5bdf..987b7dd36 100644 --- a/src/zabapgit_definitions.prog.abap +++ b/src/zabapgit_definitions.prog.abap @@ -214,6 +214,7 @@ INTERFACE lif_defs. repo_refresh_checksums TYPE string VALUE 'repo_refresh_checksums', repo_toggle_fav TYPE string VALUE 'repo_toggle_fav', repo_transport_to_branch TYPE string VALUE 'repo_transport_to_branch', + repo_syntax_check TYPE string VALUE 'repo_syntax_check', abapgit_home TYPE string VALUE 'abapgit_home', abapgit_wiki TYPE string VALUE 'abapgit_wiki', diff --git a/src/zabapgit_gui_pages.prog.abap b/src/zabapgit_gui_pages.prog.abap index e4c658462..b1e5182cc 100644 --- a/src/zabapgit_gui_pages.prog.abap +++ b/src/zabapgit_gui_pages.prog.abap @@ -30,3 +30,4 @@ INCLUDE zabapgit_page_stage. INCLUDE zabapgit_page_debug. INCLUDE zabapgit_page_settings. INCLUDE zabapgit_page_repo_settings. +INCLUDE zabapgit_page_syntax_check. diff --git a/src/zabapgit_gui_router.prog.abap b/src/zabapgit_gui_router.prog.abap index 1c7a0b009..4317d5455 100644 --- a/src/zabapgit_gui_router.prog.abap +++ b/src/zabapgit_gui_router.prog.abap @@ -163,6 +163,11 @@ CLASS lcl_gui_router IMPLEMENTATION. WHEN lif_defs=>gc_action-repo_refresh. " Repo refresh lcl_services_repo=>refresh( lv_key ). ev_state = lif_defs=>gc_event_state-re_render. + WHEN lif_defs=>gc_action-repo_syntax_check. + CREATE OBJECT ei_page TYPE lcl_gui_page_syntax_check + EXPORTING + io_repo = lcl_app=>repo_srv( )->get( lv_key ). + ev_state = lif_defs=>gc_event_state-new_page. WHEN lif_defs=>gc_action-repo_purge. " Repo remove & purge all objects lcl_services_repo=>purge( lv_key ). ev_state = lif_defs=>gc_event_state-re_render. diff --git a/src/zabapgit_page_syntax_check.prog.abap b/src/zabapgit_page_syntax_check.prog.abap new file mode 100644 index 000000000..4a9d2ec78 --- /dev/null +++ b/src/zabapgit_page_syntax_check.prog.abap @@ -0,0 +1,59 @@ +*&---------------------------------------------------------------------* +*& Include ZABAPGIT_PAGE_SYNTAX_CHECK +*&---------------------------------------------------------------------* + +*&---------------------------------------------------------------------* +*& Include ZABAPGIT_PAGE_REPO_SETTINGS +*&---------------------------------------------------------------------* + +CLASS lcl_gui_page_syntax_check DEFINITION FINAL INHERITING FROM lcl_gui_page. + PUBLIC SECTION. + METHODS: + constructor + IMPORTING io_repo TYPE REF TO lcl_repo. + + PROTECTED SECTION. + CONSTANTS: + BEGIN OF c_action, + back TYPE string VALUE 'back', + END OF c_action. + + DATA: mo_repo TYPE REF TO lcl_repo. + + METHODS: + render_content REDEFINITION. + +ENDCLASS. + +CLASS lcl_gui_page_syntax_check IMPLEMENTATION. + + METHOD constructor. + super->constructor( ). + ms_control-page_title = 'SYNTAX CHECK'. + mo_repo = io_repo. + ENDMETHOD. " constructor. + + METHOD render_content. + + DATA: lt_result TYPE scit_alvlist, + ls_result LIKE LINE OF lt_result. + + + lt_result = zcl_abapgit_syntax_check=>run( mo_repo->get_package( ) ). + + CREATE OBJECT ro_html. + ro_html->add( '
' ). + + IF lines( lt_result ) = 0. + ro_html->add( 'No errors' ). + ENDIF. + + LOOP AT lt_result INTO ls_result. + ro_html->add( |{ ls_result-objtype } { ls_result-objname } { ls_result-kind } { ls_result-text }
| ). + ENDLOOP. + + ro_html->add( '
' ). + + ENDMETHOD. "render_content + +ENDCLASS. "lcl_gui_page_debuginfo diff --git a/src/zabapgit_page_syntax_check.prog.xml b/src/zabapgit_page_syntax_check.prog.xml new file mode 100644 index 000000000..6d12e98a3 --- /dev/null +++ b/src/zabapgit_page_syntax_check.prog.xml @@ -0,0 +1,22 @@ + + + + + + ZABAPGIT_PAGE_SYNTAX_CHECK + A + X + I + E + X + + + + R + Include ZABAPGIT_PAGE_SYNTAX_CHECK + 34 + + + + + diff --git a/src/zabapgit_view_repo.prog.abap b/src/zabapgit_view_repo.prog.abap index c643522f5..c31dda24a 100644 --- a/src/zabapgit_view_repo.prog.abap +++ b/src/zabapgit_view_repo.prog.abap @@ -314,6 +314,8 @@ CLASS lcl_gui_view_repo IMPLEMENTATION. lo_tb_advanced->add( iv_txt = 'Make on-line' iv_act = |{ lif_defs=>gc_action-repo_remote_attach }?{ lv_key }| ). ENDIF. + lo_tb_advanced->add( iv_txt = 'Syntax Check' + iv_act = |{ lif_defs=>gc_action-repo_syntax_check }?{ lv_key }| ). lo_tb_advanced->add( iv_txt = 'Repo settings' iv_act = |{ lif_defs=>gc_action-repo_settings }?{ lv_key }| ). lo_tb_advanced->add( iv_txt = 'Update local checksums' From 9585a5477826545476ca791d2e96af4340f7d29c Mon Sep 17 00:00:00 2001 From: larshp Date: Sun, 1 Oct 2017 08:59:14 +0000 Subject: [PATCH 22/30] delete unnessary obj, fix sorting --- src/zabapgit_repo_impl.prog.abap | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/zabapgit_repo_impl.prog.abap b/src/zabapgit_repo_impl.prog.abap index 6242729e9..7e364db01 100644 --- a/src/zabapgit_repo_impl.prog.abap +++ b/src/zabapgit_repo_impl.prog.abap @@ -344,7 +344,7 @@ CLASS lcl_repo_online IMPLEMENTATION. lt_local TYPE lif_defs=>ty_files_item_tt, lt_remote TYPE lif_defs=>ty_files_tt, lt_status TYPE lif_defs=>ty_results_tt, - lt_package TYPE lcl_persistence_repo=>ty_repo-package. + lv_package TYPE lcl_persistence_repo=>ty_repo-package. FIELD-SYMBOLS: TYPE lif_defs=>ty_result, TYPE lif_defs=>ty_tadir. @@ -354,8 +354,9 @@ CLASS lcl_repo_online IMPLEMENTATION. lt_remote = me->get_files_remote( ). lt_status = me->status( ). - lt_package = me->get_package( ). - lt_tadir = lcl_tadir=>read( lt_package ). + lv_package = me->get_package( ). + lt_tadir = lcl_tadir=>read( lv_package ). + SORT lt_tadir BY pgmid ASCENDING object ASCENDING obj_name ASCENDING devclass ASCENDING. LOOP AT lt_status ASSIGNING WHERE lstate = lif_defs=>gc_state-added. From b488d42cf59a6a0188e74a046bcee14b23a4c118 Mon Sep 17 00:00:00 2001 From: larshp Date: Sun, 1 Oct 2017 09:04:29 +0000 Subject: [PATCH 23/30] PROG: show sy-subrc in error message --- src/zabapgit_object_prog.prog.abap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zabapgit_object_prog.prog.abap b/src/zabapgit_object_prog.prog.abap index 76867444d..7a905d33c 100644 --- a/src/zabapgit_object_prog.prog.abap +++ b/src/zabapgit_object_prog.prog.abap @@ -98,7 +98,7 @@ CLASS lcl_object_prog IMPLEMENTATION. reject_deletion = 4 OTHERS = 5. IF sy-subrc <> 0. - lcx_exception=>raise( 'error from RS_DELETE_PROGRAM' ). + lcx_exception=>raise( |Error from RS_DELETE_PROGRAM: { sy-subrc }| ). ENDIF. ENDMETHOD. "delete From 860ff3b6dfd955ff83cd496f4af080125b6dbcc0 Mon Sep 17 00:00:00 2001 From: larshp Date: Sun, 1 Oct 2017 09:22:21 +0000 Subject: [PATCH 24/30] lcl_time to global class #773 --- src/utils/zcl_abapgit_time.clas.abap | 65 +++++++++++++++++++++++++ src/utils/zcl_abapgit_time.clas.xml | 18 +++++++ src/zabapgit_git.prog.abap | 4 +- src/zabapgit_page_debug.prog.abap | 2 +- src/zabapgit_util.prog.abap | 73 ---------------------------- src/zcx_abapgit_exception.clas.abap | 46 ++++++++++++++++++ src/zcx_abapgit_exception.clas.xml | 27 ++++++++++ 7 files changed, 159 insertions(+), 76 deletions(-) create mode 100644 src/utils/zcl_abapgit_time.clas.abap create mode 100644 src/utils/zcl_abapgit_time.clas.xml create mode 100644 src/zcx_abapgit_exception.clas.abap create mode 100644 src/zcx_abapgit_exception.clas.xml diff --git a/src/utils/zcl_abapgit_time.clas.abap b/src/utils/zcl_abapgit_time.clas.abap new file mode 100644 index 000000000..8c21aa0ae --- /dev/null +++ b/src/utils/zcl_abapgit_time.clas.abap @@ -0,0 +1,65 @@ +CLASS zcl_abapgit_time DEFINITION + PUBLIC + CREATE PUBLIC . + + PUBLIC SECTION. + TYPES: ty_unixtime TYPE c LENGTH 16. + + CLASS-METHODS get + RETURNING VALUE(rv_time) TYPE ty_unixtime + RAISING zcx_abapgit_exception. + PRIVATE SECTION. + CONSTANTS: c_epoch TYPE datum VALUE '19700101'. + +ENDCLASS. + + + +CLASS ZCL_ABAPGIT_TIME IMPLEMENTATION. + + + METHOD get. + + DATA: lv_i TYPE i, + lv_tz TYPE tznzone, + lv_utcdiff TYPE tznutcdiff, + lv_utcsign TYPE tznutcsign. + + + lv_i = sy-datum - c_epoch. + lv_i = lv_i * 86400. + lv_i = lv_i + sy-uzeit. + + CALL FUNCTION 'TZON_GET_OS_TIMEZONE' + IMPORTING + ef_timezone = lv_tz. + + CALL FUNCTION 'TZON_GET_OFFSET' + EXPORTING + if_timezone = lv_tz + if_local_date = sy-datum + if_local_time = sy-uzeit + IMPORTING + ef_utcdiff = lv_utcdiff + ef_utcsign = lv_utcsign + EXCEPTIONS + conversion_error = 1 + OTHERS = 2. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'Timezone error' ). + ENDIF. + + CASE lv_utcsign. + WHEN '+'. + lv_i = lv_i - lv_utcdiff. + WHEN '-'. + lv_i = lv_i + lv_utcdiff. + ENDCASE. + + rv_time = lv_i. + CONDENSE rv_time. + rv_time+11 = lv_utcsign. + rv_time+12 = lv_utcdiff. + + ENDMETHOD. "get +ENDCLASS. diff --git a/src/utils/zcl_abapgit_time.clas.xml b/src/utils/zcl_abapgit_time.clas.xml new file mode 100644 index 000000000..8e1c6b724 --- /dev/null +++ b/src/utils/zcl_abapgit_time.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_TIME + 1 + E + Time + 2 + 1 + X + X + X + + + + diff --git a/src/zabapgit_git.prog.abap b/src/zabapgit_git.prog.abap index 448defdff..e1cada07c 100644 --- a/src/zabapgit_git.prog.abap +++ b/src/zabapgit_git.prog.abap @@ -1199,7 +1199,7 @@ CLASS lcl_git_porcelain IMPLEMENTATION. METHOD receive_pack. - DATA: lv_time TYPE lcl_time=>ty_unixtime, + DATA: lv_time TYPE zcl_abapgit_time=>ty_unixtime, lv_commit TYPE xstring, lt_objects TYPE lif_defs=>ty_objects_tt, lv_pack TYPE xstring, @@ -1210,7 +1210,7 @@ CLASS lcl_git_porcelain IMPLEMENTATION. LIKE LINE OF it_blobs. - lv_time = lcl_time=>get( ). + lv_time = zcl_abapgit_time=>get( ). READ TABLE it_trees ASSIGNING WITH KEY path = '/'. ASSERT sy-subrc = 0. diff --git a/src/zabapgit_page_debug.prog.abap b/src/zabapgit_page_debug.prog.abap index 12d5b841f..f3833a970 100644 --- a/src/zabapgit_page_debug.prog.abap +++ b/src/zabapgit_page_debug.prog.abap @@ -58,7 +58,7 @@ CLASS lcl_gui_page_debuginfo IMPLEMENTATION. ro_html->add( |

abapGit version: { lif_defs=>gc_abap_version }

| ). ro_html->add( |

XML version: { lif_defs=>gc_xml_version }

| ). ro_html->add( |

GUI version: { lv_gui_version }

| ). - ro_html->add( |

LCL_TIME: { lcl_time=>get( ) }

| ). + ro_html->add( |

LCL_TIME: { zcl_abapgit_time=>get( ) }

| ). ro_html->add( |

SY time: { sy-datum } { sy-uzeit } { sy-tzone }

| ). ENDMETHOD. "render_debug_info diff --git a/src/zabapgit_util.prog.abap b/src/zabapgit_util.prog.abap index cdd0ec32e..c5d9e3c8e 100644 --- a/src/zabapgit_util.prog.abap +++ b/src/zabapgit_util.prog.abap @@ -31,79 +31,6 @@ CLASS lcl_state IMPLEMENTATION. ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_time DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_time DEFINITION FINAL. - - PUBLIC SECTION. - TYPES: ty_unixtime TYPE c LENGTH 16. - - CLASS-METHODS get - RETURNING VALUE(rv_time) TYPE ty_unixtime - RAISING lcx_exception. - - PRIVATE SECTION. - CONSTANTS: c_epoch TYPE datum VALUE '19700101'. - -ENDCLASS. "lcl_time DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_time IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_time IMPLEMENTATION. - - METHOD get. - - DATA: lv_i TYPE i, - lv_tz TYPE tznzone, - lv_utcdiff TYPE tznutcdiff, - lv_utcsign TYPE tznutcsign. - - - lv_i = sy-datum - c_epoch. - lv_i = lv_i * 86400. - lv_i = lv_i + sy-uzeit. - - CALL FUNCTION 'TZON_GET_OS_TIMEZONE' - IMPORTING - ef_timezone = lv_tz. - - CALL FUNCTION 'TZON_GET_OFFSET' - EXPORTING - if_timezone = lv_tz - if_local_date = sy-datum - if_local_time = sy-uzeit - IMPORTING - ef_utcdiff = lv_utcdiff - ef_utcsign = lv_utcsign - EXCEPTIONS - conversion_error = 1 - OTHERS = 2. - IF sy-subrc <> 0. - lcx_exception=>raise( 'Timezone error' ). - ENDIF. - - CASE lv_utcsign. - WHEN '+'. - lv_i = lv_i - lv_utcdiff. - WHEN '-'. - lv_i = lv_i + lv_utcdiff. - ENDCASE. - - rv_time = lv_i. - CONDENSE rv_time. - rv_time+11 = lv_utcsign. - rv_time+12 = lv_utcdiff. - - ENDMETHOD. "get - -ENDCLASS. "lcl_time IMPLEMENTATION - *----------------------------------------------------------------------* * CLASS lcl_convert DEFINITION *----------------------------------------------------------------------* diff --git a/src/zcx_abapgit_exception.clas.abap b/src/zcx_abapgit_exception.clas.abap new file mode 100644 index 000000000..a6d3ea62a --- /dev/null +++ b/src/zcx_abapgit_exception.clas.abap @@ -0,0 +1,46 @@ +class ZCX_ABAPGIT_EXCEPTION definition + public + inheriting from CX_STATIC_CHECK + create public . + +public section. + + data TEXT type STRING . + + methods CONSTRUCTOR + importing + !TEXTID like TEXTID optional + !PREVIOUS like PREVIOUS optional + !TEXT type STRING optional . + class-methods RAISE + importing + !IV_TEXT type CLIKE + raising + ZCX_ABAPGIT_EXCEPTION . +protected section. +private section. +ENDCLASS. + + + +CLASS ZCX_ABAPGIT_EXCEPTION IMPLEMENTATION. + + + method CONSTRUCTOR. +CALL METHOD SUPER->CONSTRUCTOR +EXPORTING +TEXTID = TEXTID +PREVIOUS = PREVIOUS +. +me->TEXT = TEXT . + endmethod. + + + METHOD raise. + + RAISE EXCEPTION TYPE zcx_abapgit_exception + EXPORTING + text = iv_text. + + ENDMETHOD. +ENDCLASS. diff --git a/src/zcx_abapgit_exception.clas.xml b/src/zcx_abapgit_exception.clas.xml new file mode 100644 index 000000000..8c579868b --- /dev/null +++ b/src/zcx_abapgit_exception.clas.xml @@ -0,0 +1,27 @@ + + + + + + ZCX_ABAPGIT_EXCEPTION + 1 + E + Exception + 40 + 2 + 1 + X + X + X + + + + ZCX_ABAPGIT_EXCEPTION + CONSTRUCTOR + E + CONSTRUCTOR + + + + + From 5779b50c7460687f0647394a3e61e61af66a1e0f Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sun, 1 Oct 2017 11:53:27 +0200 Subject: [PATCH 25/30] abapmerge 0.7.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bcdf263fe..9b711d853 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "url": "git+https://github.com/larshp/abapGit.git" }, "devDependencies": { - "abapmerge": "^0.7.0", + "abapmerge": "^0.7.1", "abaplint": ">=0.26.7" } } From 92183a5f84d8a1273c967feda024bdf9d86c129e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Sun, 1 Oct 2017 09:59:50 +0000 Subject: [PATCH 26/30] Jump to W3HT and W3MI --- src/zabapgit_object_w3xx.prog.abap | 94 +++++++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 2 deletions(-) diff --git a/src/zabapgit_object_w3xx.prog.abap b/src/zabapgit_object_w3xx.prog.abap index a61ea31ee..73a32a5ee 100644 --- a/src/zabapgit_object_w3xx.prog.abap +++ b/src/zabapgit_object_w3xx.prog.abap @@ -28,9 +28,15 @@ CLASS lcl_object_w3super DEFINITION INHERITING FROM lcl_objects_super ABSTRACT. iv_language TYPE spras. PROTECTED SECTION. + TYPES tty_bdcdata TYPE STANDARD TABLE OF bdcdata + WITH NON-UNIQUE DEFAULT KEY. METHODS get_metadata REDEFINITION. + METHODS change_bdc_jump_data ABSTRACT + CHANGING + ct_bdcdata TYPE tty_bdcdata. + PRIVATE SECTION. DATA ms_key TYPE wwwdatatab. @@ -89,8 +95,53 @@ CLASS lcl_object_w3super IMPLEMENTATION. ENDMETHOD. METHOD lif_object~jump. - " No idea how to jump to SMW0 - lcx_exception=>raise( 'Please go to SMW0 for W3MI object' ). + + DATA: ls_bdcdata TYPE bdcdata, + lt_bdcdata TYPE STANDARD TABLE OF bdcdata. + + ls_bdcdata-program = 'SAPMWWW0'. + ls_bdcdata-dynpro = '0100'. + ls_bdcdata-dynbegin = 'X'. + APPEND ls_bdcdata TO lt_bdcdata. + + change_bdc_jump_data( + CHANGING + ct_bdcdata = lt_bdcdata ). + + CLEAR ls_bdcdata. + ls_bdcdata-fnam = 'BDC_OKCODE'. + ls_bdcdata-fval = '=CRO1'. + APPEND ls_bdcdata TO lt_bdcdata. + + ls_bdcdata-program = 'RSWWWSHW'. + ls_bdcdata-dynpro = '1000'. + ls_bdcdata-dynbegin = 'X'. + APPEND ls_bdcdata TO lt_bdcdata. + + CLEAR ls_bdcdata. + ls_bdcdata-fnam = 'SO_OBJID-LOW'. + ls_bdcdata-fval = ms_item-obj_name. + APPEND ls_bdcdata TO lt_bdcdata. + + CLEAR ls_bdcdata. + ls_bdcdata-fnam = 'BDC_OKCODE'. + ls_bdcdata-fval = '=ONLI'. + APPEND ls_bdcdata TO lt_bdcdata. + + CALL FUNCTION 'ABAP4_CALL_TRANSACTION' + STARTING NEW TASK 'GIT' + EXPORTING + tcode = 'SMW0' + mode_val = 'E' + TABLES + using_tab = lt_bdcdata + EXCEPTIONS + OTHERS = 1. + + IF sy-subrc <> 0. + lcx_exception=>raise( 'error from ABAP4_CALL_TRANSACTION, SE35' ). + ENDIF. + ENDMETHOD. "jump METHOD lif_object~get_metadata. @@ -445,18 +496,57 @@ ENDCLASS. "lcl_object_W3SUPER IMPLEMENTATION * Web Reporting/Internet Transaction Server MIME Types (binary data) *----------------------------------------------------------------------* CLASS lcl_object_w3mi DEFINITION INHERITING FROM lcl_object_w3super FINAL. + + PROTECTED SECTION. + METHODS: change_bdc_jump_data REDEFINITION. ENDCLASS. "lcl_object_W3MI DEFINITION CLASS lcl_object_w3mi IMPLEMENTATION. + + METHOD change_bdc_jump_data. + + DATA: ls_bdcdata LIKE LINE OF ct_bdcdata. + + ls_bdcdata-fnam = 'RADIO_HT'. + ls_bdcdata-fval = ' '. + APPEND ls_bdcdata TO ct_bdcdata. + + CLEAR ls_bdcdata. + ls_bdcdata-fnam = 'RADIO_MI'. + ls_bdcdata-fval = 'X'. + APPEND ls_bdcdata TO ct_bdcdata. + + ENDMETHOD. + ENDCLASS. + *----------------------------------------------------------------------* * CLASS lcl_object_W3HT DEFINITION *----------------------------------------------------------------------* * Web Reporting/Internet Transaction Server MIME Types (html data) *----------------------------------------------------------------------* CLASS lcl_object_w3ht DEFINITION INHERITING FROM lcl_object_w3super FINAL. + + PROTECTED SECTION. + METHODS: change_bdc_jump_data REDEFINITION. ENDCLASS. "lcl_object_W3HT DEFINITION CLASS lcl_object_w3ht IMPLEMENTATION. + + METHOD change_bdc_jump_data. + + DATA: ls_bdcdata LIKE LINE OF ct_bdcdata. + + ls_bdcdata-fnam = 'RADIO_HT'. + ls_bdcdata-fval = 'X'. + APPEND ls_bdcdata TO ct_bdcdata. + + CLEAR ls_bdcdata. + ls_bdcdata-fnam = 'RADIO_MI'. + ls_bdcdata-fval = ' '. + APPEND ls_bdcdata TO ct_bdcdata. + + ENDMETHOD. + ENDCLASS. From 44a565351adab19baf845936686144242ba73a43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Sun, 1 Oct 2017 10:07:42 +0000 Subject: [PATCH 27/30] Refactoring --- src/zabapgit_object_w3xx.prog.abap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zabapgit_object_w3xx.prog.abap b/src/zabapgit_object_w3xx.prog.abap index 73a32a5ee..d70632f1d 100644 --- a/src/zabapgit_object_w3xx.prog.abap +++ b/src/zabapgit_object_w3xx.prog.abap @@ -97,7 +97,7 @@ CLASS lcl_object_w3super IMPLEMENTATION. METHOD lif_object~jump. DATA: ls_bdcdata TYPE bdcdata, - lt_bdcdata TYPE STANDARD TABLE OF bdcdata. + lt_bdcdata TYPE tty_bdcdata. ls_bdcdata-program = 'SAPMWWW0'. ls_bdcdata-dynpro = '0100'. From 8624f9f8f2e5cc6f0add5873c1f2f54f5525eb4d Mon Sep 17 00:00:00 2001 From: larshp Date: Sun, 1 Oct 2017 10:28:23 +0000 Subject: [PATCH 28/30] use global exception class #773 --- src/zabapgit_2fa.prog.abap | 15 +- src/zabapgit_app.prog.abap | 4 +- src/zabapgit_background.prog.abap | 12 +- src/zabapgit_dot_abapgit.prog.abap | 8 +- src/zabapgit_exceptions.prog.abap | 39 ---- src/zabapgit_file_status.prog.abap | 6 +- src/zabapgit_folder_logic.prog.abap | 34 ++-- src/zabapgit_forms.prog.abap | 20 +-- src/zabapgit_git.prog.abap | 102 +++++------ src/zabapgit_git_helpers.prog.abap | 26 +-- src/zabapgit_gui.prog.abap | 20 +-- src/zabapgit_gui_asset_manager.prog.abap | 12 +- src/zabapgit_gui_router.prog.abap | 22 +-- src/zabapgit_html_action_utils.prog.abap | 8 +- src/zabapgit_html_chunks.prog.abap | 12 +- src/zabapgit_http.prog.abap | 48 ++--- src/zabapgit_migrations.prog.abap | 12 +- src/zabapgit_news.prog.abap | 4 +- src/zabapgit_object_acid.prog.abap | 6 +- src/zabapgit_object_auth.prog.abap | 6 +- src/zabapgit_object_clas.prog.abap | 26 +-- src/zabapgit_object_clas_new.prog.abap | 18 +- src/zabapgit_object_cmpt.prog.abap | 16 +- src/zabapgit_object_dcls.prog.abap | 10 +- src/zabapgit_object_ddls.prog.abap | 12 +- src/zabapgit_object_dial.prog.abap | 6 +- src/zabapgit_object_doct.prog.abap | 4 +- src/zabapgit_object_docv.prog.abap | 4 +- src/zabapgit_object_doma.prog.abap | 14 +- src/zabapgit_object_dtel.prog.abap | 14 +- src/zabapgit_object_enho.prog.abap | 40 ++--- src/zabapgit_object_enhs.prog.abap | 6 +- src/zabapgit_object_enqu.prog.abap | 6 +- src/zabapgit_object_ensc.prog.abap | 6 +- src/zabapgit_object_form.prog.abap | 4 +- src/zabapgit_object_fugr.prog.abap | 44 ++--- src/zabapgit_object_iarp.prog.abap | 10 +- src/zabapgit_object_iasp.prog.abap | 10 +- src/zabapgit_object_iatu.prog.abap | 10 +- src/zabapgit_object_intf.prog.abap | 12 +- src/zabapgit_object_jobd.prog.abap | 10 +- src/zabapgit_object_msag.prog.abap | 18 +- src/zabapgit_object_nrob.prog.abap | 18 +- src/zabapgit_object_oo_functions.prog.abap | 56 +++--- src/zabapgit_object_para.prog.abap | 4 +- src/zabapgit_object_pinf.prog.abap | 14 +- src/zabapgit_object_prag.prog.abap | 12 +- src/zabapgit_object_prog.prog.abap | 6 +- src/zabapgit_object_sfbf.prog.abap | 8 +- src/zabapgit_object_sfbs.prog.abap | 8 +- src/zabapgit_object_sfpf.prog.abap | 12 +- src/zabapgit_object_sfpi.prog.abap | 12 +- src/zabapgit_object_sfsw.prog.abap | 10 +- src/zabapgit_object_shi3.prog.abap | 8 +- src/zabapgit_object_shlp.prog.abap | 6 +- src/zabapgit_object_shma.prog.abap | 12 +- src/zabapgit_object_sicf.prog.abap | 22 +-- src/zabapgit_object_smim.prog.abap | 14 +- src/zabapgit_object_splo.prog.abap | 2 +- src/zabapgit_object_ssfo.prog.abap | 2 +- src/zabapgit_object_ssst.prog.abap | 12 +- src/zabapgit_object_styl.prog.abap | 2 +- src/zabapgit_object_suso.prog.abap | 2 +- src/zabapgit_object_tabl.prog.abap | 8 +- src/zabapgit_object_tabl_valid.prog.abap | 14 +- src/zabapgit_object_tobj.prog.abap | 8 +- src/zabapgit_object_tran.prog.abap | 14 +- src/zabapgit_object_ttyp.prog.abap | 6 +- src/zabapgit_object_type.prog.abap | 14 +- src/zabapgit_object_vcls.prog.abap | 6 +- src/zabapgit_object_view.prog.abap | 6 +- src/zabapgit_object_w3xx.prog.abap | 36 ++-- src/zabapgit_object_wapa.prog.abap | 4 +- src/zabapgit_object_wdya.prog.abap | 12 +- src/zabapgit_object_wdyn.prog.abap | 42 ++--- src/zabapgit_object_webi.prog.abap | 20 +-- src/zabapgit_object_xslt.prog.abap | 8 +- src/zabapgit_objects.prog.abap | 188 ++++++++++---------- src/zabapgit_objects_impl.prog.abap | 20 +-- src/zabapgit_page.prog.abap | 8 +- src/zabapgit_page_background.prog.abap | 8 +- src/zabapgit_page_branch_overview.prog.abap | 24 +-- src/zabapgit_page_commit.prog.abap | 6 +- src/zabapgit_page_db.prog.abap | 2 +- src/zabapgit_page_debug.prog.abap | 2 +- src/zabapgit_page_diff.prog.abap | 8 +- src/zabapgit_page_main.prog.abap | 20 +-- src/zabapgit_page_merge.prog.abap | 18 +- src/zabapgit_page_settings.prog.abap | 2 +- src/zabapgit_page_stage.prog.abap | 10 +- src/zabapgit_persistence.prog.abap | 180 +++++++++---------- src/zabapgit_persistence_old.prog.abap | 58 +++--- src/zabapgit_popups.prog.abap | 46 ++--- src/zabapgit_repo.prog.abap | 76 ++++---- src/zabapgit_repo_browser_util.prog.abap | 8 +- src/zabapgit_repo_impl.prog.abap | 32 ++-- src/zabapgit_requirements.prog.abap | 19 +- src/zabapgit_sap_package.prog.abap | 12 +- src/zabapgit_services_abapgit.prog.abap | 18 +- src/zabapgit_services_background.prog.abap | 2 +- src/zabapgit_services_db.prog.abap | 4 +- src/zabapgit_services_git.prog.abap | 28 +-- src/zabapgit_services_repo.prog.abap | 28 +-- src/zabapgit_stage.prog.abap | 16 +- src/zabapgit_stage_logic.prog.abap | 4 +- src/zabapgit_tadir.prog.abap | 14 +- src/zabapgit_transport.prog.abap | 36 ++-- src/zabapgit_unit_test.prog.abap | 106 +++++------ src/zabapgit_unit_test_clas_intf.prog.abap | 10 +- src/zabapgit_unit_test_transport.prog.abap | 8 +- src/zabapgit_util.prog.abap | 26 +-- src/zabapgit_view_repo.prog.abap | 18 +- src/zabapgit_xml.prog.abap | 22 +-- src/zabapgit_zip.prog.abap | 40 ++--- 114 files changed, 1115 insertions(+), 1168 deletions(-) diff --git a/src/zabapgit_2fa.prog.abap b/src/zabapgit_2fa.prog.abap index 58b7bcf2a..b7c0a38e3 100644 --- a/src/zabapgit_2fa.prog.abap +++ b/src/zabapgit_2fa.prog.abap @@ -657,11 +657,11 @@ CLASS lcl_2fa_auth_registry DEFINITION "! @parameter cv_username | Username "! @parameter cv_password | Password, will be replaced by an access token if two factor "! authentication succeeds - "! @raising lcx_exception | Error in two factor authentication + "! @raising zcx_abapgit_exception | Error in two factor authentication use_2fa_if_required IMPORTING iv_url TYPE string CHANGING cv_username TYPE string cv_password TYPE string - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-DATA: "! All authenticators managed by the registry gt_registered_authenticators TYPE HASHED TABLE OF REF TO lif_2fa_authenticator @@ -670,7 +670,7 @@ CLASS lcl_2fa_auth_registry DEFINITION CLASS-METHODS: popup_token RETURNING VALUE(rv_token) TYPE string - RAISING lcx_exception. + RAISING zcx_abapgit_exception. ENDCLASS. CLASS lcl_2fa_auth_registry IMPLEMENTATION. @@ -754,10 +754,7 @@ CLASS lcl_2fa_auth_registry IMPLEMENTATION. CATCH lcx_2fa_illegal_state ##NO_HANDLER. ENDTRY. - RAISE EXCEPTION TYPE lcx_exception - EXPORTING - iv_text = |2FA error: { lx_ex->get_text( ) }| - ix_previous = lx_ex. + zcx_abapgit_exception=>raise( |2FA error: { lx_ex->get_text( ) }| ). ENDTRY. ENDMETHOD. @@ -786,11 +783,11 @@ CLASS lcl_2fa_auth_registry IMPLEMENTATION. error_in_fields = 1 OTHERS = 2. "#EC NOTEXT IF sy-subrc <> 0. - lcx_exception=>raise( 'Error from POPUP_GET_VALUES' ). + zcx_abapgit_exception=>raise( 'Error from POPUP_GET_VALUES' ). ENDIF. IF lv_returncode = 'A'. - lcx_exception=>raise( 'Authentication cancelled' ). + zcx_abapgit_exception=>raise( 'Authentication cancelled' ). ENDIF. READ TABLE lt_fields INDEX 1 ASSIGNING . diff --git a/src/zabapgit_app.prog.abap b/src/zabapgit_app.prog.abap index cdfcd79fc..303a501b7 100644 --- a/src/zabapgit_app.prog.abap +++ b/src/zabapgit_app.prog.abap @@ -16,12 +16,12 @@ CLASS lcl_app DEFINITION FINAL. CLASS-METHODS gui RETURNING VALUE(ro_gui) TYPE REF TO lcl_gui - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS user IMPORTING iv_user TYPE xubname DEFAULT sy-uname RETURNING VALUE(ro_user) TYPE REF TO lcl_persistence_user - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS repo_srv RETURNING VALUE(ro_repo_srv) TYPE REF TO lcl_repo_srv. diff --git a/src/zabapgit_background.prog.abap b/src/zabapgit_background.prog.abap index 545e4a5c1..090e2cfd5 100644 --- a/src/zabapgit_background.prog.abap +++ b/src/zabapgit_background.prog.abap @@ -7,7 +7,7 @@ CLASS lcl_background DEFINITION FINAL. PUBLIC SECTION. CLASS-METHODS: run - RAISING lcx_exception. + RAISING zcx_abapgit_exception. PRIVATE SECTION. CLASS-METHODS: @@ -17,14 +17,14 @@ CLASS lcl_background DEFINITION FINAL. push IMPORTING io_repo TYPE REF TO lcl_repo_online is_settings TYPE lcl_persist_background=>ty_background - RAISING lcx_exception, + RAISING zcx_abapgit_exception, push_fixed IMPORTING io_repo TYPE REF TO lcl_repo_online is_settings TYPE lcl_persist_background=>ty_background - RAISING lcx_exception, + RAISING zcx_abapgit_exception, push_auto IMPORTING io_repo TYPE REF TO lcl_repo_online - RAISING lcx_exception. + RAISING zcx_abapgit_exception. ENDCLASS. @@ -44,7 +44,7 @@ CLASS lcl_background IMPLEMENTATION. WHEN lcl_persist_background=>c_amethod-auto. push_auto( io_repo ). WHEN OTHERS. - lcx_exception=>raise( 'unknown push method' ). + zcx_abapgit_exception=>raise( 'unknown push method' ). ENDCASE. ENDMETHOD. @@ -233,7 +233,7 @@ CLASS lcl_background IMPLEMENTATION. push( io_repo = lo_repo is_settings = ). WHEN OTHERS. - lcx_exception=>raise( 'background, unknown mode' ). + zcx_abapgit_exception=>raise( 'background, unknown mode' ). ENDCASE. ENDLOOP. diff --git a/src/zabapgit_dot_abapgit.prog.abap b/src/zabapgit_dot_abapgit.prog.abap index a56aeae0b..d43f188d2 100644 --- a/src/zabapgit_dot_abapgit.prog.abap +++ b/src/zabapgit_dot_abapgit.prog.abap @@ -32,14 +32,14 @@ CLASS lcl_dot_abapgit DEFINITION FINAL FRIENDS ltcl_dot_abapgit. deserialize IMPORTING iv_xstr TYPE xstring RETURNING VALUE(ro_dot_abapgit) TYPE REF TO lcl_dot_abapgit - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS: constructor IMPORTING is_data TYPE ty_dot_abapgit, serialize RETURNING VALUE(rv_xstr) TYPE xstring - RAISING lcx_exception, + RAISING zcx_abapgit_exception, get_data RETURNING VALUE(rs_data) TYPE ty_dot_abapgit, add_ignore @@ -66,7 +66,7 @@ CLASS lcl_dot_abapgit DEFINITION FINAL FRIENDS ltcl_dot_abapgit. * IMPORTING iv_language TYPE spras, get_signature RETURNING VALUE(rs_signature) TYPE lif_defs=>ty_file_signature - RAISING lcx_exception. + RAISING zcx_abapgit_exception. PRIVATE SECTION. DATA: ms_data TYPE ty_dot_abapgit. @@ -75,7 +75,7 @@ CLASS lcl_dot_abapgit DEFINITION FINAL FRIENDS ltcl_dot_abapgit. to_xml IMPORTING is_data TYPE ty_dot_abapgit RETURNING VALUE(rv_xml) TYPE string - RAISING lcx_exception, + RAISING zcx_abapgit_exception, from_xml IMPORTING iv_xml TYPE string RETURNING VALUE(rs_data) TYPE ty_dot_abapgit. diff --git a/src/zabapgit_exceptions.prog.abap b/src/zabapgit_exceptions.prog.abap index 8302f029e..1264bf705 100644 --- a/src/zabapgit_exceptions.prog.abap +++ b/src/zabapgit_exceptions.prog.abap @@ -2,45 +2,6 @@ *& Include ZABAPGIT_EXCEPTIONS *&---------------------------------------------------------------------* -*----------------------------------------------------------------------* -* CLASS LCX_EXCEPTION DEFINITION -*----------------------------------------------------------------------* -CLASS lcx_exception DEFINITION INHERITING FROM cx_static_check FINAL. - - PUBLIC SECTION. - DATA mv_text TYPE string. - - METHODS constructor - IMPORTING iv_text TYPE string - ix_previous TYPE REF TO cx_root OPTIONAL. - - CLASS-METHODS: raise IMPORTING iv_text TYPE clike - RAISING lcx_exception. - - PRIVATE SECTION. - DATA mx_previous TYPE REF TO cx_root. - -ENDCLASS. "CX_LOCAL_EXCEPTION DEFINITION - -*----------------------------------------------------------------------* -* CLASS LCX_EXCEPTION IMPLEMENTATION -*----------------------------------------------------------------------* -CLASS lcx_exception IMPLEMENTATION. - - METHOD constructor. - super->constructor( ). - mv_text = iv_text. - mx_previous = previous. - ENDMETHOD. "CONSTRUCTOR - - METHOD raise. - RAISE EXCEPTION TYPE lcx_exception - EXPORTING - iv_text = iv_text. - ENDMETHOD. - -ENDCLASS. "lcx_exception IMPLEMENTATION - *----------------------------------------------------------------------* * CLASS LCX_NOT_FOUND DEFINITION *----------------------------------------------------------------------* diff --git a/src/zabapgit_file_status.prog.abap b/src/zabapgit_file_status.prog.abap index 827bf21ba..dcf759ab8 100644 --- a/src/zabapgit_file_status.prog.abap +++ b/src/zabapgit_file_status.prog.abap @@ -17,7 +17,7 @@ CLASS lcl_file_status DEFINITION FINAL IMPORTING io_repo TYPE REF TO lcl_repo io_log TYPE REF TO lcl_log OPTIONAL RETURNING VALUE(rt_results) TYPE lif_defs=>ty_results_tt - RAISING lcx_exception. + RAISING zcx_abapgit_exception. PRIVATE SECTION. @@ -28,13 +28,13 @@ CLASS lcl_file_status DEFINITION FINAL it_remote TYPE lif_defs=>ty_files_tt it_cur_state TYPE lif_defs=>ty_file_signatures_tt RETURNING VALUE(rt_results) TYPE lif_defs=>ty_results_tt - RAISING lcx_exception, + RAISING zcx_abapgit_exception, run_checks IMPORTING io_log TYPE REF TO lcl_log it_results TYPE lif_defs=>ty_results_tt io_dot TYPE REF TO lcl_dot_abapgit iv_top TYPE devclass - RAISING lcx_exception, + RAISING zcx_abapgit_exception, build_existing IMPORTING is_local TYPE lif_defs=>ty_file_item is_remote TYPE lif_defs=>ty_file diff --git a/src/zabapgit_folder_logic.prog.abap b/src/zabapgit_folder_logic.prog.abap index d0fc5516b..24a9a42d3 100644 --- a/src/zabapgit_folder_logic.prog.abap +++ b/src/zabapgit_folder_logic.prog.abap @@ -13,7 +13,7 @@ CLASS lcl_folder_logic DEFINITION. iv_package TYPE devclass RETURNING VALUE(rv_path) TYPE string - RAISING lcx_exception, + RAISING zcx_abapgit_exception, path_to_package IMPORTING iv_top TYPE devclass @@ -22,7 +22,7 @@ CLASS lcl_folder_logic DEFINITION. RETURNING VALUE(rv_package) TYPE devclass RAISING - lcx_exception. + zcx_abapgit_exception. ENDCLASS. @@ -38,7 +38,7 @@ CLASS lcl_folder_logic IMPLEMENTATION. lv_length = strlen( io_dot->get_starting_folder( ) ). IF lv_length > strlen( iv_path ). - lcx_exception=>raise( 'unexpected folder structure' ). + zcx_abapgit_exception=>raise( 'unexpected folder structure' ). ENDIF. lv_path = iv_path+lv_length. lv_parent = iv_top. @@ -86,7 +86,7 @@ CLASS lcl_folder_logic IMPLEMENTATION. lv_parentcl = lcl_sap_package=>get( iv_package )->read_parent( ). IF lv_parentcl IS INITIAL. - lcx_exception=>raise( |error, expected parent package, { iv_package }| ). + zcx_abapgit_exception=>raise( |error, expected parent package, { iv_package }| ). ELSE. CASE io_dot->get_folder_logic( ). WHEN lcl_dot_abapgit=>c_folder_logic-full. @@ -102,7 +102,7 @@ CLASS lcl_folder_logic IMPLEMENTATION. * ZZZ_something. This will define the folder name in the zip file to be "something", * similarily with online projects. Alternatively change to FULL folder logic lv_message = 'PREFIX: Unexpected package naming(' && iv_package && ')' ##no_text. - lcx_exception=>raise( lv_message ). + zcx_abapgit_exception=>raise( lv_message ). ENDIF. WHEN OTHERS. ASSERT 0 = 1. @@ -110,7 +110,7 @@ CLASS lcl_folder_logic IMPLEMENTATION. lv_path = iv_package+lv_len. IF strlen( lv_path ) = 0. - lcx_exception=>raise( 'Folder logic: length = 0' ). + zcx_abapgit_exception=>raise( 'Folder logic: length = 0' ). ENDIF. IF lv_path(1) = '_'. @@ -143,7 +143,7 @@ CLASS ltcl_folder_logic_helper DEFINITION FOR TESTING FINAL. iv_logic TYPE string iv_package TYPE devclass iv_path TYPE string - RAISING lcx_exception. + RAISING zcx_abapgit_exception. ENDCLASS. @@ -194,11 +194,11 @@ CLASS ltcl_folder_logic DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHOR METHODS: setup, teardown, - prefix1 FOR TESTING RAISING lcx_exception, - prefix2 FOR TESTING RAISING lcx_exception, - prefix_error1 FOR TESTING RAISING lcx_exception, - full1 FOR TESTING RAISING lcx_exception, - full2 FOR TESTING RAISING lcx_exception. + prefix1 FOR TESTING RAISING zcx_abapgit_exception, + prefix2 FOR TESTING RAISING zcx_abapgit_exception, + prefix_error1 FOR TESTING RAISING zcx_abapgit_exception, + full1 FOR TESTING RAISING zcx_abapgit_exception, + full2 FOR TESTING RAISING zcx_abapgit_exception. ENDCLASS. "ltcl_convert DEFINITION @@ -274,7 +274,7 @@ CLASS ltcl_folder_logic IMPLEMENTATION. iv_package = '$FOOBAR' iv_path = '/src/' ). cl_abap_unit_assert=>fail( 'Error expected' ). - CATCH lcx_exception ##NO_HANDLER. + CATCH zcx_abapgit_exception ##NO_HANDLER. ENDTRY. ENDMETHOD. @@ -310,10 +310,10 @@ CLASS ltcl_folder_logic_namespaces DEFINITION FOR TESTING RISK LEVEL HARMLESS DU METHODS: setup, teardown, - prefix1 FOR TESTING RAISING lcx_exception, - prefix2 FOR TESTING RAISING lcx_exception, - full1 FOR TESTING RAISING lcx_exception, - full2 FOR TESTING RAISING lcx_exception. + prefix1 FOR TESTING RAISING zcx_abapgit_exception, + prefix2 FOR TESTING RAISING zcx_abapgit_exception, + full1 FOR TESTING RAISING zcx_abapgit_exception, + full2 FOR TESTING RAISING zcx_abapgit_exception. ENDCLASS. "ltcl_convert DEFINITION diff --git a/src/zabapgit_forms.prog.abap b/src/zabapgit_forms.prog.abap index 3cae67f9c..9d99211f5 100644 --- a/src/zabapgit_forms.prog.abap +++ b/src/zabapgit_forms.prog.abap @@ -7,7 +7,7 @@ *&---------------------------------------------------------------------* FORM run. - DATA: lx_exception TYPE REF TO lcx_exception, + DATA: lx_exception TYPE REF TO zcx_abapgit_exception, lv_ind TYPE t000-ccnocliind. @@ -23,13 +23,13 @@ FORM run. TRY. lcl_migrations=>run( ). PERFORM open_gui. - CATCH lcx_exception INTO lx_exception. - MESSAGE lx_exception->mv_text TYPE 'E'. + CATCH zcx_abapgit_exception INTO lx_exception. + MESSAGE lx_exception->text TYPE 'E'. ENDTRY. ENDFORM. "run -FORM open_gui RAISING lcx_exception. +FORM open_gui RAISING zcx_abapgit_exception. IF sy-batch = abap_true. lcl_background=>run( ). @@ -50,7 +50,7 @@ ENDFORM. * -->CS_ERROR text * -->CV_SHOW_POPUP text * -->RAISING text -* -->LCX_EXCEPTION text +* -->zcx_abapgit_exception text * -->##CALLED text * -->##NEEDED text *----------------------------------------------------------------------* @@ -58,11 +58,11 @@ FORM branch_popup TABLES tt_fields TYPE lif_defs=>ty_sval_tt USING pv_code TYPE clike CHANGING cs_error TYPE svale cv_show_popup TYPE c - RAISING lcx_exception ##called ##needed. + RAISING zcx_abapgit_exception ##called ##needed. * called dynamically from function module POPUP_GET_VALUES_USER_BUTTONS DATA: lv_url TYPE string, - lx_error TYPE REF TO lcx_exception, + lx_error TYPE REF TO zcx_abapgit_exception, ls_package_data TYPE scompkdtln, ls_branch TYPE lcl_git_branch_list=>ty_git_branch, lv_create TYPE boolean. @@ -85,7 +85,7 @@ FORM branch_popup TABLES tt_fields TYPE lif_defs=>ty_sval_tt TRY. ls_branch = lcl_popups=>branch_list_popup( lv_url ). - CATCH lcx_exception INTO lx_error. + CATCH zcx_abapgit_exception INTO lx_error. MESSAGE lx_error TYPE 'S' DISPLAY LIKE 'E'. RETURN. ENDTRY. @@ -120,7 +120,7 @@ FORM package_popup TABLES tt_fields TYPE lif_defs=>ty_sval_tt USING pv_code TYPE clike CHANGING cs_error TYPE svale cv_show_popup TYPE c - RAISING lcx_exception ##called ##needed. + RAISING zcx_abapgit_exception ##called ##needed. * called dynamically from function module POPUP_GET_VALUES_USER_BUTTONS DATA: ls_package_data TYPE scompkdtln, @@ -161,7 +161,7 @@ FORM output. p_exclude = lt_ucomm. ENDFORM. -FORM exit RAISING lcx_exception. +FORM exit RAISING zcx_abapgit_exception. CASE sy-ucomm. WHEN 'CBAC'. "Back IF lcl_app=>gui( )->back( ) IS INITIAL. diff --git a/src/zabapgit_git.prog.abap b/src/zabapgit_git.prog.abap index e1cada07c..39bd4aab9 100644 --- a/src/zabapgit_git.prog.abap +++ b/src/zabapgit_git.prog.abap @@ -18,7 +18,7 @@ CLASS lcl_git_transport DEFINITION FINAL. it_branches TYPE lcl_git_branch_list=>ty_git_branch_list_tt OPTIONAL EXPORTING et_objects TYPE lif_defs=>ty_objects_tt ev_branch TYPE lif_defs=>ty_sha1 - RAISING lcx_exception. + RAISING zcx_abapgit_exception. * local to remote CLASS-METHODS receive_pack @@ -27,12 +27,12 @@ CLASS lcl_git_transport DEFINITION FINAL. iv_new TYPE lif_defs=>ty_sha1 iv_branch_name TYPE string iv_pack TYPE xstring - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS branches IMPORTING iv_url TYPE string RETURNING VALUE(ro_branch_list) TYPE REF TO lcl_git_branch_list - RAISING lcx_exception. + RAISING zcx_abapgit_exception. PRIVATE SECTION. CONSTANTS: BEGIN OF c_service, @@ -45,7 +45,7 @@ CLASS lcl_git_transport DEFINITION FINAL. iv_service TYPE string EXPORTING eo_client TYPE REF TO lcl_http_client eo_branch_list TYPE REF TO lcl_git_branch_list - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS find_branch IMPORTING iv_url TYPE string @@ -53,12 +53,12 @@ CLASS lcl_git_transport DEFINITION FINAL. iv_branch_name TYPE string EXPORTING eo_client TYPE REF TO lcl_http_client ev_branch TYPE lif_defs=>ty_sha1 - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS parse EXPORTING ev_pack TYPE xstring CHANGING cv_data TYPE xstring - RAISING lcx_exception. + RAISING zcx_abapgit_exception. ENDCLASS. "lcl_transport DEFINITION @@ -89,22 +89,22 @@ CLASS lcl_git_pack DEFINITION FINAL FRIENDS ltcl_git_pack. CLASS-METHODS decode IMPORTING iv_data TYPE xstring RETURNING VALUE(rt_objects) TYPE lif_defs=>ty_objects_tt - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS decode_tree IMPORTING iv_data TYPE xstring RETURNING VALUE(rt_nodes) TYPE ty_nodes_tt - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS decode_commit IMPORTING iv_data TYPE xstring RETURNING VALUE(rs_commit) TYPE ty_commit - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS encode IMPORTING it_objects TYPE lif_defs=>ty_objects_tt RETURNING VALUE(rv_data) TYPE xstring - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS encode_tree IMPORTING it_nodes TYPE ty_nodes_tt @@ -118,7 +118,7 @@ CLASS lcl_git_pack DEFINITION FINAL FRIENDS ltcl_git_pack. IMPORTING iv_type TYPE lif_defs=>ty_type iv_length TYPE i RETURNING VALUE(rv_xstring) TYPE xstring - RAISING lcx_exception. + RAISING zcx_abapgit_exception. PRIVATE SECTION. CONSTANTS: c_pack_start TYPE x LENGTH 4 VALUE '5041434B', " PACK @@ -128,12 +128,12 @@ CLASS lcl_git_pack DEFINITION FINAL FRIENDS ltcl_git_pack. CLASS-METHODS decode_deltas CHANGING ct_objects TYPE lif_defs=>ty_objects_tt - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS delta IMPORTING is_object TYPE lif_defs=>ty_object CHANGING ct_objects TYPE lif_defs=>ty_objects_tt - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS delta_header EXPORTING ev_header TYPE i @@ -146,7 +146,7 @@ CLASS lcl_git_pack DEFINITION FINAL FRIENDS ltcl_git_pack. CLASS-METHODS get_type IMPORTING iv_x TYPE x RETURNING VALUE(rv_type) TYPE lif_defs=>ty_type - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS get_length EXPORTING ev_length TYPE i @@ -155,7 +155,7 @@ CLASS lcl_git_pack DEFINITION FINAL FRIENDS ltcl_git_pack. CLASS-METHODS zlib_decompress CHANGING cv_data TYPE xstring cv_decompressed TYPE xstring - RAISING lcx_exception. + RAISING zcx_abapgit_exception. ENDCLASS. "lcl_pack DEFINITION @@ -264,11 +264,11 @@ CLASS lcl_git_transport IMPLEMENTATION. lv_string = lcl_convert=>xstring_to_string_utf8( lv_xstring ). IF NOT lv_string CP '*unpack ok*'. - lcx_exception=>raise( 'unpack not ok' ). + zcx_abapgit_exception=>raise( 'unpack not ok' ). ELSEIF lv_string CP '*pre-receive hook declined*'. - lcx_exception=>raise( 'pre-receive hook declined' ). + zcx_abapgit_exception=>raise( 'pre-receive hook declined' ). ELSEIF lv_string CP '*funny refname*'. - lcx_exception=>raise( 'funny refname' ). + zcx_abapgit_exception=>raise( 'funny refname' ). ENDIF. ENDMETHOD. "receive_pack @@ -286,7 +286,7 @@ CLASS lcl_git_transport IMPLEMENTATION. lv_len = lcl_git_utils=>length_utf8_hex( cv_data ). IF lv_len > xstrlen( cv_data ). - lcx_exception=>raise( 'parse, string length too large' ). + zcx_abapgit_exception=>raise( 'parse, string length too large' ). ENDIF. lv_contents = cv_data(lv_len). @@ -372,7 +372,7 @@ CLASS lcl_git_transport IMPLEMENTATION. CHANGING cv_data = lv_xstring ). IF lv_pack IS INITIAL. - lcx_exception=>raise( 'empty pack' ). + zcx_abapgit_exception=>raise( 'empty pack' ). ENDIF. et_objects = lcl_git_pack=>decode( lv_pack ). @@ -441,7 +441,7 @@ CLASS lcl_git_pack IMPLEMENTATION. WHEN lif_defs=>gc_type-ref_d. lv_type = '111'. WHEN OTHERS. - lcx_exception=>raise( 'Unexpected object type while encoding pack' ). + zcx_abapgit_exception=>raise( 'Unexpected object type while encoding pack' ). ENDCASE. lv_x4 = iv_length. @@ -466,7 +466,7 @@ CLASS lcl_git_pack IMPLEMENTATION. CONCATENATE lv_result '0' lv_bits+7(7) INTO lv_result. ELSE. * this IF can be refactored, use shifting? - lcx_exception=>raise( 'Todo, encoding length' ). + zcx_abapgit_exception=>raise( 'Todo, encoding length' ). ENDIF. * convert bit string to xstring @@ -603,7 +603,7 @@ CLASS lcl_git_pack IMPLEMENTATION. WHEN '111'. rv_type = lif_defs=>gc_type-ref_d. WHEN OTHERS. - lcx_exception=>raise( 'Todo, unknown type' ). + zcx_abapgit_exception=>raise( 'Todo, unknown type' ). ENDCASE. ENDMETHOD. "get_type @@ -663,7 +663,7 @@ CLASS lcl_git_pack IMPLEMENTATION. IF rs_commit-author IS INITIAL OR rs_commit-committer IS INITIAL OR rs_commit-tree IS INITIAL. - lcx_exception=>raise( 'multiple parents? not supported' ). + zcx_abapgit_exception=>raise( 'multiple parents? not supported' ). ENDIF. ENDMETHOD. "decode_commit @@ -714,10 +714,10 @@ CLASS lcl_git_pack IMPLEMENTATION. * find base READ TABLE ct_objects ASSIGNING WITH KEY sha1 = is_object-sha1. IF sy-subrc <> 0. - lcx_exception=>raise( |Base not found, { is_object-sha1 }| ). + zcx_abapgit_exception=>raise( |Base not found, { is_object-sha1 }| ). ELSEIF -type = lif_defs=>gc_type-ref_d. * sanity check - lcx_exception=>raise( 'Delta, base eq delta' ). + zcx_abapgit_exception=>raise( 'Delta, base eq delta' ). ENDIF. lv_base = -data. @@ -857,7 +857,7 @@ CLASS lcl_git_pack IMPLEMENTATION. IF ls_node-chmod <> lif_defs=>gc_chmod-dir AND ls_node-chmod <> lif_defs=>gc_chmod-file AND ls_node-chmod <> lif_defs=>gc_chmod-executable. - lcx_exception=>raise( 'Unknown chmod' ). + zcx_abapgit_exception=>raise( 'Unknown chmod' ). ENDIF. ls_node-name = lv_name. @@ -886,7 +886,7 @@ CLASS lcl_git_pack IMPLEMENTATION. cv_decompressed = ls_data-raw. IF lv_compressed_len IS INITIAL. - lcx_exception=>raise( 'Decompression falied :o/' ). + zcx_abapgit_exception=>raise( 'Decompression falied :o/' ). ENDIF. cv_data = cv_data+lv_compressed_len. @@ -899,7 +899,7 @@ CLASS lcl_git_pack IMPLEMENTATION. cv_data = cv_data+1. ENDIF. IF cv_data(4) <> lv_adler32. - lcx_exception=>raise( 'Wrong Adler checksum' ). + zcx_abapgit_exception=>raise( 'Wrong Adler checksum' ). ENDIF. ENDMETHOD. @@ -926,13 +926,13 @@ CLASS lcl_git_pack IMPLEMENTATION. * header IF NOT xstrlen( lv_data ) > 4 OR lv_data(4) <> c_pack_start. - lcx_exception=>raise( 'Unexpected pack header' ). + zcx_abapgit_exception=>raise( 'Unexpected pack header' ). ENDIF. lv_data = lv_data+4. * version IF lv_data(4) <> c_version. - lcx_exception=>raise( 'Version not supported' ). + zcx_abapgit_exception=>raise( 'Version not supported' ). ENDIF. lv_data = lv_data+4. @@ -958,7 +958,7 @@ CLASS lcl_git_pack IMPLEMENTATION. * strip header, '789C', CMF + FLG lv_zlib = lv_data(2). IF lv_zlib <> c_zlib AND lv_zlib <> c_zlib_hmm. - lcx_exception=>raise( 'Unexpected zlib header' ). + zcx_abapgit_exception=>raise( 'Unexpected zlib header' ). ENDIF. lv_data = lv_data+2. @@ -973,7 +973,7 @@ CLASS lcl_git_pack IMPLEMENTATION. raw_out_len = lv_decompress_len ). IF lv_expected <> lv_decompress_len. - lcx_exception=>raise( 'Decompression falied' ). + zcx_abapgit_exception=>raise( 'Decompression falied' ). ENDIF. cl_abap_gzip=>compress_binary( @@ -1024,7 +1024,7 @@ CLASS lcl_git_pack IMPLEMENTATION. lv_xstring = iv_data(lv_len). lv_sha1 = lcl_hash=>sha1_raw( lv_xstring ). IF to_upper( lv_sha1 ) <> lv_data. - lcx_exception=>raise( 'SHA1 at end of pack doesnt match' ). + zcx_abapgit_exception=>raise( 'SHA1 at end of pack doesnt match' ). ENDIF. decode_deltas( CHANGING ct_objects = rt_objects ). @@ -1109,7 +1109,7 @@ CLASS lcl_git_porcelain DEFINITION FINAL FRIENDS ltcl_git_porcelain. EXPORTING et_files TYPE lif_defs=>ty_files_tt et_objects TYPE lif_defs=>ty_objects_tt ev_branch TYPE lif_defs=>ty_sha1 - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS push IMPORTING io_repo TYPE REF TO lcl_repo_online @@ -1117,24 +1117,24 @@ CLASS lcl_git_porcelain DEFINITION FINAL FRIENDS ltcl_git_porcelain. io_stage TYPE REF TO lcl_stage EXPORTING ev_branch TYPE lif_defs=>ty_sha1 et_updated_files TYPE lif_defs=>ty_file_signatures_tt - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS create_branch IMPORTING io_repo TYPE REF TO lcl_repo_online iv_name TYPE string iv_from TYPE lif_defs=>ty_sha1 - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS delete_branch IMPORTING io_repo TYPE REF TO lcl_repo_online is_branch TYPE lcl_git_branch_list=>ty_git_branch - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS full_tree IMPORTING it_objects TYPE lif_defs=>ty_objects_tt iv_branch TYPE lif_defs=>ty_sha1 RETURNING VALUE(rt_expanded) TYPE ty_expanded_tt - RAISING lcx_exception. + RAISING zcx_abapgit_exception. PRIVATE SECTION. @@ -1159,7 +1159,7 @@ CLASS lcl_git_porcelain DEFINITION FINAL FRIENDS ltcl_git_porcelain. CLASS-METHODS build_trees IMPORTING it_expanded TYPE ty_expanded_tt RETURNING VALUE(rt_trees) TYPE ty_trees_tt - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS find_folders IMPORTING it_expanded TYPE ty_expanded_tt @@ -1170,14 +1170,14 @@ CLASS lcl_git_porcelain DEFINITION FINAL FRIENDS ltcl_git_porcelain. iv_sha1 TYPE lif_defs=>ty_sha1 iv_path TYPE string CHANGING ct_files TYPE lif_defs=>ty_files_tt - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS walk_tree IMPORTING it_objects TYPE lif_defs=>ty_objects_tt iv_tree TYPE lif_defs=>ty_sha1 iv_base TYPE string RETURNING VALUE(rt_expanded) TYPE ty_expanded_tt - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS receive_pack IMPORTING is_comment TYPE lif_defs=>ty_comment @@ -1186,7 +1186,7 @@ CLASS lcl_git_porcelain DEFINITION FINAL FRIENDS ltcl_git_porcelain. it_blobs TYPE lif_defs=>ty_files_tt io_stage TYPE REF TO lcl_stage RETURNING VALUE(rv_branch) TYPE lif_defs=>ty_sha1 - RAISING lcx_exception. + RAISING zcx_abapgit_exception. ENDCLASS. "lcl_porcelain DEFINITION @@ -1302,7 +1302,7 @@ CLASS lcl_git_porcelain IMPLEMENTATION. lv_pack TYPE xstring. IF iv_name CS ` `. - lcx_exception=>raise( 'Branch name cannot contain blank spaces' ). + zcx_abapgit_exception=>raise( 'Branch name cannot contain blank spaces' ). ENDIF. * "client MUST send an empty packfile" @@ -1391,7 +1391,7 @@ CLASS lcl_git_porcelain IMPLEMENTATION. CLEAR -sha1. " Mark as deleted WHEN OTHERS. - lcx_exception=>raise( 'stage method not supported, todo' ). + zcx_abapgit_exception=>raise( 'stage method not supported, todo' ). ENDCASE. ENDLOOP. @@ -1419,7 +1419,7 @@ CLASS lcl_git_porcelain IMPLEMENTATION. WITH KEY sha1 = iv_tree type = lif_defs=>gc_type-tree. IF sy-subrc <> 0. - lcx_exception=>raise( 'tree not found' ). + zcx_abapgit_exception=>raise( 'tree not found' ). ENDIF. lt_nodes = lcl_git_pack=>decode_tree( ls_object-data ). @@ -1439,7 +1439,7 @@ CLASS lcl_git_porcelain IMPLEMENTATION. iv_base = iv_base && -name && '/' ). APPEND LINES OF lt_expanded TO rt_expanded. WHEN OTHERS. - lcx_exception=>raise( 'walk_tree: unknown chmod' ). + zcx_abapgit_exception=>raise( 'walk_tree: unknown chmod' ). ENDCASE. ENDLOOP. @@ -1453,7 +1453,7 @@ CLASS lcl_git_porcelain IMPLEMENTATION. READ TABLE it_objects INTO ls_object WITH KEY sha1 = iv_branch type = lif_defs=>gc_type-commit. IF sy-subrc <> 0. - lcx_exception=>raise( 'commit not found' ). + zcx_abapgit_exception=>raise( 'commit not found' ). ENDIF. ls_commit = lcl_git_pack=>decode_commit( ls_object-data ). @@ -1479,7 +1479,7 @@ CLASS lcl_git_porcelain IMPLEMENTATION. READ TABLE et_objects INTO ls_object WITH KEY sha1 = ev_branch type = lif_defs=>gc_type-commit. IF sy-subrc <> 0. - lcx_exception=>raise( 'Commit/branch not found' ). + zcx_abapgit_exception=>raise( 'Commit/branch not found' ). ENDIF. ls_commit = lcl_git_pack=>decode_commit( ls_object-data ). @@ -1599,7 +1599,7 @@ CLASS lcl_git_porcelain IMPLEMENTATION. READ TABLE it_objects ASSIGNING WITH KEY sha1 = iv_sha1 type = lif_defs=>gc_type-tree. IF sy-subrc <> 0. - lcx_exception=>raise( 'Walk, tree not found' ). + zcx_abapgit_exception=>raise( 'Walk, tree not found' ). ENDIF. lt_nodes = lcl_git_pack=>decode_tree( -data ). @@ -1609,7 +1609,7 @@ CLASS lcl_git_porcelain IMPLEMENTATION. READ TABLE it_objects ASSIGNING WITH KEY sha1 = -sha1 type = lif_defs=>gc_type-blob. IF sy-subrc <> 0. - lcx_exception=>raise( 'Walk, blob not found' ). + zcx_abapgit_exception=>raise( 'Walk, blob not found' ). ENDIF. CLEAR ls_file. diff --git a/src/zabapgit_git_helpers.prog.abap b/src/zabapgit_git_helpers.prog.abap index 65e20e3aa..2cda29106 100644 --- a/src/zabapgit_git_helpers.prog.abap +++ b/src/zabapgit_git_helpers.prog.abap @@ -14,12 +14,12 @@ CLASS lcl_git_utils DEFINITION FINAL. " > Maybe better move to lcl_git_pack ?? CLASS-METHODS pkt_string IMPORTING iv_string TYPE string RETURNING VALUE(rv_pkt) TYPE string - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS length_utf8_hex IMPORTING iv_data TYPE xstring RETURNING VALUE(rv_len) TYPE i - RAISING lcx_exception. + RAISING zcx_abapgit_exception. ENDCLASS. "lcl_git_utils @@ -61,7 +61,7 @@ CLASS lcl_git_utils IMPLEMENTATION. lo_obj->read( EXPORTING n = lv_len IMPORTING data = lv_string ). CATCH cx_sy_conversion_codepage. - lcx_exception=>raise( 'error converting to hex, LENGTH_UTF8_HEX' ). + zcx_abapgit_exception=>raise( 'error converting to hex, LENGTH_UTF8_HEX' ). ENDTRY. lv_char4 = lv_string. @@ -80,7 +80,7 @@ CLASS lcl_git_utils IMPLEMENTATION. lv_len = strlen( iv_string ). IF lv_len >= 255. - lcx_exception=>raise( 'PKT, todo' ). + zcx_abapgit_exception=>raise( 'PKT, todo' ). ENDIF. lv_x = lv_len + 4. @@ -115,27 +115,27 @@ CLASS lcl_git_branch_list DEFINITION FINAL. METHODS constructor IMPORTING iv_data TYPE string - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS find_by_name IMPORTING iv_branch_name TYPE clike RETURNING VALUE(rs_branch) TYPE ty_git_branch - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS get_head " For potential future use RETURNING VALUE(rs_branch) TYPE ty_git_branch - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS get_head_symref RETURNING VALUE(rv_head_symref) TYPE string. METHODS get_branches_only RETURNING VALUE(rt_branches) TYPE ty_git_branch_list_tt - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS get_tags_only " For potential future use RETURNING VALUE(rt_branches) TYPE ty_git_branch_list_tt - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS is_ignored IMPORTING iv_branch_name TYPE clike @@ -165,7 +165,7 @@ CLASS lcl_git_branch_list DEFINITION FINAL. IMPORTING iv_data TYPE string EXPORTING et_list TYPE ty_git_branch_list_tt ev_head_symref TYPE string - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS parse_head_params IMPORTING iv_data TYPE string @@ -192,13 +192,13 @@ CLASS lcl_git_branch_list IMPLEMENTATION. METHOD find_by_name. IF iv_branch_name IS INITIAL. - lcx_exception=>raise( 'Branch name empty' ). + zcx_abapgit_exception=>raise( 'Branch name empty' ). ENDIF. READ TABLE mt_branches INTO rs_branch WITH KEY name = iv_branch_name. IF sy-subrc <> 0. - lcx_exception=>raise( 'Branch not found' ). + zcx_abapgit_exception=>raise( 'Branch not found' ). ENDIF. ENDMETHOD. "find_by_name @@ -244,7 +244,7 @@ CLASS lcl_git_branch_list IMPLEMENTATION. lv_hash = lv_data+4. lv_name = lv_data+45. ELSEIF sy-tabix = 2 AND strlen( lv_data ) = 8 AND lv_data(8) = '00000000'. - lcx_exception=>raise( 'No branches, create branch manually by adding file' ). + zcx_abapgit_exception=>raise( 'No branches, create branch manually by adding file' ). ELSE. CONTINUE. ENDIF. diff --git a/src/zabapgit_gui.prog.abap b/src/zabapgit_gui.prog.abap index efcbe2a22..850af55d1 100644 --- a/src/zabapgit_gui.prog.abap +++ b/src/zabapgit_gui.prog.abap @@ -10,12 +10,12 @@ CLASS lcl_gui DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app. PUBLIC SECTION. METHODS go_home - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS back IMPORTING iv_to_bookmark TYPE abap_bool DEFAULT abap_false RETURNING VALUE(rv_exit) TYPE xfeld - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS on_event FOR EVENT sapevent OF cl_gui_html_viewer IMPORTING action frame getdata postdata query_table. "#EC NEEDED @@ -34,10 +34,10 @@ CLASS lcl_gui DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app. mo_html_viewer TYPE REF TO cl_gui_html_viewer. METHODS constructor - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS startup - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS cache_html IMPORTING iv_text TYPE string @@ -52,7 +52,7 @@ CLASS lcl_gui DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app. RETURNING VALUE(rv_url) TYPE w3url. METHODS render - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS get_current_page_name RETURNING VALUE(rv_page_name) TYPE string. @@ -61,7 +61,7 @@ CLASS lcl_gui DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app. IMPORTING ii_page TYPE REF TO lif_gui_page iv_with_bookmark TYPE abap_bool DEFAULT abap_false iv_replacing TYPE abap_bool DEFAULT abap_false - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS handle_action IMPORTING action TYPE c @@ -85,7 +85,7 @@ CLASS lcl_gui IMPLEMENTATION. METHOD handle_action. - DATA: lx_exception TYPE REF TO lcx_exception, + DATA: lx_exception TYPE REF TO zcx_abapgit_exception, li_page TYPE REF TO lif_gui_page, lv_state TYPE i. @@ -130,12 +130,12 @@ CLASS lcl_gui IMPLEMENTATION. WHEN lif_defs=>gc_event_state-no_more_act. " Do nothing, handling completed WHEN OTHERS. - lcx_exception=>raise( |Unknown action: { action }| ). + zcx_abapgit_exception=>raise( |Unknown action: { action }| ). ENDCASE. - CATCH lcx_exception INTO lx_exception. + CATCH zcx_abapgit_exception INTO lx_exception. ROLLBACK WORK. - MESSAGE lx_exception->mv_text TYPE 'S' DISPLAY LIKE 'E'. + MESSAGE lx_exception->text TYPE 'S' DISPLAY LIKE 'E'. CATCH lcx_cancel ##NO_HANDLER. " Do nothing = gc_event_state-no_more_act ENDTRY. diff --git a/src/zabapgit_gui_asset_manager.prog.abap b/src/zabapgit_gui_asset_manager.prog.abap index e061f4b47..c46555194 100644 --- a/src/zabapgit_gui_asset_manager.prog.abap +++ b/src/zabapgit_gui_asset_manager.prog.abap @@ -8,7 +8,7 @@ CLASS lcl_gui_asset_manager DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_gui. METHODS get_asset IMPORTING iv_asset_name TYPE string RETURNING VALUE(rv_data) TYPE xstring - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS get_images RETURNING VALUE(rt_images) TYPE lif_defs=>tt_web_assets. @@ -21,12 +21,12 @@ CLASS lcl_gui_asset_manager DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_gui. METHODS get_inline_asset IMPORTING iv_asset_name TYPE string RETURNING VALUE(rv_data) TYPE xstring - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS get_mime_asset IMPORTING iv_asset_name TYPE c RETURNING VALUE(rv_data) TYPE xstring - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS get_inline_images RETURNING VALUE(rt_images) TYPE lif_defs=>tt_web_assets. @@ -48,7 +48,7 @@ CLASS lcl_gui_asset_manager IMPLEMENTATION. WHEN 'JS_COMMON'. lv_mime_name = 'ZABAPGIT_JS_COMMON'. WHEN OTHERS. - lcx_exception=>raise( |Improper resource name: { iv_asset_name }| ). + zcx_abapgit_exception=>raise( |Improper resource name: { iv_asset_name }| ). ENDCASE. " Inline is default (for older AG snapshots to work) @@ -58,7 +58,7 @@ CLASS lcl_gui_asset_manager IMPLEMENTATION. ENDIF. IF rv_data IS INITIAL. - lcx_exception=>raise( |Failed to get GUI resource: { iv_asset_name }| ). + zcx_abapgit_exception=>raise( |Failed to get GUI resource: { iv_asset_name }| ). ENDIF. ENDMETHOD. " get_asset. @@ -152,7 +152,7 @@ CLASS lcl_gui_asset_manager IMPLEMENTATION. WHEN 'JS_COMMON'. " @@abapmerge include zabapgit_js_common.w3mi.data.js > _inline '$$'. WHEN OTHERS. - lcx_exception=>raise( |No inline resource: { iv_asset_name }| ). + zcx_abapgit_exception=>raise( |No inline resource: { iv_asset_name }| ). ENDCASE. CONCATENATE LINES OF lt_data INTO lv_str SEPARATED BY lif_defs=>gc_newline. diff --git a/src/zabapgit_gui_router.prog.abap b/src/zabapgit_gui_router.prog.abap index 1c7a0b009..250f5fb6a 100644 --- a/src/zabapgit_gui_router.prog.abap +++ b/src/zabapgit_gui_router.prog.abap @@ -15,45 +15,45 @@ CLASS lcl_gui_router DEFINITION FINAL. it_postdata TYPE cnht_post_data_tab OPTIONAL EXPORTING ei_page TYPE REF TO lif_gui_page ev_state TYPE i - RAISING lcx_exception lcx_cancel. + RAISING zcx_abapgit_exception lcx_cancel. PRIVATE SECTION. METHODS get_page_by_name IMPORTING iv_name TYPE clike RETURNING VALUE(ri_page) TYPE REF TO lif_gui_page - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS get_page_diff IMPORTING iv_getdata TYPE clike iv_prev_page TYPE clike RETURNING VALUE(ri_page) TYPE REF TO lif_gui_page - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS get_page_branch_overview IMPORTING iv_getdata TYPE clike RETURNING VALUE(ri_page) TYPE REF TO lif_gui_page - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS get_page_stage IMPORTING iv_getdata TYPE clike RETURNING VALUE(ri_page) TYPE REF TO lif_gui_page - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS get_page_db_by_name IMPORTING iv_name TYPE clike iv_getdata TYPE clike RETURNING VALUE(ri_page) TYPE REF TO lif_gui_page - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS get_page_background IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key RETURNING VALUE(ri_page) TYPE REF TO lif_gui_page - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS get_page_playground RETURNING VALUE(ri_page) TYPE REF TO lif_gui_page - RAISING lcx_exception lcx_cancel. + RAISING zcx_abapgit_exception lcx_cancel. ENDCLASS. @@ -251,7 +251,7 @@ CLASS lcl_gui_router IMPLEMENTATION. TRY. CREATE OBJECT ri_page TYPE (lv_page_class). CATCH cx_sy_create_object_error. - lcx_exception=>raise( |Cannot create page class { lv_page_class }| ). + zcx_abapgit_exception=>raise( |Cannot create page class { lv_page_class }| ). ENDTRY. ENDMETHOD. " get_page_by_name @@ -272,7 +272,7 @@ CLASS lcl_gui_router IMPLEMENTATION. CATCH cx_sy_create_object_error. lv_message = |Cannot create page class { lv_page_class }|. - lcx_exception=>raise( lv_message ). + zcx_abapgit_exception=>raise( lv_message ). ENDTRY. ENDMETHOD. " get_page_db_by_name @@ -372,7 +372,7 @@ CLASS lcl_gui_router IMPLEMENTATION. TRY. CREATE OBJECT ri_page TYPE (lv_class_name). CATCH cx_sy_create_object_error. - lcx_exception=>raise( |Cannot create page class { lv_class_name }| ). + zcx_abapgit_exception=>raise( |Cannot create page class { lv_class_name }| ). ENDTRY. ENDMETHOD. "get_page_playground diff --git a/src/zabapgit_html_action_utils.prog.abap b/src/zabapgit_html_action_utils.prog.abap index bf81621fc..c73ea0eb5 100644 --- a/src/zabapgit_html_action_utils.prog.abap +++ b/src/zabapgit_html_action_utils.prog.abap @@ -38,7 +38,7 @@ CLASS lcl_html_action_utils DEFINITION FINAL. IMPORTING iv_string TYPE clike EXPORTING ev_obj_type TYPE tadir-object ev_obj_name TYPE tadir-obj_name - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS dir_encode IMPORTING iv_path TYPE string @@ -47,7 +47,7 @@ CLASS lcl_html_action_utils DEFINITION FINAL. CLASS-METHODS dir_decode IMPORTING iv_string TYPE clike RETURNING VALUE(rv_path) TYPE string - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS file_encode IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key @@ -64,7 +64,7 @@ CLASS lcl_html_action_utils DEFINITION FINAL. EXPORTING ev_key TYPE lcl_persistence_repo=>ty_repo-key eg_file TYPE any "assuming ty_file eg_object TYPE any "assuming ty_item - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS dbkey_encode IMPORTING is_key TYPE lcl_persistence_db=>ty_content @@ -90,7 +90,7 @@ CLASS lcl_html_action_utils DEFINITION FINAL. IMPORTING iv_getdata TYPE clike EXPORTING ev_key TYPE lcl_persistence_repo=>ty_repo-key ev_seed TYPE string - RAISING lcx_exception. + RAISING zcx_abapgit_exception. PRIVATE SECTION. CLASS-METHODS unescape diff --git a/src/zabapgit_html_chunks.prog.abap b/src/zabapgit_html_chunks.prog.abap index bae2b2983..d3b095fac 100644 --- a/src/zabapgit_html_chunks.prog.abap +++ b/src/zabapgit_html_chunks.prog.abap @@ -7,7 +7,7 @@ CLASS lcl_gui_chunk_lib DEFINITION FINAL. PUBLIC SECTION. CLASS-METHODS render_error - IMPORTING ix_error TYPE REF TO lcx_exception OPTIONAL + IMPORTING ix_error TYPE REF TO zcx_abapgit_exception OPTIONAL iv_error TYPE string OPTIONAL RETURNING VALUE(ro_html) TYPE REF TO lcl_html. @@ -19,7 +19,7 @@ CLASS lcl_gui_chunk_lib DEFINITION FINAL. iv_branch TYPE string OPTIONAL io_news TYPE REF TO lcl_news OPTIONAL RETURNING VALUE(ro_html) TYPE REF TO lcl_html - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS render_item_state IMPORTING iv1 TYPE char1 @@ -31,17 +31,17 @@ CLASS lcl_gui_chunk_lib DEFINITION FINAL. io_repo TYPE REF TO lcl_repo_online iv_interactive TYPE abap_bool RETURNING VALUE(ro_html) TYPE REF TO lcl_html - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS render_js_error_banner RETURNING VALUE(ro_html) TYPE REF TO lcl_html - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS render_news IMPORTING io_news TYPE REF TO lcl_news RETURNING VALUE(ro_html) TYPE REF TO lcl_html - RAISING lcx_exception. + RAISING zcx_abapgit_exception. ENDCLASS. "lcl_gui_chunk_lib @@ -223,7 +223,7 @@ CLASS lcl_gui_chunk_lib IMPLEMENTATION. CREATE OBJECT ro_html. IF ix_error IS BOUND. - lv_error = ix_error->mv_text. + lv_error = ix_error->text. ELSE. lv_error = iv_error. ENDIF. diff --git a/src/zabapgit_http.prog.abap b/src/zabapgit_http.prog.abap index 7ff6fab52..f46300637 100644 --- a/src/zabapgit_http.prog.abap +++ b/src/zabapgit_http.prog.abap @@ -8,13 +8,13 @@ CLASS lcl_proxy_auth DEFINITION FINAL. CLASS-METHODS: run IMPORTING ii_client TYPE REF TO if_http_client - RAISING lcx_exception. + RAISING zcx_abapgit_exception. PRIVATE SECTION. CLASS-DATA: gv_username TYPE string, gv_password TYPE string. - CLASS-METHODS: enter RAISING lcx_exception. + CLASS-METHODS: enter RAISING zcx_abapgit_exception. ENDCLASS. @@ -43,7 +43,7 @@ CLASS lcl_proxy_auth IMPLEMENTATION. cv_pass = gv_password ). IF gv_username IS INITIAL OR gv_password IS INITIAL. - lcx_exception=>raise( 'Proxy auth failed' ). + zcx_abapgit_exception=>raise( 'Proxy auth failed' ). ENDIF. ENDMETHOD. @@ -59,11 +59,11 @@ CLASS lcl_http_digest DEFINITION FINAL. ii_client TYPE REF TO if_http_client iv_username TYPE string iv_password TYPE string - RAISING lcx_exception, + RAISING zcx_abapgit_exception, run IMPORTING ii_client TYPE REF TO if_http_client - RAISING lcx_exception. + RAISING zcx_abapgit_exception. PRIVATE SECTION. DATA: mv_ha1 TYPE string, @@ -80,7 +80,7 @@ CLASS lcl_http_digest DEFINITION FINAL. iv_data TYPE string RETURNING VALUE(rv_hash) TYPE string - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS: hash @@ -92,7 +92,7 @@ CLASS lcl_http_digest DEFINITION FINAL. iv_cnonse TYPE string RETURNING VALUE(rv_response) TYPE string - RAISING lcx_exception, + RAISING zcx_abapgit_exception, parse IMPORTING ii_client TYPE REF TO if_http_client. @@ -114,17 +114,17 @@ CLASS lcl_http_client DEFINITION FINAL. iv_data TYPE xstring RETURNING VALUE(rv_data) TYPE xstring - RAISING lcx_exception, + RAISING zcx_abapgit_exception, get_cdata RETURNING VALUE(rv_value) TYPE string, check_http_200 - RAISING lcx_exception, + RAISING zcx_abapgit_exception, send_receive - RAISING lcx_exception, + RAISING zcx_abapgit_exception, set_headers IMPORTING iv_url TYPE string iv_service TYPE string - RAISING lcx_exception. + RAISING zcx_abapgit_exception. PRIVATE SECTION. DATA: mi_client TYPE REF TO if_http_client, @@ -222,7 +222,7 @@ CLASS lcl_http_client IMPLEMENTATION. WHEN OTHERS. lv_text = 'Another error occured'. "#EC NOTEXT ENDCASE. - lcx_exception=>raise( lv_text ). + zcx_abapgit_exception=>raise( lv_text ). ENDIF. ENDMETHOD. "send_receive @@ -240,18 +240,18 @@ CLASS lcl_http_client IMPLEMENTATION. WHEN 200. RETURN. WHEN 302. - lcx_exception=>raise( 'HTTP redirect, check URL' ). + zcx_abapgit_exception=>raise( 'HTTP redirect, check URL' ). WHEN 401. - lcx_exception=>raise( 'HTTP 401, unauthorized' ). + zcx_abapgit_exception=>raise( 'HTTP 401, unauthorized' ). WHEN 403. - lcx_exception=>raise( 'HTTP 403, forbidden' ). + zcx_abapgit_exception=>raise( 'HTTP 403, forbidden' ). WHEN 404. - lcx_exception=>raise( 'HTTP 404, not found' ). + zcx_abapgit_exception=>raise( 'HTTP 404, not found' ). WHEN 415. - lcx_exception=>raise( 'HTTP 415, unsupported media type' ). + zcx_abapgit_exception=>raise( 'HTTP 415, unsupported media type' ). WHEN OTHERS. lv_text = mi_client->response->get_cdata( ). - lcx_exception=>raise( |HTTP error code: { lv_code }, { lv_text }| ). + zcx_abapgit_exception=>raise( |HTTP error code: { lv_code }, { lv_text }| ). ENDCASE. ENDMETHOD. "http_200 @@ -359,7 +359,7 @@ CLASS lcl_http_digest IMPLEMENTATION. internal_error = 3 OTHERS = 4. IF sy-subrc <> 0. - lcx_exception=>raise( 'error from CALCULATE_HASH_FOR_RAW' ). + zcx_abapgit_exception=>raise( 'error from CALCULATE_HASH_FOR_RAW' ). ENDIF. rv_hash = lv_hash. @@ -383,14 +383,14 @@ CLASS lcl_http DEFINITION FINAL. IMPORTING iv_url TYPE string iv_service TYPE string RETURNING VALUE(ro_client) TYPE REF TO lcl_http_client - RAISING lcx_exception. + RAISING zcx_abapgit_exception. PRIVATE SECTION. CLASS-METHODS: check_auth_requested IMPORTING ii_client TYPE REF TO if_http_client RETURNING VALUE(rv_auth_requested) TYPE abap_bool - RAISING lcx_exception, + RAISING zcx_abapgit_exception, is_local_system IMPORTING iv_url TYPE string RETURNING VALUE(rv_bool) TYPE abap_bool, @@ -399,7 +399,7 @@ CLASS lcl_http DEFINITION FINAL. io_client TYPE REF TO lcl_http_client iv_url TYPE string RETURNING VALUE(rv_scheme) TYPE string - RAISING lcx_exception. + RAISING zcx_abapgit_exception. ENDCLASS. @@ -446,7 +446,7 @@ CLASS lcl_http IMPLEMENTATION. lv_text = 'While creating HTTP Client'. "#EC NOTEXT ENDCASE. - lcx_exception=>raise( lv_text ). + zcx_abapgit_exception=>raise( lv_text ). ENDIF. IF lo_settings->get_proxy_authentication( ) = abap_true. @@ -559,7 +559,7 @@ CLASS lcl_http IMPLEMENTATION. cv_pass = lv_pass ). IF lv_user IS INITIAL. - lcx_exception=>raise( 'HTTP 401, unauthorized' ). + zcx_abapgit_exception=>raise( 'HTTP 401, unauthorized' ). ENDIF. IF lv_user <> lv_default_user. diff --git a/src/zabapgit_migrations.prog.abap b/src/zabapgit_migrations.prog.abap index fe556d302..7eb0a6228 100644 --- a/src/zabapgit_migrations.prog.abap +++ b/src/zabapgit_migrations.prog.abap @@ -6,13 +6,13 @@ CLASS lcl_migrations DEFINITION FINAL. PUBLIC SECTION. CLASS-METHODS run - RAISING lcx_exception. + RAISING zcx_abapgit_exception. PRIVATE SECTION. CLASS-METHODS rebuild_local_checksums_161112 - RAISING lcx_exception. + RAISING zcx_abapgit_exception. CLASS-METHODS local_dot_abapgit - RAISING lcx_exception. + RAISING zcx_abapgit_exception. ENDCLASS. "lcl_migrations @@ -37,7 +37,7 @@ CLASS lcl_migrations IMPLEMENTATION. lv_msg TYPE string, lv_shown TYPE abap_bool, lo_dot_abapgit TYPE REF TO lcl_dot_abapgit, - lx_exception TYPE REF TO lcx_exception. + lx_exception TYPE REF TO zcx_abapgit_exception. FIELD-SYMBOLS: LIKE LINE OF lt_repos. @@ -64,12 +64,12 @@ CLASS lcl_migrations IMPLEMENTATION. " everybody to fetch their repos. TRY. ->refresh( ). - CATCH lcx_exception INTO lx_exception. + CATCH zcx_abapgit_exception INTO lx_exception. lv_msg = |Please do not use the "{ ->get_name( ) }" repository until migrated|. CALL FUNCTION 'POPUP_TO_INFORM' EXPORTING titel = 'Migration has failed' - txt1 = lx_exception->mv_text + txt1 = lx_exception->text txt2 = lv_msg txt3 = 'You will be prompted to migrate the repository every time you run abapGit.' txt4 = 'You can safely remove the repository in its ''Advanced -> Remove'' menu.'. diff --git a/src/zabapgit_news.prog.abap b/src/zabapgit_news.prog.abap index ceb19df72..c52e3a982 100644 --- a/src/zabapgit_news.prog.abap +++ b/src/zabapgit_news.prog.abap @@ -28,7 +28,7 @@ CLASS lcl_news DEFINITION CREATE PRIVATE FRIENDS ltcl_news. create " TODO REFACTOR IMPORTING io_repo TYPE REF TO lcl_repo RETURNING VALUE(ro_instance) TYPE REF TO lcl_news - RAISING lcx_exception. + RAISING zcx_abapgit_exception. METHODS: get_log @@ -115,7 +115,7 @@ CLASS lcl_news IMPLEMENTATION. TRY. " Find changelog lt_remote = io_repo->get_files_remote( ). - CATCH lcx_exception. + CATCH zcx_abapgit_exception. RETURN. ENDTRY. diff --git a/src/zabapgit_object_acid.prog.abap b/src/zabapgit_object_acid.prog.abap index 2e339f2b8..908bf7352 100644 --- a/src/zabapgit_object_acid.prog.abap +++ b/src/zabapgit_object_acid.prog.abap @@ -16,7 +16,7 @@ CLASS lcl_object_acid DEFINITION INHERITING FROM lcl_objects_super FINAL. PRIVATE SECTION. METHODS: create_object RETURNING VALUE(ro_aab) TYPE REF TO cl_aab_id - RAISING lcx_exception. + RAISING zcx_abapgit_exception. ENDCLASS. "lcl_object_acid DEFINITION @@ -54,7 +54,7 @@ CLASS lcl_object_acid IMPLEMENTATION. name_not_allowed = 1 OTHERS = 2. IF sy-subrc <> 0. - lcx_exception=>raise( 'error creating CL_AAB_ID object' ). + zcx_abapgit_exception=>raise( 'error creating CL_AAB_ID object' ). ENDIF. ENDMETHOD. "create_object @@ -117,7 +117,7 @@ CLASS lcl_object_acid IMPLEMENTATION. where_used_error = 9 OTHERS = 10 ). IF sy-subrc <> 0. - lcx_exception=>raise( 'error deleting ACID object' ). + zcx_abapgit_exception=>raise( 'error deleting ACID object' ). ENDIF. lo_aab->dequeue( ). diff --git a/src/zabapgit_object_auth.prog.abap b/src/zabapgit_object_auth.prog.abap index 8cfe21e0b..12d58651d 100644 --- a/src/zabapgit_object_auth.prog.abap +++ b/src/zabapgit_object_auth.prog.abap @@ -64,12 +64,12 @@ CLASS lcl_object_auth IMPLEMENTATION. CREATE OBJECT lo_auth. IF lo_auth->add_afield_to_trkorr( ls_authx-fieldname ) <> 0. - lcx_exception=>raise( 'Error deserializing AUTH' ). + zcx_abapgit_exception=>raise( 'Error deserializing AUTH' ). ENDIF. MODIFY authx FROM ls_authx. IF sy-subrc <> 0. - lcx_exception=>raise( 'Error deserializing AUTH' ). + zcx_abapgit_exception=>raise( 'Error deserializing AUTH' ). ENDIF. CALL FUNCTION 'DB_COMMIT'. @@ -96,7 +96,7 @@ CLASS lcl_object_auth IMPLEMENTATION. no_authority = 4 OTHERS = 5. IF sy-subrc <> 0. - lcx_exception=>raise( 'error from SUSR_AUTF_DELETE_FIELD' ). + zcx_abapgit_exception=>raise( 'error from SUSR_AUTF_DELETE_FIELD' ). ENDIF. ENDMETHOD. "lif_object~delete diff --git a/src/zabapgit_object_clas.prog.abap b/src/zabapgit_object_clas.prog.abap index 1bb625e13..829e3521f 100644 --- a/src/zabapgit_object_clas.prog.abap +++ b/src/zabapgit_object_clas.prog.abap @@ -25,20 +25,20 @@ CLASS lcl_object_clas DEFINITION INHERITING FROM lcl_objects_program. deserialize_abap IMPORTING io_xml TYPE REF TO lcl_xml_input iv_package TYPE devclass - RAISING lcx_exception, + RAISING zcx_abapgit_exception, deserialize_docu IMPORTING io_xml TYPE REF TO lcl_xml_input - RAISING lcx_exception, + RAISING zcx_abapgit_exception, deserialize_tpool IMPORTING io_xml TYPE REF TO lcl_xml_input - RAISING lcx_exception, + RAISING zcx_abapgit_exception, deserialize_sotr IMPORTING io_xml TYPE REF TO lcl_xml_input iv_package TYPE devclass - RAISING lcx_exception, + RAISING zcx_abapgit_exception, serialize_xml IMPORTING io_xml TYPE REF TO lcl_xml_output - RAISING lcx_exception. + RAISING zcx_abapgit_exception. ENDCLASS. "lcl_object_dtel DEFINITION @@ -430,7 +430,7 @@ CLASS lcl_oo_class IMPLEMENTATION. other = 6 OTHERS = 7. IF sy-subrc <> 0. - lcx_exception=>raise( 'error from SEO_CLASS_CREATE_COMPLETE' ). + zcx_abapgit_exception=>raise( 'error from SEO_CLASS_CREATE_COMPLETE' ). ENDIF. ENDMETHOD. @@ -450,7 +450,7 @@ CLASS lcl_oo_class IMPLEMENTATION. locals_not_initialised = 4 OTHERS = 5. IF sy-subrc <> 0. - lcx_exception=>raise( 'error from generate_locals' ). + zcx_abapgit_exception=>raise( 'error from generate_locals' ). ENDIF. ENDMETHOD. @@ -464,7 +464,7 @@ CLASS lcl_oo_class IMPLEMENTATION. LANGUAGE iv_language STATE 'I'. IF sy-subrc <> 0. - lcx_exception=>raise( 'error from INSERT TEXTPOOL' ). + zcx_abapgit_exception=>raise( 'error from INSERT TEXTPOOL' ). ENDIF. lcl_objects_activation=>add( iv_type = 'REPT' @@ -489,7 +489,7 @@ CLASS lcl_oo_class IMPLEMENTATION. object_not_found = 1 OTHERS = 2. IF sy-subrc <> 0. - lcx_exception=>raise( 'error from SOTR_OBJECT_GET_OBJECTS' ). + zcx_abapgit_exception=>raise( 'error from SOTR_OBJECT_GET_OBJECTS' ). ENDIF. READ TABLE lt_objects INDEX 1 INTO lv_object. @@ -526,7 +526,7 @@ CLASS lcl_oo_class IMPLEMENTATION. no_entry_found = 18 OTHERS = 19. IF sy-subrc <> 0. - lcx_exception=>raise( 'error from SOTR_CREATE_CONCEPT' ). + zcx_abapgit_exception=>raise( 'error from SOTR_CREATE_CONCEPT' ). ENDIF. ENDLOOP. ENDMETHOD. @@ -566,7 +566,7 @@ CLASS lcl_oo_class IMPLEMENTATION. class_not_existing = 1 ). IF sy-subrc <> 0. - lcx_exception=>raise( |Class { lv_class_name } not existing| ). + zcx_abapgit_exception=>raise( |Class { lv_class_name } not existing| ). ENDIF. LOOP AT lt_methods ASSIGNING . @@ -590,7 +590,7 @@ CLASS lcl_oo_class IMPLEMENTATION. IF sy-subrc = 1. RETURN. " in case only inactive version exists ELSEIF sy-subrc <> 0. - lcx_exception=>raise( 'error from seo_clif_get' ). + zcx_abapgit_exception=>raise( 'error from seo_clif_get' ). ENDIF. ENDMETHOD. @@ -673,7 +673,7 @@ CLASS lcl_oo_class IMPLEMENTATION. other = 5 OTHERS = 6. IF sy-subrc <> 0. - lcx_exception=>raise( 'Error from SEO_CLASS_DELETE_COMPLETE' ). + zcx_abapgit_exception=>raise( 'Error from SEO_CLASS_DELETE_COMPLETE' ). ENDIF. ENDMETHOD. diff --git a/src/zabapgit_object_clas_new.prog.abap b/src/zabapgit_object_clas_new.prog.abap index 7132916a6..727123743 100644 --- a/src/zabapgit_object_clas_new.prog.abap +++ b/src/zabapgit_object_clas_new.prog.abap @@ -25,14 +25,14 @@ CLASS lcl_oo_class_new DEFINITION INHERITING FROM lcl_oo_class. IMPORTING iv_name TYPE seoclsname RAISING - lcx_exception, + zcx_abapgit_exception, update_meta IMPORTING iv_name TYPE seoclsname iv_exposure TYPE seoexpose it_source TYPE rswsourcet RAISING - lcx_exception, + zcx_abapgit_exception, determine_method_include IMPORTING iv_name TYPE seoclsname @@ -40,7 +40,7 @@ CLASS lcl_oo_class_new DEFINITION INHERITING FROM lcl_oo_class. RETURNING VALUE(rv_program) TYPE programm RAISING - lcx_exception, + zcx_abapgit_exception, init_scanner IMPORTING it_source TYPE lif_defs=>ty_string_tt @@ -89,7 +89,7 @@ CLASS lcl_oo_class_new IMPLEMENTATION. internal_error_insert_report = 11 OTHERS = 12. IF sy-subrc <> 0. - lcx_exception=>raise( 'error from SEO_METHOD_GENERATE_INCLUDE' ). + zcx_abapgit_exception=>raise( 'error from SEO_METHOD_GENERATE_INCLUDE' ). ENDIF. rv_program = cl_oo_classname_service=>get_method_include( ls_mtdkey ). @@ -115,7 +115,7 @@ CLASS lcl_oo_class_new IMPLEMENTATION. other = 6 OTHERS = 7. IF sy-subrc <> 0. - lcx_exception=>raise( 'error from SEO_CLASS_CREATE_COMPLETE' ). + zcx_abapgit_exception=>raise( 'error from SEO_CLASS_CREATE_COMPLETE' ). ENDIF. ENDMETHOD. @@ -192,7 +192,7 @@ CLASS lcl_oo_class_new IMPLEMENTATION. read_source_error = 2 OTHERS = 3. IF sy-subrc <> 0. - lcx_exception=>raise( 'error instantiating CL_OO_CLASS_SECTION_SOURCE' ). + zcx_abapgit_exception=>raise( 'error instantiating CL_OO_CLASS_SECTION_SOURCE' ). ENDIF. lo_update->set_dark_mode( seox_true ). @@ -210,7 +210,7 @@ CLASS lcl_oo_class_new IMPLEMENTATION. scan_abap_source_error = 1 OTHERS = 2 ). IF sy-subrc <> 0 OR lv_scan_error = abap_true. - lcx_exception=>raise( 'CLAS, error while scanning source' ). + zcx_abapgit_exception=>raise( 'CLAS, error while scanning source' ). ENDIF. * this will update the SEO* database tables @@ -254,7 +254,7 @@ CLASS lcl_oo_class_new IMPLEMENTATION. _internal_class_overflow = 19 OTHERS = 20. IF sy-subrc <> 0. - lcx_exception=>raise( 'error from SEO_CLASS_GENERATE_CLASSPOOL' ). + zcx_abapgit_exception=>raise( 'error from SEO_CLASS_GENERATE_CLASSPOOL' ). ENDIF. ENDMETHOD. @@ -313,7 +313,7 @@ CLASS lcl_oo_class_new IMPLEMENTATION. TRY. lt_source = lo_scanner->get_method_impl_source( lv_method ). CATCH cx_oo_clif_component. - lcx_exception=>raise( 'error from GET_METHOD_IMPL_SOURCE' ). + zcx_abapgit_exception=>raise( 'error from GET_METHOD_IMPL_SOURCE' ). ENDTRY. lv_program = determine_method_include( iv_name = is_key-clsname diff --git a/src/zabapgit_object_cmpt.prog.abap b/src/zabapgit_object_cmpt.prog.abap index 63b7ebb77..fa01570bc 100644 --- a/src/zabapgit_object_cmpt.prog.abap +++ b/src/zabapgit_object_cmpt.prog.abap @@ -58,7 +58,7 @@ CLASS lcl_object_cmpt IMPLEMENTATION. r_user = rv_user. CATCH cx_root. - lcx_exception=>raise( 'CMPT not supported' ). + zcx_abapgit_exception=>raise( 'CMPT not supported' ). ENDTRY. ENDMETHOD. @@ -85,7 +85,7 @@ CLASS lcl_object_cmpt IMPLEMENTATION. r_flg_exists = rv_bool. CATCH cx_root. - lcx_exception=>raise( 'CMPT not supported' ). + zcx_abapgit_exception=>raise( 'CMPT not supported' ). ENDTRY. ENDMETHOD. @@ -110,7 +110,7 @@ CLASS lcl_object_cmpt IMPLEMENTATION. ig_data =