Filter nonexistent FMs from inconsistent FUGR

This commit is contained in:
Mike Pokraka 2025-02-12 20:46:41 +00:00
parent f45425f665
commit 72a7f84648

View File

@ -516,12 +516,14 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
METHOD functions.
DATA: lv_area TYPE rs38l-area.
FIELD-SYMBOLS: <ls_functab> TYPE LINE OF ty_rs38l_incl_tt.
DATA: lv_area TYPE rs38l-area,
lt_enlfdir TYPE STANDARD TABLE OF enlfdir.
FIELD-SYMBOLS: <ls_functab> TYPE LINE OF ty_rs38l_incl_tt,
<ls_enlfdir> 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 <ls_enlfdir>.
TRANSLATE <ls_enlfdir>-funcname TO UPPER CASE.
ENDLOOP.
SORT lt_enlfdir BY funcname ASCENDING.
LOOP AT rt_functab ASSIGNING <ls_functab>.
TRANSLATE <ls_functab> TO UPPER CASE.
READ TABLE lt_enlfdir WITH KEY funcname = <ls_functab>-funcname TRANSPORTING NO FIELDS.
IF sy-subrc <> 0.
DELETE rt_functab INDEX sy-index.
ENDIF.
ENDLOOP.
SORT rt_functab BY funcname ASCENDING.