Häh? Seit wann das denn?DeathAndPain hat geschrieben: Keiner. ewx hat nicht aufgepasst und nicht bedacht, dass DATA-Befehle, die wie bei Dir zwischen FUNCTION und ENDFUNCTION stehen, immer globale Variablen deklarieren. Solche Variablen sind genauso global, als wenn sie im TOP-Include der Funktionsgruppe deklariert worden wären (nur dass sie vor dem DATA-Befehl naturgemäß noch nicht genutzt werden können).
Kommt drauf an... Es kann durchaus zum Testen bzw. Nachvollziehen von Fehlern sinnvoll sein.DeathAndPain hat geschrieben:Du willst ja nicht bei jedem Spiel dieselben Zufallswerte bekommen).
Ich war mir sicher, dass es so ist, habe es aber gerade eben nochmal nachgeprüft und musste mich vom Gegenteil überzeugen. Haben die das geändert? Ich habe das immer so in Erinnerung gehabt, dass in FUNCTIONs deklarierte Variablen im Gegensatz zu solchen, die in FORMs deklariert werden, ihren Wert zwischen Aufrufen eben nicht verlieren und sich auch sonst wie globale Variablen verhalten - auch dann, wenn der zugehörige DATA nicht im Top-Include steht. Zumindest auf meinem jetzigen Release ist das aber nicht so. Habe ich da tatsächlich so böse etwas durcheinandergebracht, oder ist dieses Verhalten zu einem bestimmten Release mal verändert worden? Für mich war das immer althergebrachtes Wissen...ewx hat geschrieben:Häh? Seit wann das denn?
Du definierst eine Variable jedes Mal neu zwischen FUNCTION und ENDFUNCTION.
Du kannst die LOKAL definierte Variable nicht in anderen Funktionsbausteinen der gleichen Gruppe verwenden.
Ich habe vom "Produktiv"betrieb geredet. Dass beim Testen mal feste Seeds nützlich sein können, ist unbestritten.ewx hat geschrieben:Kommt drauf an... Es kann durchaus zum Testen bzw. Nachvollziehen von Fehlern sinnvoll sein.DeathAndPain hat geschrieben:Du willst ja nicht bei jedem Spiel dieselben Zufallswerte bekommen).
Oder wenn man gleiche Bedingungen für mehrere Spieler schaffen möchte.
Meines Wissens war das immer so.DeathAndPain hat geschrieben:Ich war mir sicher, dass es so ist, habe es aber gerade eben nochmal nachgeprüft und musste mich vom Gegenteil überzeugen. Haben die das geändert? Ich habe das immer so in Erinnerung gehabt, dass in FUNCTIONs deklarierte Variablen im Gegensatz zu solchen, die in FORMs deklariert werden, ihren Wert zwischen Aufrufen eben nicht verlieren und sich auch sonst wie globale Variablen verhalten - auch dann, wenn der zugehörige DATA nicht im Top-Include steht. Zumindest auf meinem jetzigen Release ist das aber nicht so. Habe ich da tatsächlich so böse etwas durcheinandergebracht, oder ist dieses Verhalten zu einem bestimmten Release mal verändert worden? Für mich war das immer althergebrachtes Wissen...ewx hat geschrieben:Häh? Seit wann das denn?
Du definierst eine Variable jedes Mal neu zwischen FUNCTION und ENDFUNCTION.
Du kannst die LOKAL definierte Variable nicht in anderen Funktionsbausteinen der gleichen Gruppe verwenden.
Dafür ist es aber wichtig, dass man EINMAL einen Seed findet und diesen immer benutzt.DeathAndPain hat geschrieben:Ich habe vom "Produktiv"betrieb geredet. Dass beim Testen mal feste Seeds nützlich sein können, ist unbestritten.ewx hat geschrieben:Kommt drauf an... Es kann durchaus zum Testen bzw. Nachvollziehen von Fehlern sinnvoll sein.DeathAndPain hat geschrieben:Du willst ja nicht bei jedem Spiel dieselben Zufallswerte bekommen).
Oder wenn man gleiche Bedingungen für mehrere Spieler schaffen möchte.
Gerne.Abapsocke hat geschrieben:danke für die neuen Knoten im Gehirn....!
Nein, die sind so antiquiert, dass ich sie gar nicht kenne (bzw. falls ich mal darüber gelesen habe, werde ich das Wissen sofort verworfen haben wegen schlechter Programmierstil).Meines Wissens war das immer so.
Hast du es evtl. mit den globalen Schnittstellenparametern verwechselt?
https://help.sap.com/doc/abapdocu_750_i ... solete.htm
Beim Testen ja, im Produktivbetrieb das Gegenteil. Insofern muss man sowieso eine flexible Lösung schaffen, die beides kann, etwa per Checkbox "Use fixed seed" auf dem Selektionsbild des Reports.Dafür ist es aber wichtig, dass man EINMAL einen Seed findet und diesen immer benutzt.