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.