From 35dcb801e79d225b3882581f70bf382f35757a3e Mon Sep 17 00:00:00 2001 From: larshp Date: Sun, 8 Oct 2017 06:56:40 +0000 Subject: [PATCH 1/3] change table recursion to method recursion #959 --- src/zcl_abapgit_syntax_check.clas.abap | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/zcl_abapgit_syntax_check.clas.abap b/src/zcl_abapgit_syntax_check.clas.abap index df25b417b..d39dea263 100644 --- a/src/zcl_abapgit_syntax_check.clas.abap +++ b/src/zcl_abapgit_syntax_check.clas.abap @@ -71,8 +71,7 @@ CLASS ZCL_ABAPGIT_SYNTAX_CHECK IMPLEMENTATION. METHOD create_objectset. DATA: lt_objs TYPE scit_objs, - lt_packages TYPE ty_tdevc_tt, - ls_obj LIKE LINE OF lt_objs. + lt_packages TYPE ty_tdevc_tt. lt_packages = find_all_subpackages( iv_package ). @@ -129,16 +128,21 @@ CLASS ZCL_ABAPGIT_SYNTAX_CHECK IMPLEMENTATION. * TODO, in the future, move this method to the ABAPGIT global package class - DATA: ls_package LIKE LINE OF rt_packages. + DATA: ls_package LIKE LINE OF rt_packages, + lt_found LIKE rt_packages, + lt_sub LIKE rt_packages. SELECT SINGLE * FROM tdevc INTO ls_package WHERE devclass = iv_package. ASSERT sy-subrc = 0. APPEND ls_package TO rt_packages. - LOOP AT rt_packages INTO ls_package. - SELECT * FROM tdevc APPENDING TABLE rt_packages - WHERE parentcl = ls_package-devclass. + SELECT * FROM tdevc APPENDING TABLE lt_sub + WHERE parentcl = ls_package-devclass. + + LOOP AT lt_sub INTO ls_package. + lt_found = find_all_subpackages( ls_package-devclass ). + APPEND LINES OF lt_found TO rt_packages. ENDLOOP. ENDMETHOD. From ac68f035939ecb63edb7673d986a97d035322045 Mon Sep 17 00:00:00 2001 From: larshp Date: Sun, 8 Oct 2017 07:26:56 +0000 Subject: [PATCH 2/3] cleanup old persistency layer #962 --- src/zabapgit_persistence.prog.abap | 47 -- src/zabapgit_persistence_old.prog.abap | 566 +------------------------ 2 files changed, 1 insertion(+), 612 deletions(-) diff --git a/src/zabapgit_persistence.prog.abap b/src/zabapgit_persistence.prog.abap index 692871683..eb5a2d9a9 100644 --- a/src/zabapgit_persistence.prog.abap +++ b/src/zabapgit_persistence.prog.abap @@ -16,10 +16,6 @@ CLASS lcl_persist_migrate DEFINITION FINAL. CLASS-METHODS: migrate_settings RAISING zcx_abapgit_exception, - migrate_repo - RAISING zcx_abapgit_exception, - migrate_user - RAISING zcx_abapgit_exception, table_create RAISING zcx_abapgit_exception, table_exists @@ -1392,9 +1388,6 @@ CLASS lcl_persist_migrate IMPLEMENTATION. IF lock_exists( ) = abap_false. lock_create( ). - - migrate_repo( ). - migrate_user( ). ENDIF. IF settings_exists( ) = abap_false. @@ -1563,46 +1556,6 @@ CLASS lcl_persist_migrate IMPLEMENTATION. ENDMETHOD. - METHOD migrate_repo. - - DATA: lt_repo TYPE lcl_persistence=>ty_repos_persi_tt, - lo_repo TYPE REF TO lcl_persistence, - lo_new TYPE REF TO lcl_persistence_repo, - ls_repo LIKE LINE OF lt_repo. - - - CREATE OBJECT lo_repo. - CREATE OBJECT lo_new. - - lt_repo = lo_repo->list( ). - - LOOP AT lt_repo INTO ls_repo. - lo_new->add( iv_url = ls_repo-url - iv_branch_name = ls_repo-branch_name - iv_branch = ls_repo-sha1 - iv_package = ls_repo-package - iv_offline = ls_repo-offline - is_dot_abapgit = lcl_dot_abapgit=>build_default( )->get_data( ) ). - ENDLOOP. - ENDMETHOD. - - METHOD migrate_user. - - DATA: lo_user TYPE REF TO lcl_persistence_user, - lt_users TYPE lcl_user=>ty_user_tt. - - FIELD-SYMBOLS: LIKE LINE OF lt_users. - - - lt_users = lcl_user=>list( ). - LOOP AT lt_users ASSIGNING . - lo_user = lcl_app=>user( -user ). - lo_user->set_default_git_user_name( -username ). - lo_user->set_default_git_user_email( -email ). - ENDLOOP. - - ENDMETHOD. - METHOD lock_exists. DATA: lv_viewname TYPE dd25l-viewname. diff --git a/src/zabapgit_persistence_old.prog.abap b/src/zabapgit_persistence_old.prog.abap index bf543a931..5b02505be 100644 --- a/src/zabapgit_persistence_old.prog.abap +++ b/src/zabapgit_persistence_old.prog.abap @@ -2,568 +2,4 @@ *& Include ZABAPGIT_PERSISTENCE_OLD *&---------------------------------------------------------------------* -CLASS lcl_persist_migrate DEFINITION DEFERRED. - -*----------------------------------------------------------------------* -* CLASS lcl_persistence DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_persistence DEFINITION FINAL FRIENDS lcl_persist_migrate. - -* this class is obsolete, use LCL_PERSISTENCE_REPO instead - - PRIVATE SECTION. - TYPES: BEGIN OF ty_repo_persi, - url TYPE string, - branch_name TYPE string, - sha1 TYPE lif_defs=>ty_sha1, - package TYPE devclass, - offline TYPE sap_bool, - END OF ty_repo_persi. - TYPES: ty_repos_persi_tt TYPE STANDARD TABLE OF ty_repo_persi WITH DEFAULT KEY. - - METHODS list - RETURNING VALUE(rt_repos) TYPE ty_repos_persi_tt - RAISING zcx_abapgit_exception. - - METHODS update - IMPORTING iv_url TYPE ty_repo_persi-url - iv_branch_name TYPE ty_repo_persi-branch_name - iv_branch TYPE lif_defs=>ty_sha1 - RAISING zcx_abapgit_exception. - - METHODS add - IMPORTING iv_url TYPE string - iv_branch_name TYPE string - iv_branch TYPE lif_defs=>ty_sha1 OPTIONAL - iv_package TYPE devclass - iv_offline TYPE sap_bool DEFAULT abap_false - RAISING zcx_abapgit_exception. - - METHODS delete - IMPORTING iv_url TYPE ty_repo_persi-url - iv_branch_name TYPE ty_repo_persi-branch_name - RAISING zcx_abapgit_exception. - - METHODS read_text_online - RETURNING VALUE(rt_repos) TYPE ty_repos_persi_tt - RAISING zcx_abapgit_exception. - - METHODS save_text_online - IMPORTING it_repos TYPE ty_repos_persi_tt - RAISING zcx_abapgit_exception. - - METHODS header_online - RETURNING VALUE(rs_header) TYPE thead. - - METHODS read_text_offline - RETURNING VALUE(rt_repos) TYPE ty_repos_persi_tt - RAISING zcx_abapgit_exception. - - METHODS save_text_offline - IMPORTING it_repos TYPE ty_repos_persi_tt - RAISING zcx_abapgit_exception. - - METHODS header_offline - RETURNING VALUE(rs_header) TYPE thead. - - METHODS read_text - IMPORTING is_header TYPE thead - RETURNING VALUE(rt_lines) TYPE tlinetab - RAISING zcx_abapgit_exception. - - METHODS save_text - IMPORTING is_header TYPE thead - it_lines TYPE tlinetab - RAISING zcx_abapgit_exception. - -ENDCLASS. "lcl_persistence DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_persistence IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_persistence IMPLEMENTATION. - - METHOD save_text. - - CALL FUNCTION 'SAVE_TEXT' - EXPORTING - header = is_header - TABLES - lines = it_lines - EXCEPTIONS - id = 1 - language = 2 - name = 3 - object = 4 - OTHERS = 5. - IF sy-subrc <> 0. - ROLLBACK WORK. "#EC CI_ROLLBACK - zcx_abapgit_exception=>raise( 'error from SAVE_TEXT' ). - ENDIF. - - ENDMETHOD. "save_text - - METHOD header_online. - rs_header-tdid = 'ST'. - rs_header-tdspras = lif_defs=>gc_english. - rs_header-tdname = 'ZABAPGIT'. - rs_header-tdobject = 'TEXT'. - ENDMETHOD. "header - - METHOD header_offline. - rs_header-tdid = 'ST'. - rs_header-tdspras = lif_defs=>gc_english. - rs_header-tdname = 'ZABAPGIT_OFFLINE'. - rs_header-tdobject = 'TEXT'. - ENDMETHOD. "header_offline - - METHOD delete. - - DATA: lt_repos TYPE ty_repos_persi_tt. - - - lt_repos = list( ). - - DELETE lt_repos WHERE url = iv_url AND branch_name = iv_branch_name. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'repo not found, delete' ). - ENDIF. - - save_text_online( lt_repos ). - save_text_offline( lt_repos ). - - ENDMETHOD. "delete - - METHOD save_text_online. - - DATA: lt_lines TYPE TABLE OF tline. - - FIELD-SYMBOLS: LIKE LINE OF it_repos, - LIKE LINE OF lt_lines. - - - LOOP AT it_repos ASSIGNING WHERE offline = abap_false. - APPEND INITIAL LINE TO lt_lines ASSIGNING . - -tdformat = '*'. - -tdline = -url. - APPEND INITIAL LINE TO lt_lines ASSIGNING . - -tdformat = '*'. - -tdline = -branch_name. - APPEND INITIAL LINE TO lt_lines ASSIGNING . - -tdformat = '*'. - -tdline = -sha1. - APPEND INITIAL LINE TO lt_lines ASSIGNING . - -tdformat = '*'. - -tdline = -package. - ENDLOOP. - - save_text( is_header = header_online( ) - it_lines = lt_lines ). - - COMMIT WORK. - - ENDMETHOD. "save_text - - METHOD save_text_offline. - - DATA: lt_lines TYPE TABLE OF tline. - - FIELD-SYMBOLS: LIKE LINE OF it_repos, - LIKE LINE OF lt_lines. - - - LOOP AT it_repos ASSIGNING WHERE offline = abap_true. - APPEND INITIAL LINE TO lt_lines ASSIGNING . - -tdformat = '*'. - -tdline = -url. - APPEND INITIAL LINE TO lt_lines ASSIGNING . - -tdformat = '*'. - -tdline = -package. - ENDLOOP. - - save_text( is_header = header_offline( ) - it_lines = lt_lines ). - - COMMIT WORK. - - ENDMETHOD. "save_text_offline - - METHOD add. - - DATA: lt_repos TYPE ty_repos_persi_tt. - - FIELD-SYMBOLS: LIKE LINE OF lt_repos. - - - ASSERT NOT iv_url IS INITIAL. - ASSERT NOT iv_package IS INITIAL. - - lt_repos = list( ). - - READ TABLE lt_repos WITH KEY url = iv_url branch_name = iv_branch_name - TRANSPORTING NO FIELDS. - IF sy-subrc = 0. - zcx_abapgit_exception=>raise( 'already inserted' ). - ENDIF. - - APPEND INITIAL LINE TO lt_repos ASSIGNING . - -url = iv_url. - -branch_name = iv_branch_name. - -sha1 = iv_branch. - -package = iv_package. - -offline = iv_offline. - - save_text_online( lt_repos ). - save_text_offline( lt_repos ). - - ENDMETHOD. "insert - - METHOD update. - - DATA: lt_repos TYPE ty_repos_persi_tt. - - FIELD-SYMBOLS: LIKE LINE OF lt_repos. - - - IF iv_branch IS INITIAL. - zcx_abapgit_exception=>raise( 'update, sha empty' ). - ENDIF. - - lt_repos = list( ). - - READ TABLE lt_repos ASSIGNING - WITH KEY url = iv_url branch_name = iv_branch_name. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'persist update, repo not found' ). - ENDIF. - - -sha1 = iv_branch. - - save_text_online( lt_repos ). - - ENDMETHOD. "update - - METHOD list. - CLEAR rt_repos. - APPEND LINES OF read_text_online( ) TO rt_repos. - APPEND LINES OF read_text_offline( ) TO rt_repos. - ENDMETHOD. "list - - METHOD read_text. - - CALL FUNCTION 'READ_TEXT' - EXPORTING - id = is_header-tdid - language = is_header-tdspras - name = is_header-tdname - object = is_header-tdobject - TABLES - lines = rt_lines - EXCEPTIONS - id = 1 - language = 2 - name = 3 - not_found = 4 - object = 5 - reference_check = 6 - wrong_access_to_archive = 7 - OTHERS = 8. - IF sy-subrc = 4. - RETURN. - ELSEIF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'Error from READ_TEXT' ). - ENDIF. - - ENDMETHOD. "read_text - - METHOD read_text_online. - - DATA: lt_lines TYPE TABLE OF tline, - lv_step TYPE i, - ls_repo TYPE ty_repo_persi. - - FIELD-SYMBOLS: LIKE LINE OF lt_lines. - - - lt_lines = read_text( header_online( ) ). - IF lines( lt_lines ) = 0. - RETURN. - ENDIF. - - IF lines( lt_lines ) MOD 4 <> 0. -* if this happens, delete text ZABAPGIT in SO10 or edit the text -* manually, so it contains the right information - zcx_abapgit_exception=>raise( 'Persistence, text broken' ). - ENDIF. - - CLEAR ls_repo. - LOOP AT lt_lines ASSIGNING . - lv_step = lv_step + 1. - CASE lv_step. - WHEN 4. - ls_repo-package = -tdline. - - IF ls_repo-url IS INITIAL OR ls_repo-branch_name IS INITIAL. - zcx_abapgit_exception=>raise( 'Persistence, text broken 2' ). - ENDIF. - APPEND ls_repo TO rt_repos. - CLEAR ls_repo. - lv_step = 0. - WHEN 3. - ls_repo-sha1 = -tdline. - WHEN 2. - ls_repo-branch_name = -tdline. - WHEN 1. - ls_repo-url = -tdline. - WHEN OTHERS. - ASSERT 1 = 0. - ENDCASE. - ENDLOOP. - - ENDMETHOD. "list - - METHOD read_text_offline. - - DATA: lt_lines TYPE TABLE OF tline, - ls_repo TYPE ty_repo_persi. - - FIELD-SYMBOLS: LIKE LINE OF lt_lines. - - - lt_lines = read_text( header_offline( ) ). - IF lines( lt_lines ) = 0. - RETURN. - ENDIF. - - IF lines( lt_lines ) MOD 2 <> 0. -* if this happens, delete text ZABAPGIT in SO10 or edit the text -* manually, so it contains the right information - zcx_abapgit_exception=>raise( 'Persistence, text broken' ). - ENDIF. - - CLEAR ls_repo. - LOOP AT lt_lines ASSIGNING . - IF -tdline IS INITIAL. - zcx_abapgit_exception=>raise( 'Persistence, text broken' ). - ENDIF. - IF ls_repo-url IS INITIAL. - ls_repo-url = -tdline. - CONTINUE. " current loop - ENDIF. - - ls_repo-package = -tdline. - ls_repo-offline = abap_true. - APPEND ls_repo TO rt_repos. - CLEAR ls_repo. - ENDLOOP. - - ENDMETHOD. "list - -ENDCLASS. "lcl_persistence IMPLEMENTATION - -*----------------------------------------------------------------------* -* CLASS lcl_user DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_user DEFINITION FINAL FRIENDS lcl_persist_migrate. - -* this class is obsolete, use LCL_PERSISTENCE_USER instead - - PRIVATE SECTION. - TYPES: BEGIN OF ty_user, - user LIKE sy-uname, - username TYPE string, - email TYPE string, - END OF ty_user. - - TYPES: ty_user_tt TYPE STANDARD TABLE OF ty_user WITH DEFAULT KEY. - - CLASS-METHODS set_username - IMPORTING iv_user TYPE xubname DEFAULT sy-uname - iv_username TYPE string - RAISING zcx_abapgit_exception. - - CLASS-METHODS get_username - IMPORTING iv_user TYPE xubname DEFAULT sy-uname - RETURNING VALUE(rv_username) TYPE string - RAISING zcx_abapgit_exception. - - CLASS-METHODS set_email - IMPORTING iv_user TYPE xubname DEFAULT sy-uname - iv_email TYPE string - RAISING zcx_abapgit_exception. - - CLASS-METHODS get_email - IMPORTING iv_user TYPE xubname DEFAULT sy-uname - RETURNING VALUE(rv_email) TYPE string - RAISING zcx_abapgit_exception. - - CLASS-METHODS list - RETURNING VALUE(rt_data) TYPE ty_user_tt - RAISING zcx_abapgit_exception. - - CLASS-METHODS read - IMPORTING iv_name TYPE tdobname - RETURNING VALUE(rv_value) TYPE string - RAISING zcx_abapgit_exception. - - CLASS-METHODS save - IMPORTING iv_name TYPE tdobname - iv_value TYPE string - RAISING zcx_abapgit_exception. - -ENDCLASS. "lcl_user DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_user IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_user IMPLEMENTATION. - - METHOD read. - -* this class is obsolete, use LCL_PERSISTENCE_USER instead - - DATA: lt_lines TYPE TABLE OF tline, - ls_line LIKE LINE OF lt_lines. - - - CALL FUNCTION 'READ_TEXT' - EXPORTING - id = 'ST' - language = lif_defs=>gc_english - name = iv_name - object = 'TEXT' - TABLES - lines = lt_lines - EXCEPTIONS - id = 1 - language = 2 - name = 3 - not_found = 4 - object = 5 - reference_check = 6 - wrong_access_to_archive = 7 - OTHERS = 8. - IF sy-subrc <> 4 AND sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from READ_TEXT' ). - ENDIF. - - READ TABLE lt_lines INTO ls_line INDEX 1. - IF sy-subrc = 0. - rv_value = ls_line-tdline. - ENDIF. - - ENDMETHOD. "get_details - - METHOD save. - - DATA: ls_header TYPE thead, - lt_lines TYPE TABLE OF tline, - ls_line LIKE LINE OF lt_lines. - - - ls_line-tdformat = '*'. - ls_line-tdline = iv_value. - APPEND ls_line TO lt_lines. - - ls_header-tdid = 'ST'. - ls_header-tdspras = lif_defs=>gc_english. - ls_header-tdname = iv_name. - ls_header-tdobject = 'TEXT'. - - CALL FUNCTION 'SAVE_TEXT' - EXPORTING - header = ls_header - TABLES - lines = lt_lines - EXCEPTIONS - id = 1 - language = 2 - name = 3 - object = 4 - OTHERS = 5. - IF sy-subrc <> 0. - ROLLBACK WORK. "#EC CI_ROLLBACK - zcx_abapgit_exception=>raise( 'error from SAVE_TEXT' ). - ENDIF. - - COMMIT WORK. - - ENDMETHOD. "change - - METHOD set_username. - - DATA: lv_name TYPE tdobname. - - - CONCATENATE 'ZABAPGIT_USERNAME_' iv_user INTO lv_name. - - save( iv_name = lv_name - iv_value = iv_username ). - - ENDMETHOD. "set_username - - METHOD get_username. - - DATA: lv_name TYPE tdobname. - - - CONCATENATE 'ZABAPGIT_USERNAME_' iv_user INTO lv_name. - - rv_username = read( lv_name ). - - ENDMETHOD. "get_username - - METHOD set_email. - - DATA: lv_name TYPE tdobname. - - - CONCATENATE 'ZABAPGIT_EMAIL_' iv_user INTO lv_name. - - save( iv_name = lv_name - iv_value = iv_email ). - - ENDMETHOD. "set_email - - METHOD list. - - DATA: lt_stxh TYPE STANDARD TABLE OF stxh WITH DEFAULT KEY. - - FIELD-SYMBOLS: LIKE LINE OF rt_data, - LIKE LINE OF lt_stxh. - - - SELECT * FROM stxh INTO TABLE lt_stxh - WHERE tdobject = 'TEXT' - AND tdname LIKE 'ZABAPGIT_USERNAME_%'. "#EC CI_SUBRC - - LOOP AT lt_stxh ASSIGNING . - APPEND INITIAL LINE TO rt_data ASSIGNING . - - -user = -tdname+18. - -username = get_username( -user ). - -email = get_email( -user ). - ENDLOOP. - - ENDMETHOD. - - METHOD get_email. - - DATA: lv_name TYPE tdobname. - - - CONCATENATE 'ZABAPGIT_EMAIL_' iv_user INTO lv_name. - - rv_email = read( lv_name ). - - ENDMETHOD. "get_email - -ENDCLASS. "lcl_user IMPLEMENTATION +* empty From 4c9e2324902506f9fe23f80893e172f8d019b611 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sun, 8 Oct 2017 09:28:40 +0200 Subject: [PATCH 3/3] remove old stuff #962 --- docs/guide-uninstall.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/guide-uninstall.md b/docs/guide-uninstall.md index e5d5ea5de..73cd387f8 100644 --- a/docs/guide-uninstall.md +++ b/docs/guide-uninstall.md @@ -7,5 +7,4 @@ order: 30 * Delete ABAP reports ZABAPGIT* using SE38 or SE80 * Delete EZABAPGIT enqueue object via SE11 * Delete ZABAPGIT transparent table via SE11 -* Delete all standard texts named ZABAPGIT* via SO10 (only relevant for old versions of abapGit) -* Delete mime objects ZABAPGIT_CSS_COMMON + ZABAPGIT_JS_COMMON in transaction SMW0 \ No newline at end of file +* Delete mime objects ZABAPGIT_CSS_COMMON + ZABAPGIT_JS_COMMON in transaction SMW0