Hallo, ich bin es mal wieder und suche hier bei Euch Hilfe.
Ich habe ein Programm geschrieben, welches mir zu einer vorgegebenen Kompontete die Materialien anzeigt, in denen es benötigt
wird. Bei dem ganzen bediene ich mich dem Funktionsbaustein "CS_WHERE_USED_MAT". In der Grundfunktion funktioniert es analog
zu der Transaktion CS15.
Ich muss anschliessend aber noch einige Daten herausselektieren und von daher habe ich mich entschlossen, das Programm so zu
schreiben.
Das Programm wurde soweit erstellt und dem anfordernden Mitarbeiter zur Verfügung gestellt.
Leider rief dieser sehr schnell an bemerkte, dass er auch öfters mit Dummy-Materialien arbeitet.
Aus diesem Grund muss die Mehrstufigkeit (wie man sie in den Transaktionen CS15 und CS11 auswählen kann) ermöglicht werden.
Falls Ihr Euch nicht darunter vorstellen könnt:
Unter diese Kategorie fallen Materialien, welche wieder Komponenten für andere Materialien darstellen. Hierzu zählen
allerdings keine Rohstoffe und Hilfsstoffe.
Hört sich jetzt etwas verwirrend an.
Nun kommen wir zu meinem eigentlichen Problem.
Ich habe mir überlegt, das ganze durch einen rekursiven Funktionsaufruf zu realisieren.
Sprich, ich gehe mit der vorgebenen Komponente in den Funktionsbaustein "CS_WHERE_USED_MAT". Danach schreibe gehe ich mit dem
gefundenen Material noch mal in die Funktion und überprüfe, ob es auch irgendwo als Komponente verwendet wird. Diese wird so
lange gemacht, bis der Rückgabewert (SY-SUBRC) ungleich (<>) 0 ist.
Allerdings habe ich in ABAP so etwas noch nie gemacht und habe mich dann mit meinen Erfahrungen aus anderen
Programmiersprachen da mal rangemacht und eine rekursive Funktion zusammen gebaut.
Leider funktioniert diese (noch) nicht korrekt. Ich habe mir den ganzen Tag schon damit um die Ohren geschlagen und kann
absolut nicht mehr klar denken.
Morgen sollte das Programm stehen und ich weiss nicht weiter.
Vielleicht hat einer von Euch eine Idee und kann mir weiterhelfen?!
Vier Augen sehen ja mehr? Also, wo habe ih Fehler gemacht?
Ich danke Euch schon mal im Voraus.
Mfg
Christian