Auslesen einer interen Tabelle in SQ00 - InfoSet

Getting started ... Alles für einen gelungenen Start.

Auslesen einer interen Tabelle in SQ00 - InfoSet

Postby Helene3605 » Mon Dec 14, 2015 2:36 pm

Hallo zusammen,

ich entschuldige mich im vorfeld für diese einfache Frage. -> bin Anfänger


Folgenden Bericht möchte über SQ00-InfoSet per ABAP schaffen.

Es geht darum zwei interne Tabellen mit Daten zu befüllen und diese dann entsprechend rauszulesen.

Folgende interne Tabellen und Felder habe ich dazu angelegt:
DATA: i_abruf TYPE ekek-abruf,
i_eint type ekeh-ETENR.


DATA: lt_ekek TYPE ekek
OCCURS 30 WITH HEADER LINE,
lt_ekeh TYPE ekeh
OCCURS 30 WITH HEADER LINE.

Folgendes Coding habe ich dazu geschrieben:
Die Tabellen EKKO und EKPO sind bereits über einen JOIN im INFO Set eingebunden und dadurch im ABAP bekannt.



CLEAR: lt_ekek, lt_ekeh, i_abruf, i_eint.

SELECT * FROM ekek
INTO CORRESPONDING FIELDS OF TABLE lt_ekek
WHERE ebeln EQ ekpo-ebeln
AND ebelp EQ ekpo-ebelp.
IF sy-subrc EQ 0.
LOOP AT lt_ekek.
ENDLOOP.
SORT lt_ekek BY abruf DESCENDING.
READ TABLE lt_ekek INDEX 1.
i_abruf = lt_ekek-abruf.
ELSEIF sy-subrc NE 0.
i_abruf = ''.
ENDIF.


SELECT * FROM ekeh
INTO CORRESPONDING FIELDS OF TABLE lt_ekeh
WHERE ebeln EQ ekpo-ebeln
AND ebelp EQ ekpo-ebelp
AND abruf EQ i_abruf.

LOOP AT lt_ekeh.
IF sy-subrc EQ 0.
LOOP AT lt_ekeh.
i_eint = lt_ekeh-etenr.
ENDLOOP.
ELSEIF sy-subrc NE 0.
i_eint = ''.
ENDIF.
ENDLOOP.

Es gibt auch zwei Zusatzfelder die mit den entsprechenden Daten befüllt werden.
Diese lauten:


Z_ABRUFNUR
z_abrufnr = ''.
z_abrufnr = i_abruf.

und
Z_EINTE
z_einte = ''.
z_einte = i_eint.


Ich möchte mit diesem Coding bewirken das zum einem die älteste Abrufnummer (i_abruf) gezogen wird um diese als vorselektion für die interne Tabelle LT_EKEH zu benutzen. Daraufhin sollen mir alle Einteilungen (i_eint) zu dieser Abrufnummer angezeigt werden.
Ich bekomme zwar die älteteste Abrufnummer in der Liste zu sehen aber leider wird mir auch nur eine Einteilung angezeigt. Es müssten aber drei Zeilen gebildet werden weil auch einteilungen für die älteste Abrufnummer vorhanden ist. Und das ist mein Problem.

Wie bekommen ich es hin das mir alle einteilungen zu der ältesten Abrufnummer angezeigt werden?

Ich habe mal beim Programm ein Break reingehauen um mit dem Debbuger zu sehen welche ergebnise in der Internen Tabelle angezeigt werden.

Die Interne Tabelle LT_EKEK sieht so weit gut aus:

Image Debugger LT_EKEK.png
(64.33 KiB) Noch nie heruntergeladen

Auch die andere Interne Tabelle LT_EKEH ist schön befüllt:

Image Debugger LT_EKEH.png
(38.01 KiB) Noch nie heruntergeladen

Nur das Ergebnis ist nicht so wie gewünscht. Es wird nur eine Zeile angezeigt:

Image Ergebnis Liste.png
(9.45 KiB) Noch nie heruntergeladen


Ich hoffe ihr könnt mein Codig so anpassen so das mir geholfen wird.

Vielen dank im Voraus für eure mühe.
Helene3605
.
.
 
Posts: 2
Joined: Fri Dec 11, 2015 3:33 pm

Return to ABAP® für Anfänger

Who is online

Users browsing this forum: No registered users and 3 guests