ich benötige mal wieder kompetente Hilfe, ich werde nicht schlau aus der ganzen Sache.
Ich wurde gefragt woher die Transaktion CO24 ihre Daten bezieht, nun habe ich mir den Quellcode angeschaut und bin nun der Meinung,
die CO24 nimmt alle Eintrage der Tabelle RESB und sortiert diese anhand der eingegebenen Kriterien aus.
Nun wollte ich das ganze mal Nachprogrammieren um meine Theorie zu bestätigen, irgendwie läuft das Programm jedoch ewig und bricht irgendwann ab.
Kann mir einer von euch vielleicht helfen das genauer zu ergründen ?
Hier mal mein Select statement, vielleicht liegt da ja irgendwo der Fehler.
SELECT *
FROM resb AS a
INNER JOIN marc AS b ON b~matnr = a~matnr
INTO CORRESPONDING FIELDS OF TABLE i_resb
WHERE b~dispo IN s_dico1
AND b~werks = w_werks
AND a~werks = w_werks.
je nachdem, aber wo liegt mein Fehler das Originalprogramm schafft es doch auch irgendwie ?
Habe ich irgendwelche Parameter vergessen, also sowas wie ein Löschkennzeichen ?
Oder bin ich total auf dem Holzweg was die Daten angeht ?
EDIT:
Wäre echt klasse wenn mir irgendwer sagen könnte wie bzw. wo die CO24 ihre daten herbekommt.
in der AFKO findest du eine RSNUM, das ist die Nummer der Reservierung. Dazu findest du in der RESB 0-n reservierte Positionen. Was die Frage nach Datenherkunft angeht, so zeichne einfach mit ST01 einen SQL-Trace auf, lasse CO24 ein mal laufen und schau dir anschliessend die Tabellenzugriffe an
was die Laufzeit angeht, so schau dir deinen SELECT-Befehl noch mal an:
1) SELECT * From RESB ... JOIN ... INTO CORRESPONDING FIELDS OF TABLE i_resb
wie ist denn die Tabelle i_resb bei dir definiert? musst du da wirklich ALLE Felder von RESB + MARC reinstopfen? Auch ist der Zusatz INTO CORRESPONDING FIELDS bei gleichzeitigem Zugriff auf mehrere Tabellen gefährlich, da durfte ich auch schon Kinken korrigieren, die uns gewisse "berater" reinprogrammiert haben. Erwischen kann es dich immer dann, wenn du in beiden Tabellen Felder hast die gleich heissen, aber zum Teil unterschiedliche Inhalte aufweisen. Welches Feld steht denn anschliessend in der i_resb?
2) was genau möchtest du denn aus der RESB selektieren? Wieviele Einträge habt ihr in der Tabelle? Du greifst ja in dem Join nicht über den Schlüssel darauf zu. Hat die RESB eventuell noch Indizes die du verwenden könntest? Oder vielleicht gehst du auch ganz anders ran und ermittelst erstmal die Aufträge die in Frage kommen würden. Hast du die Auftragsnummern, so kommst du über AFKO an die RSNUM und liest die Reservierungen über den Schlüssel nach...