From 72a7f84648dc846635ef9d0d430c64ac07d3e68e Mon Sep 17 00:00:00 2001 From: Mike Pokraka Date: Wed, 12 Feb 2025 20:46:41 +0000 Subject: [PATCH] Filter nonexistent FMs from inconsistent FUGR --- src/objects/zcl_abapgit_object_fugr.clas.abap | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/objects/zcl_abapgit_object_fugr.clas.abap b/src/objects/zcl_abapgit_object_fugr.clas.abap index 41b53c503..cf8d696b7 100644 --- a/src/objects/zcl_abapgit_object_fugr.clas.abap +++ b/src/objects/zcl_abapgit_object_fugr.clas.abap @@ -516,12 +516,14 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION. METHOD functions. - DATA: lv_area TYPE rs38l-area. - FIELD-SYMBOLS: TYPE LINE OF ty_rs38l_incl_tt. + DATA: lv_area TYPE rs38l-area, + lt_enlfdir TYPE STANDARD TABLE OF enlfdir. + + FIELD-SYMBOLS: TYPE LINE OF ty_rs38l_incl_tt, + TYPE enlfdir. lv_area = ms_item-obj_name. - CALL FUNCTION 'RS_FUNCTION_POOL_CONTENTS' EXPORTING function_pool = lv_area @@ -534,9 +536,27 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION. zcx_abapgit_exception=>raise_t100( ). ENDIF. -* The result can also contain function which are lowercase. + SELECT * FROM enlfdir + WHERE area = @ms_item-obj_name + AND active = @abap_true + INTO TABLE @lt_enlfdir. + + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( |Function Group { ms_item-obj_name } not found in table ENLFDIR| ). + ENDIF. + + LOOP AT lt_enlfdir ASSIGNING . + TRANSLATE -funcname TO UPPER CASE. + ENDLOOP. + + SORT lt_enlfdir BY funcname ASCENDING. + LOOP AT rt_functab ASSIGNING . TRANSLATE TO UPPER CASE. + READ TABLE lt_enlfdir WITH KEY funcname = -funcname TRANSPORTING NO FIELDS. + IF sy-subrc <> 0. + DELETE rt_functab INDEX sy-index. + ENDIF. ENDLOOP. SORT rt_functab BY funcname ASCENDING.