Hallo zusammen,
Ich habe eine JSL-Frage, da ich bei Code, an dem ich gerade arbeite, nicht weiterkomme.
Im Grunde verwende ich die Special Purpose Space Filling DOE-Plattform, um ein DOE zu generieren, das ich einer anderen JSL-Routine zuführen muss. Das Problem besteht nicht darin, die JSL zum Laufen zu bringen, sondern darin, dass jedes Mal ein automatisches JMP-Alarm-Popup-Fenster erscheint.
Nachfolgend finden Sie den grundlegenden Code zum Generieren des DOE:
tuntble = DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ), Load Factors, Set Random Seed( Today() ), FFF Optimality Criterion( MaxPro ),
Space Filling Design Type( Fast Flexible Filling, ndoe_runs ), Simulate Responses( 0 )}
);Ich habe es in meiner Faktorentabelle auf „Ladefaktoren“ eingestellt und erzeuge ndoe_runs die Anzahl der Läufe für das DOE. Meine Faktortabelle besteht aus etwa 13 Faktoren, einige davon könnte konstant sein, sich also während des DOE nicht ändern. Die DOE-Plattform gibt immer eine Popup-Warnmeldung über konstante Faktoren aus und wenn diese aus dem DOE entfernt werden, ist das in Ordnung, ich kann sie später einfach wieder in die Tabelle aufnehmen. Das mache ich im automatisierten Teil des JSL-Codes.
Das Problem, das ich habe, ist, dass ich, wenn ich meinen Code „zeilenweise“ ausführe, kein Popup-Fenster erhalte, sondern nur die folgende Benachrichtigung im Protokoll des Skriptfensters: „Jeder nicht konstante Faktor muss Folgendes haben.“ mindestens zwei Ebenen. Lastfaktoren stoppen.“ Auch das ist in Ordnung, und ich würde es vorziehen, wenn nur dies auftaucht. Aber wenn ich meinen größeren Code als Ganzes ausführe, stoppt er immer und öffnet das Popup-Warnungsfenster, wenn er das Stadium erreicht, in dem er das DOE generieren muss. Sobald ich auf „OK“ klicke, wird der Code fortgesetzt und wie erwartet ausgeführt.
Ich würde diese Warnung lieber nur für meinen Code deaktivieren (nicht für JMP als Ganzes), oder wenn das keine Option ist, den JSL-Code irgendwie für mich auf „OK“ klicken lassen, damit ich es nicht jedes Mal manuell tun muss . Ich weiß, wie ich JSL dazu bringen kann, auf „OK“ zu klicken, wenn reguläres JSL ausgeführt wird, beispielsweise in einem Berichtsfenster, aber ich weiß nicht, wie ich auf die Schaltfläche „OK“ des Warnfensters zugreifen kann, um darauf zu klicken.
Jede Hilfe wird sehr geschätzt.
Danke!,
DS
Hallo @ich h Und @jthi ,
Vielen Dank für das schnelle Feedback und die Ideen. Manchmal, wenn man mitten in der Programmierung steckt, übersieht man die offensichtliche Lösung. Es hätte mir gefallen, wenn Try() funktioniert hätte, aber es hat das Popup-Fenster nicht blockiert. Also ging ich mit @ich h Die Lösung besteht darin, die festen Säulen beim Generieren des raumfüllenden Designs einfach wegzulassen und sie dann einfach wieder einzufügen. Schnell und einfach, nur ein paar zusätzliche Zeilen Code und es funktionierte wie erwartet.
Danke noch einmal!,
DS
Sie können Ihre Daten überprüfen und alle Spalten entfernen, die sich nicht ändern, bevor Sie die Faktoren in das DOE laden, um das Popup vollständig zu vermeiden.
Ich bin mit der DOE-Plattform von JMP nicht sehr vertraut und kann die Warnung, die Sie haben, nicht einfach generieren. Wenn es sich um einen ausgegebenen Fehler handelt, könnten Sie vielleicht versuchen, den Code in die Try-Struktur einzubinden. Ich bin mir nicht sicher, ob der gewünschte Code noch ausgeführt wird, aber es könnte sich lohnen, es auszuprobieren:
Try(
code-you-want-to-execute
,
show(exception_msg)
);