Variante 1 (über Paketnamen)
PARAMETERS: p_paket TYPE tdevc-devclass DEFAULT 'ME'.
START-OF-SELECTION.
SELECT d~devclass,
d~component,
l~as4local,
l~ps_posid,
t~name
INTO TABLE @DATA(it_comp)
FROM tdevc AS d
INNER JOIN df14l AS l ON d~component = l~fctr_id
INNER JOIN df14t AS t ON d~component = t~fctr_id
WHERE d~devclass = @p_paket
AND t~langu = @sy-langu.
cl_demo_output=>display( it_comp ).
Variante 2 (über Objekt)
DATA: lv_paket TYPE tadir-devclass.
SELECT-OPTIONS: so_paket FOR lv_paket.
DATA: lv_pgmid TYPE tadir-pgmid.
SELECT-OPTIONS: so_pgmid FOR lv_pgmid.
DATA: lv_object TYPE tadir-object.
SELECT-OPTIONS: so_obj FOR lv_object.
DATA: lv_obj_name TYPE tadir-obj_name.
SELECT-OPTIONS: so_name FOR lv_obj_name.
INITIALIZATION.
* Paket
so_paket[] = VALUE #( ( sign = 'I'
option = 'EQ'
low = 'ME'
high = '' ) ).
so_pgmid[] = VALUE #( ( sign = 'I'
option = 'EQ'
low = 'R3TR'
high = '' ) ).
* Typ Transaktion
so_obj[] = VALUE #( ( sign = 'I'
option = 'EQ'
low = 'TRAN'
high = '' ) ).
* Objektname 'ME23N'
so_name[] = VALUE #( ( sign = 'I'
option = 'EQ'
low = 'ME23N'
high = '' ) ).
START-OF-SELECTION.
SELECT d~pgmid,
d~object,
d~obj_name,
d~devclass,
c~component,
l~as4local,
l~ps_posid,
t~name
INTO TABLE @DATA(it_comp)
FROM tadir AS d
INNER JOIN tdevc AS c ON d~devclass = c~devclass
INNER JOIN df14l AS l ON c~component = l~fctr_id
INNER JOIN df14t AS t ON c~component = t~fctr_id
WHERE d~devclass IN @so_paket
AND d~pgmid IN @so_pgmid
AND d~object IN @so_obj
AND d~obj_name IN @so_name
AND t~langu = @sy-langu.
cl_demo_output=>display( it_comp ).