There is a possibility of losing data when using "INTO CORRESPONDING FIELDS OF TABLE / INTO @DATA(LT1)".
In other words: when there are multiple pieces of the same data in LT1, they will be overwritten by the last piece of data.
Problem case:
SELECT
mseg~matnr,
mseg~werks,
mseg~ablad,
mseg~mat_pspnr,
mseg~menge,
mseg~aufnr,
mseg~dmbtr
INTO CORRESPONDING FIELDS OF TABLE @lt1 FROM mseg FOR ALL ENTRIES IN @gt_alv
WHERE mseg~ablad = @gt_alv-pspnr_char25
AND mseg~aufnr <> ''
and mseg~ablad <> ''
Solution: Add the primary key of the entry data
SELECT
*{ INSERT PS4K900292 9
*
mseg~MBLNR,
mseg~ZEILE,
*} INSERT
mseg~matnr,
mseg~werks,
mseg~ablad,
mseg~mat_pspnr,
mseg~menge,
mseg~aufnr,
mseg~dmbtr
INTO CORRESPONDING FIELDS OF TABLE @lt1 FROM mseg FOR ALL ENTRIES IN @gt_alv
WHERE mseg~ablad = @gt_alv-pspnr_char25
AND mseg~aufnr <> ''
and mseg~ablad <> ''
.