Code: Alles auswählen.
DATA ls_rsfind TYPE rsfind.
DATA lt_rsfind TYPE STANDARD TABLE OF rsfind.
DATA l_euobj TYPE euobj.
DATA l_fullname TYPE string.
DATA lt_findlist TYPE sci_findlst.
l_euobj-id = 'TABL'.
ls_rsfind-object = 'TFDIR'.
APPEND ls_rsfind TO lt_rsfind.
DATA(lt_scope_devclass) = VALUE scit_devc( ( sign = 'I' option = 'CP' low = 'Z*' ) ).
DATA lt_scope_obj_cls TYPE STANDARD TABLE OF seu_obj.
DATA lt_scope_objects TYPE STANDARD TABLE OF rsfind.
DATA lv_number_of_hits TYPE i.
lt_scope_obj_cls = VALUE #(
( 'P' ) "program
( 'OM' ) "class method
).
CALL FUNCTION 'RS_EU_CROSSREF'
EXPORTING
i_find_obj_cls = l_euobj-id
no_dialog = 'X'
expand_source_in_batch_mode = ' '
expand_source_in_online_mode = ' '
without_text = 'X'
i_full_name = space
IMPORTING
o_hits = lv_number_of_hits
TABLES
i_findstrings = lt_rsfind
o_founds = lt_findlist
i_scope_objects = lt_scope_objects
i_scope_object_cls = lt_scope_obj_cls
i_scope_devclass = lt_scope_devclass
EXCEPTIONS
not_executed = 1
not_found = 2
illegal_object = 3
no_cross_for_this_object = 4
batch = 5
batchjob_error = 6
wrong_type = 7
object_not_exist = 8
OTHERS = 9.
DATA lv_funcname TYPE rs38l_fnam.
DATA lv_include TYPE progname.
LOOP AT lt_findlist INTO DATA(ls_findlist).
lv_include = ls_findlist-program.
CLEAR lv_funcname.
CALL FUNCTION 'FUNCTION_INCLUDE_INFO'
CHANGING
funcname = lv_funcname
include = lv_include
EXCEPTIONS
OTHERS = 6.
IF sy-subrc = 0.
WRITE: / lv_funcname, ls_findlist-program.
ELSEIF ls_findlist-encl_objec IS INITIAL.
WRITE: / ls_findlist-object.
ELSE.
WRITE: / ls_findlist-encl_objec, ls_findlist-program.
ENDIF.
WRITE: ls_findlist-source,
ls_findlist-object_row.
ENDLOOP.
Vielen Dank, Enno!ewx hat geschrieben: ↑29.04.2019 12:53Das ist leider ein blöder Bug in dem Verwendungsnachweis... nervt mich auch immer.
Folgendes Coding zeigt den Fuba mit an:
Code: Alles auswählen.
DATA ls_rsfind TYPE rsfind. DATA lt_rsfind TYPE STANDARD TABLE OF rsfind. DATA l_euobj TYPE euobj. DATA l_fullname TYPE string. DATA lt_findlist TYPE sci_findlst. l_euobj-id = 'TABL'. ls_rsfind-object = 'TFDIR'. APPEND ls_rsfind TO lt_rsfind. DATA(lt_scope_devclass) = VALUE scit_devc( ( sign = 'I' option = 'CP' low = 'Z*' ) ). DATA lt_scope_obj_cls TYPE STANDARD TABLE OF seu_obj. DATA lt_scope_objects TYPE STANDARD TABLE OF rsfind. DATA lv_number_of_hits TYPE i. lt_scope_obj_cls = VALUE #( ( 'P' ) "program ( 'OM' ) "class method ). CALL FUNCTION 'RS_EU_CROSSREF' EXPORTING i_find_obj_cls = l_euobj-id no_dialog = 'X' expand_source_in_batch_mode = ' ' expand_source_in_online_mode = ' ' without_text = 'X' i_full_name = space IMPORTING o_hits = lv_number_of_hits TABLES i_findstrings = lt_rsfind o_founds = lt_findlist i_scope_objects = lt_scope_objects i_scope_object_cls = lt_scope_obj_cls i_scope_devclass = lt_scope_devclass EXCEPTIONS not_executed = 1 not_found = 2 illegal_object = 3 no_cross_for_this_object = 4 batch = 5 batchjob_error = 6 wrong_type = 7 object_not_exist = 8 OTHERS = 9. DATA lv_funcname TYPE rs38l_fnam. DATA lv_include TYPE progname. LOOP AT lt_findlist INTO DATA(ls_findlist). lv_include = ls_findlist-program. CLEAR lv_funcname. CALL FUNCTION 'FUNCTION_INCLUDE_INFO' CHANGING funcname = lv_funcname include = lv_include EXCEPTIONS OTHERS = 6. IF sy-subrc = 0. WRITE: / lv_funcname, ls_findlist-program. ELSEIF ls_findlist-encl_objec IS INITIAL. WRITE: / ls_findlist-object. ELSE. WRITE: / ls_findlist-encl_objec, ls_findlist-program. ENDIF. WRITE: ls_findlist-source, ls_findlist-object_row. ENDLOOP.