Warten (0) vs. Warten(n) vs. Ausführen vs. BeendenIch habe sehr große und ständig wachsende Datentabellen, daher habe ich Probleme mit Formeln, die nicht abgeschlossen werden. Ich wünschte, JMP würde einfach einen Mechanismus einbauen, der verhindert, dass Skripte fortgesetzt werden, bis jede Zeile fertig ist, aber vielleicht gibt es einen Grund dafür, dies nicht zu tun, an den ich nicht denke. Normalerweise verwende ich einen Befehl „wait(n)“ (z. B. „wait(30);“), aber wenn der Datensatz wächst, muss ich in den Tausenden von Codezeilen ständig unzählige Instanzen von „wait“ aktualisieren, da die Tabellen mit Sicherheit zu groß werden Codezeilen, um die Auswertung abzuschließen. Später dachte ich, ich hätte gelernt, dass wait(0); wäre dynamisch. Es würde so lange warten, bis die Auswertung abgeschlossen ist, bevor mit der nächsten Zeile fortgefahren wird. Deshalb habe ich alles in „wait(0)“ geändert, aber jetzt werden viele Zeilen nicht abgeschlossen und daher bricht das Skript ab. Habe ich falsch gedacht, dass das wait(0); Befehl wäre dynamisch, wie ich es beschrieben habe? Ich habe die Befehle „Ausführen“ und „Fertig stellen“ ausprobiert, aber keiner hat funktioniert. Ich ging zurück und setzte zum Beispiel „wait(30)“ ein; an einer Stelle und es hat wieder funktioniert. Bleibe ich also bei diesen statischen Zeitinkrementen, die ich im Laufe der Zeit zwangsläufig weiter ändern muss. Oder mache ich hier etwas falsch?
Automatisierung und SkripterstellungBetreff: Wait(0) vs Wait(n) vs Run vs FinishIch denke, wenn Sie Formeln in den Tabellen haben, die Sie verknüpfen/aktualisieren, dann könnte es hilfreich sein. Ich glaube, ich hatte noch nie Probleme mit direkt im Zusammenhang mit JMP-Datentabellen, die die Verwendung von „wait“ erforderlich gemacht hätten (die meisten Probleme hingen damit zusammen, dass einige Variablen keine Werte erhielten oder mit Visualisierungen in einem neuen Fenster). Ich kenne nicht genügend technische Details darüber, was JMP im Hintergrund tut, also könnten Sie es vielleicht mit dem Versenden von E-Mails versuchen support@jmp.com zur Hilfe? Auch taggen @Jeff_Perkinson basierend auf dieser alten Antwort Wie kann ich die sequentielle Ausführung meines Skripts erzwingen?
Ein paar Fragen:
Verwenden Sie Current Datatable(), um auf Datentabellen zu verweisen? Welche JMP-Version verwenden Sie?
Links:
https://www.jmp.com/support/help/en/15.2/index.shtml#page/jmp/scripting-data-tables.shtml#ww2071832
https://www.jmp.com/support/help/en/15.2/index.shtml#page/jmp/scripting-numbers-strings-arrays-and-lists.shtml#
Betreff: Wait(0) vs Wait(n) vs Run vs FinishIch hätte nicht angeben sollen, dass es nicht nur um Formelauswertungen geht, sondern auch um Aktionen wie das Öffnen und Verknüpfen oder Aktualisieren einer anderen Tabelle, das Sortieren einer Tabelle usw. Funktionieren diese Befehle bei Dingen, die keine Formeln sind?
Betreff: Wait(0) vs Wait(n) vs Run vs FinishHaben Sie versucht, Folgendes zu verwenden:
dt << Run Formulas();
oder
dt << Rerun Formulas;
Soweit ich weiß, sollte JMP mit diesen warten, bis die Formelauswertung abgeschlossen ist, bevor sie fortfährt.
Weitere mögliche Optionen: Sind auch Formeln notwendig? Könnten Sie damit zurechtkommen? << Legen Sie jeden Wert fest statt Formeln? Vielleicht auch Verwendung von dt << Datenaktualisierung beginnen ; Und dt << Datenaktualisierung beenden ; könnte von Nutzen sein.