From 8edc8736f796d7176a88ceacd508d14b01cb66ec Mon Sep 17 00:00:00 2001 From: sandraros <34005250+sandraros@users.noreply.github.com> Date: Sun, 28 Feb 2021 19:40:54 +0100 Subject: [PATCH] Fix pull clasenh "file emxxx not found" #4515 (#4552) * Fix #4515 Fix #4515 by serializing new TAB_INCLUDES to contain include numbers of new methods of classes. * Last fix before pull request * files named "em_" instead "emxxx" * editorder without gaps * Cleanup commented out line * fixes abaplint Co-authored-by: sandra rossi Co-authored-by: Lars Hvam --- .../zcl_abapgit_object_enho_class.clas.abap | 27 +++++++++++++++---- .../zcl_abapgit_object_enho_clif.clas.abap | 7 ++++- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/objects/enh/zcl_abapgit_object_enho_class.clas.abap b/src/objects/enh/zcl_abapgit_object_enho_class.clas.abap index 0a9cd8e04..ab38bb080 100644 --- a/src/objects/enh/zcl_abapgit_object_enho_class.clas.abap +++ b/src/objects/enh/zcl_abapgit_object_enho_class.clas.abap @@ -45,18 +45,35 @@ CLASS zcl_abapgit_object_enho_class IMPLEMENTATION. lv_editorder TYPE n LENGTH 3, lv_methname TYPE seocpdname, lt_abap TYPE rswsourcet, - lx_enh TYPE REF TO cx_enh_root. + lx_enh TYPE REF TO cx_enh_root, + lv_new_em TYPE abap_bool, + lt_files TYPE zif_abapgit_definitions=>ty_files_tt. - FIELD-SYMBOLS: LIKE LINE OF lt_tab_methods. + FIELD-SYMBOLS: LIKE LINE OF lt_tab_methods, + TYPE zif_abapgit_definitions=>ty_file. ii_xml->read( EXPORTING iv_name = 'TAB_METHODS' CHANGING cg_data = lt_tab_methods ). + lv_new_em = abap_false. + lt_files = mo_files->get_files( ). + LOOP AT lt_files ASSIGNING + WHERE filename CS 'enho.em_'. + lv_new_em = abap_true. + EXIT. + ENDLOOP. + + SORT lt_tab_methods BY meth_header-editorder. LOOP AT lt_tab_methods ASSIGNING . - lv_editorder = -meth_header-editorder. lv_methname = -methkey-cmpname. - lt_abap = mo_files->read_abap( iv_extra = 'em' && lv_editorder ). + IF lv_new_em = abap_true. + lt_abap = mo_files->read_abap( iv_extra = 'em_' && lv_methname ). + ELSE. + " old way + lv_editorder = -meth_header-editorder. + lt_abap = mo_files->read_abap( iv_extra = 'em' && lv_editorder ). + ENDIF. TRY. io_class->add_change_new_method_source( @@ -102,7 +119,7 @@ CLASS zcl_abapgit_object_enho_class IMPLEMENTATION. permission_error = 3 OTHERS = 4. IF sy-subrc = 0. - mo_files->add_abap( iv_extra = |EM{ -includenr }| + mo_files->add_abap( iv_extra = |EM_{ -cpdname }| it_abap = lt_source ). ENDIF. ENDLOOP. diff --git a/src/objects/enh/zcl_abapgit_object_enho_clif.clas.abap b/src/objects/enh/zcl_abapgit_object_enho_clif.clas.abap index 0b02de4de..992f87ca7 100644 --- a/src/objects/enh/zcl_abapgit_object_enho_clif.clas.abap +++ b/src/objects/enh/zcl_abapgit_object_enho_clif.clas.abap @@ -125,7 +125,8 @@ CLASS ZCL_ABAPGIT_OBJECT_ENHO_CLIF IMPLEMENTATION. DATA: lt_tab_attributes TYPE enhclasstabattrib, lt_tab_types TYPE enhtype_tab, lt_tab_methods TYPE enhnewmeth_tab, - lt_tab_eventdata TYPE enhevent_tab. + lt_tab_eventdata TYPE enhevent_tab, + lv_editorder TYPE i. FIELD-SYMBOLS: LIKE LINE OF lt_tab_attributes, LIKE LINE OF lt_tab_types, @@ -159,12 +160,16 @@ CLASS ZCL_ABAPGIT_OBJECT_ENHO_CLIF IMPLEMENTATION. -descript_id. ENDLOOP. + lv_editorder = 0. + SORT lt_tab_methods BY meth_header-editorder. LOOP AT lt_tab_methods ASSIGNING . CLEAR: -meth_header-author, -meth_header-createdon, -meth_header-changedby, -meth_header-changedon, -meth_header-descript_id. + lv_editorder = lv_editorder + 1. + -meth_header-editorder = lv_editorder. LOOP AT -meth_param ASSIGNING . CLEAR: -author, -createdon,