Code: Alles auswählen.
TYPES: BEGINT OF LTY_DRIVE_ID_S,
DRIVE_ID TYPE C LENGTH 15, "BEISPIELSWEISE
END OF LTY_DRIVE_ID_S:
TYPES: LTY_DRIVE_ID_T TYPE STANDARD TABLE OF LTY_DRIVE_ID_S WITH EMPTY KEY.
DATA: LT_ID TYPE LTY_DRIVE_ID_T.
IF LINES( LT_ID ) > 0.
SELECT * FROM TIMEDEF
INTO GT_TIMEDEF
FOR ALL ENTRIES IN @LT_ID
WHERE ID = @LT_ID-DRIVE_ID.
ENDIF.
Code: Alles auswählen.
SELECT * FROM timedef
WHERE id IN ( SELECT DISTINCT id~driveID FROM @lt_id AS id )
INTO TABLE @gt_timedef.
ich würde nur an der Stelle widersprechen. Der eine Vorteil von FOR ALL ENTRIES ist, dass doppelte Zeilen nicht programmatisch entfernt werden müssen.a-dead-trousers hat geschrieben: ↑07.09.2022 22:32FOR ALL ENTRIES IN wäre auch eine Option aber da muss man immer darauf achten, dass man nicht doppelte Werte hat
Wird man da nicht mit Warnmeldungen von der Prüfung zugetackert, wenn man so einen Quatsch baut?
Code: Alles auswählen.
TYPES:
BEGIN OF lty_drive_id,
01 TYPE numc10,
02 TYPE numc10,
03 TYPE numc10,
04 TYPE numc10,
05 TYPE numc10,
06 TYPE numc10,
07 TYPE numc10,
END OF lty_drive_id.
DATA lt_id TYPE TABLE OF lty_drive_id.
DATA driveID LIKE LINE OF lt_id.
DATA lv_component(2) TYPE c.
FIELD-SYMBOLS: <f_id> TYPE any.
lt_id = VALUE #(
( 01 = '1111111111' 02 = '2222222222' 03 = '3333333333' 04 = '4444444444' 05 = '5555555555' 06 = '6666666666' 07 = '7777777777' )
).
LOOP AT lt_id INTO driveID.
DO 7 TIMES.
UNPACK sy-index TO lv_component.
ASSIGN COMPONENT lv_component OF STRUCTURE driveID TO <f_id>.
CHECK sy-subrc = 0.
SELECT SINGLE * FROM timedef INTO gt_timedef WHERE id = <f_id>.
ENDDO.
ENDLOOP.