Code: Alles auswählen.
*Variable wa_lips als Typ lips
DATA wa_likp TYPE likp.
DATA wa_lips TYPE lips.
PARAMETERS in_vbeln TYPE vbeln.
*Datenbanktabelle
DATA: BEGIN OF intab_likp OCCURS 0,
vbeln TYPE likp-vbeln,
ernam TYPE likp-ernam,
END OF intab_likp.
DATA: BEGIN OF intab_lips OCCURS 0,
vbeln TYPE likp-vbeln,
posnr TYPE lips-posnr,
END OF intab_lips.
BREAK-POINT.
*Datenbanktabelle lesen und intab füllen über Kopfzeile
SELECT * FROM lips INTO wa_lips.
MOVE-CORRESPONDING wa_lips TO intab_lips.
APPEND intab_lips.
ENDSELECT.
SELECT * FROM likp INTO wa_likp.
MOVE-CORRESPONDING wa_likp TO intab_likp.
APPEND intab_likp.
ENDSELECT.
LOOP AT intab_lips INTO wa_lips WHERE vbeln = in_vbeln.
WRITE in_vbeln.
WRITE wa_lips-posnr.
WRITE wa_likp-ernam.
NEW-LINE.
ENDLOOP.
BREAK-POINT.
Code: Alles auswählen.
*Variable wa_lips als Typ lips
DATA wa_likp TYPE likp.
DATA wa_lips TYPE lips.
PARAMETERS in_vbeln TYPE vbeln.
*Datenbanktabelle
DATA: BEGIN OF intab_likp OCCURS 0,
vbeln TYPE likp-vbeln,
ernam TYPE likp-ernam,
END OF intab_likp.
DATA: BEGIN OF intab_lips OCCURS 0,
vbeln TYPE likp-vbeln,
posnr TYPE lips-posnr,
END OF intab_lips.
BREAK-POINT.
*Datenbanktabelle lesen und intab füllen über Kopfzeile
SELECT * FROM lips INTO wa_lips.
MOVE-CORRESPONDING wa_lips TO intab_lips.
APPEND intab_lips.
ENDSELECT.
SELECT * FROM likp INTO wa_likp.
MOVE-CORRESPONDING wa_likp TO intab_likp.
APPEND intab_likp.
ENDSELECT.
LOOP AT intab_likp INTO wa_likp WHERE vbeln = in_vbeln.
WRITE in_vbeln.
WRITE wa_lips-posnr.
WRITE wa_likp-ernam.
NEW-LINE.
ENDLOOP.
BREAK-POINT.
Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag:
DerAzubi
Code: Alles auswählen.
SELECT likp~vbeln, likp~ernam, lips~posnr
FROM likp JOIN lips ON likp~vbeln = lips~vbeln
INTO TABLE @DATA(itab)
WHERE likp~vbeln = @in_vbeln.
LOOP AT itab ASSIGNING FIELD-SYMBOL(<fs_itab>).
WRITE: <fs_itab>-vbeln,
<fs_itab>-posnr,
<fs_itab>-ernam.
NEW-LINE.
ENDLOOP.
Folgende Benutzer bedankten sich beim Autor sap_enthusiast für den Beitrag:
DerAzubi
Hört sich logisch an. Wusste bis jetzt halt noch nicht, wie ich das regeln konnte.PeterPaletti hat geschrieben: ↑27.10.2022 09:07Jetzt hast du es umgedreht und liest wa_lips nicht mit.
Beim ersten SELECT liest du alles aus der LIPS und machst dir deine interne Tabelle intab_lips voll.
Beim zweiten SELECT liest du alles aus der LIKP und machst dir deine interne Tabelle intab_likp voll.
Beim LOOP nimmst du dir nur die intab_likp und da nur einen Datensatz vor. Und das mit einer möglicher Weise inkongruenten Ausgabestruktur wa_likp.
Du gibst zwar auch wa_lips-posnr aus, aber da steht das drin was beim ersten SELECT zum Schluss angekommen ist.
Danke für deine Antwort! Viele Funktionen vom Code kannte ich halt mal so garnicht. Hab jetzt ein bisschen am Programm rumprobiert, den Teil implementiert und es funktioniert.sap_enthusiast hat geschrieben: ↑27.10.2022 09:50Moin,
falls es von einem von dir geschriebenen Programm handelt versuch mal es auf die folgende Weise:
Code: Alles auswählen.
SELECT likp~vbeln, likp~ernam, lips~posnr FROM likp JOIN lips ON likp~vbeln = lips~vbeln INTO TABLE @DATA(itab) WHERE likp~vbeln = @in_vbeln. LOOP AT itab ASSIGNING FIELD-SYMBOL(<fs_itab>). WRITE: <fs_itab>-vbeln, <fs_itab>-posnr, <fs_itab>-ernam. NEW-LINE. ENDLOOP.