Hallo,
sieht jemand die Möglichkeit den SELECT zu beschleinigen???
Zuvor wird VBAP gelesen
Dann das Coding:
SELECT vbrp~vbeln
INTO lv_vbeln
FROM vbrp
AS vbrp INNER JOIN vbrk
ON vbrp~vbeln = vbrk~vbeln
WHERE
vbrp~aubel = vbap-vbeln AND
vbrp~aupos = vbap-posnr AND
vbrk~sfakn = space AND
vbrk-fksto = space.
int_vbrk-vbeln = lv_vbeln
APPEND int_vbrk
ENDSELECT.
So wie du das schreibst, machst du den Join für jede einzelne Bewegung aus VBAP.
Ich denke es macht hier sinn mit FOR ALL ENTRIES IN itab zu arbeiten (siehe Hilfe zu WEHER-Bedingung im Select). Damit kannst du die Daten mit einmal für allle VBAP-Sätze in eine interne ITAB stellen und dann weiter verarbeiten.
Hallo,
möchte mit der TA VA02 eine Retoure anzeigen lassen.
Gebe ich einen normalen Auftrag an, dauert es eine Sekunde -
bei einer Retoure ca. 3 - 5 Minuten.
Gesucht wird nach Vorgänger-/Folgebeleg.
Ist zu finden in der VBFA.
Ist nachfolgendes Coding "schneller?
SELECT vbeln INTO lv_vbeln FROM vbfa
WHERE vbelv = vbap-vbeln AND
posnv = vbap-posnr AND
vbtyp_n = ?M?.
SELECT SINGLE * FROM vbrk
WHERE vbeln = vbfa-vbeln.
IF vbrk-sfakn = ? ? AND
vbrk-fksto = ? ?.
int_vbrk-vbeln = lv_vbeln.
APPEND int_vbrk.
ENDIF.
ENDSELECT.
was tust du? Änderst du in an der VA02 rum oder schreibst du eion eigenes Programm um Belege zu lesen?
Für letzteres, die VBFA ist sicherlich nicht der Richtige Ort um optimiert zu lesen. Auf diese Tabelle solltest du mit den richtigen Key zugreifen, wenn nicht hast du die entsprechenden Laufzeiten.
Da aber sicherlich eine Lieferung beteiligt ist, versuche doch den Zugrif über LIPS, in dieser Findest du sowohl den Auftrag als auch die Rechung.