Hallo,
Ich bin mir dessen bewusst, dass dies vage sein kann, und ich entschuldige mich, da es mir nicht völlig frei ist, alle Daten, die ich manipuliere, darzustellen, aber ich werde mein Bestes geben, um so viele Informationen wie möglich bereitzustellen.
Mir wurde ein JMP-Add-In zur Verfügung gestellt, um eine 4PL-Regression durchzuführen. Dieses Add-In ist eine Kombination aus JMP-Dateien und einer ausführbaren Datei. Ich habe keine Zugriffsrechte auf die ausführbare Datei (kann diese Datei nicht bearbeiten). Die JMP-Dateien für das Add-In bieten eine Datenbereinigung für die ausführbare Datei und rufen dann die ausführbare Datei auf. Die ausführbare Datei interagiert mit der geöffneten Datei, sie würde die Datei einfach mit den 4PL-Daten aktualisieren, und das war es.
Meine Aufgabe war es, den Prozess der Ausführung des Add-Ins zu automatisieren. Wir haben mehrere Eingabedateien, die wir täglich ausführen würden. Der Ansatz, den ich vorhatte, bestand darin, die Datei, in der die ausführbare Datei ausgeführt wird, zu übernehmen und als Funktion zu behandeln / einzuwickeln. Ich würde dann meine Liste der Datentabellen durchlaufen.
Ich habe das stückweise gemacht:
- Ich stellte zuerst sicher, dass die ausführbare Datei an den Eingabedaten arbeitete.
- Ich schrieb dann die Funktion und ein separates Skriptfenster ("Wrapper"), um die Datentabelle auszuwählen und an die Funktion zu übergeben. Ich habe das für eine einzelne Datei gemacht und es hat richtig funktioniert.
Unten ist mein "Wrapper" für den Aufruf der Funktion, der folgende Code funktioniert korrekt:
include("$ADDIN_HOME(**path I cannot share**)\DRIA_func.jsl");
test1 = data table("First Data Table for Script");
var_1 = DRIA_func(test1);Sobald dies ausgeführt wird, wird das Skriptfenster oben geschlossen. Ich habe keine Kontrolle darüber und kann es nicht stoppen. Wenn ich eine zweite Datentabelle hinzufügen würde, wird der folgende Fehler im Protokoll festgestellt:
In the following script, error marked by /*###*/
Include( "$ADDIN_HOME(**path I cannot share**)\DRIA_func.jsl" );
test1 = Data Table( "First Data Table for Script" );
var_1 = DRIA_func( the_table_test1 );
test2 = Data Table( "Second Data Table for Script" );
var_2 = DRIA_func( the_table_test2 ) /*###*/;
Ich weiß nicht, warum das Skriptfenster geschlossen wird, aber ich stelle mir vor, dass dies den Fehler verursacht.
Das JMP-Skript, aus dem ich eine Funktion mache, liefert, wenn ich es alleine ausführe, das richtige Ergebnis für die Datentabelle, erzwingt aber auch das Schließen.
Der einzige Hinweis, den ich habe, ist dieser Community-Link:
https://community.jmp.com/t5/Discussions/C-closes-JMP-after-running/td-p/35678
Soweit ich erfahre, ist dies Teil der C # -Codierung und kann in / durch JMP nicht gemildert werden. Ich bin die einzige Ressource zu diesem Thema, und bevor ich zu dem Schluss komme, dass es ein Problem mit der ausführbaren Datei ist, wollte ich die Experten hier fragen!
Danke für Ihre Hilfe!