Хочу поделиться программой по поиску ENQUEUE / DEQUEUE функций.
Может кому-то пригодится или кто-то поправит что не верно.
У меня нашло то что мне надо было.
Code:
*&---------------------------------------------------------------------*
*& Report ZFIND_ENQUEUE
*&---------------------------------------------------------------------*
*& Created By Endrews
*&---------------------------------------------------------------------*
REPORT zfind_enqueue.
*----------------------------------------------------------------------*
* .DEFINITION
*----------------------------------------------------------------------*
TYPE-POOLS : slis.
TABLES: dd25l, tfdir.
DATA: BEGIN OF lt_dd25 OCCURS 0,
viewname LIKE dd25l-viewname,
roottab LIKE dd25l-roottab,
ddtext LIKE dd25t-ddtext,
enqueue LIKE dd25t-ddtext,
dequeue LIKE dd25t-ddtext,
END OF lt_dd25.
DATA gt_fieldcat TYPE slis_t_fieldcat_alv.
DATA gs_layout TYPE slis_layout_alv.
DATA lv_fm_name TYPE rs38l_fnam.
FIELD-SYMBOLS: <fs_lt_dd25> LIKE LINE OF lt_dd25.
FIELD-SYMBOLS <fs_fc> LIKE LINE OF gt_fieldcat.
*----------------------------------------------------------------------*
* .SELECT-OPTION
* (Основная таблица , такая как MARA, LIKP, VBAK, MKPF)
*----------------------------------------------------------------------*
SELECT-OPTIONS: s_rootab FOR dd25l-roottab.
*----------------------------------------------------------------------*
* .CODE
*----------------------------------------------------------------------*
CHECK s_rootab[] IS NOT INITIAL.
SELECT dd25l~viewname dd25l~roottab
dd25t~ddtext
FROM dd25l
INNER JOIN dd25t
ON dd25l~viewname = dd25t~viewname
AND dd25l~as4local = dd25t~as4local
INTO CORRESPONDING FIELDS OF TABLE lt_dd25
WHERE dd25l~roottab IN s_rootab
AND dd25t~ddlanguage EQ 'RU'.
CHECK sy-subrc IS INITIAL.
LOOP AT lt_dd25 ASSIGNING <fs_lt_dd25>.
CONCATENATE 'ENQUEUE_' <fs_lt_dd25>-viewname
INTO <fs_lt_dd25>-enqueue.
CONCATENATE 'DEQUEUE_' <fs_lt_dd25>-viewname
INTO <fs_lt_dd25>-dequeue.
SELECT SINGLE * FROM tfdir WHERE funcname = <fs_lt_dd25>-enqueue.
IF sy-subrc IS NOT INITIAL.
CLEAR: <fs_lt_dd25>-enqueue.
ENDIF.
SELECT SINGLE * FROM tfdir WHERE funcname = <fs_lt_dd25>-dequeue.
IF sy-subrc IS NOT INITIAL.
CLEAR: <fs_lt_dd25>-dequeue.
ENDIF.
ENDLOOP.
DELETE lt_dd25[] WHERE enqueue IS INITIAL
AND dequeue IS INITIAL.
CHECK lt_dd25[] IS NOT INITIAL.
*----------------------------------------------------------------------*
* .ALV
*----------------------------------------------------------------------*
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'LT_DD25'
i_inclname = sy-repid
i_bypassing_buffer = 'X'
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT gt_fieldcat ASSIGNING <fs_fc>.
CASE <fs_fc>-fieldname.
WHEN 'ENQUEUE'.
<fs_fc>-seltext_s = 'ENQUEUE'.
<fs_fc>-seltext_m = 'ENQUEUE'.
<fs_fc>-seltext_l = 'ENQUEUE-функция'.
<fs_fc>-reptext_ddic = 'ENQUEUE-функция'.
WHEN 'DEQUEUE'.
<fs_fc>-seltext_s = 'DEQUEUE'.
<fs_fc>-seltext_m = 'DEQUEUE'.
<fs_fc>-seltext_l = 'DEQUEUE-функция'.
<fs_fc>-reptext_ddic = 'DEQUEUE-функция'.
ENDCASE.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = gt_fieldcat
is_layout = gs_layout
TABLES
t_outtab = lt_dd25[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
*----------------------------------------------------------------------*
* .END OF PROGRAMM
*----------------------------------------------------------------------*