JMP Live-Datentabellen-Aktualisierungsskript (aus dem Abfrage-Generator)Dies ist eine Frage zu JMP Live Data Table Refresh-Skripten. Genauer gesagt zu solchen Quellskripten, die durch die Verwendung des Query Builders zur Verbindung mit einer Datenbank in JMP mit Post Query Scripts entstehen.
@LuizaFabreti und ich haben ein bisschen mit ein paar Beispielen herumgespielt, und es ist nicht klar, was im PostQueryScript in JMP Live ausgeführt wird und was nicht (was ignoriert wird).
Das PostQueryScript fügt in beiden Fällen eine neue Formelspalte hinzu, die zwei Spalten (Arzneimittel-ID und Beschreibung) zu einer neuen Spalte verknüpft.
Hat das schon mal jemand gesehen? Gibt es dazu Hinweise?
@dieterpisot
@Alex_Lippincott
Betreff: JMP Live-Datentabellen-Aktualisierungsskript (aus dem Abfrage-Generator)Meines Wissens behandelt JMP Live das PostQueryScript nicht anders als JMP. Haben Sie versucht, das Aktualisierungsskript in JMP auszuführen? Funktioniert es dort?
Betreff: JMP Live-Datentabellen-Aktualisierungsskript (aus dem Abfrage-Generator)Auch das zweite und dritte Skript stoßen auf Fehler wie diesen:
Name Unresolved: New Formula Column in access or evaluation of 'New Formula Column' , New Formula Column(
Operation( Category( "Character" ), "Concatenate with Space" ),
Columns( :Drug ID, :Description )
) /*###*/
at line 1
Data Table( "Stability_Data_Stacked 2" )
Betreff: JMP Live-Datentabellen-Aktualisierungsskript (aus dem Abfrage-Generator)Meine Erfahrung ist ähnlich. Manchmal funktioniert es, manchmal nicht. `NewColumn()` funktioniert, aber alles Komplexere empfehle ich außerhalb der Abfrage in JSL zu implementieren. Ich bin mir nicht sicher, was genau unterstützt werden soll, aber ich finde Skripte nach der Abfrage nicht besonders gut.
Betreff: JMP Live-Datentabellen-Aktualisierungsskript (aus dem Abfrage-Generator)Ich habe zwar nichts getestet, aber manchmal sollte man prüfen, ob die Spalten, die man erstellt und später verwenden möchte, tatsächlich schon existieren, bevor der Interpreter den Rest des Skripts ausführt. Dies ist häufig das Problem bei Tabellennamen, erstellten Spaltennamen und anderen Dingen wie der Suche und Auswahl von Zeilen, die bearbeitet werden sollen.
Ein `wait()` oder `wait(2)` kann helfen zu überprüfen, ob dies die Fehlerursache ist. Falls ja, sollten Sie die Codestruktur anpassen, den `wait()`-Befehl im Skript beibehalten, solange die Performance nicht beeinträchtigt wird, und alternative Lösungsansätze in Betracht ziehen.
Tabellenmanipulationen in einem Postquery-Skript sind etwas schwierig. Es empfiehlt sich, die Datentabellenverwaltung im Refresh-Skript durchzuführen, sobald die Tabelle erstellt wurde, und nicht im Fetch-Vorgang selbst.
Betreff: JMP Live-Datentabellen-Aktualisierungsskript (aus dem Abfrage-Generator)Ich habe die zugehörigen .jmpquery-Dateien angehängt. Beide funktionieren in JMP.
Wir haben ein Discovery-Papier für Baltimore, in dem ich Alex' Vorschlag umsetzen werde: Dinge aus dem Post-Query-Skript herausnehmen, bevor man sie an JMP Live sendet, ODER beim Erstellen des Datenaktualisierungsskripts von Grund auf neu beginnen (anstatt sich auf Source Script zu verlassen).
Betreff: JMP Live-Datentabellen-Aktualisierungsskript (aus dem Abfrage-Generator)Ich habe Probleme beim Hochladen der zweiten .jmpquery-Datei, sende sie Ihnen aber gerne per E-Mail zu, falls Sie sie ausprobieren möchten.
Der einzige Unterschied besteht im Skript nach der Abfrage (in JMP Live wird die Spalte zwar erstellt, aber nicht verschoben):
// Neue Spalte: Arzneimittel-ID, Beschreibung
Datentabelle("Stabilitätsdaten_gestapelt") << Neue Spalte("Arzneimittel-ID, Beschreibung",
Charakter,
"Nominal",
Formel( Zeichen( :Arzneimittel-ID ) || " " || :Beschreibung )
) << Move Selected Columns( {:"Drug ID, Description"n}, after( :Description ) ) <<
Formeln ausführen;
Betreff: JMP Live-Datentabellen-Aktualisierungsskript (aus dem Abfrage-Generator)Ich denke, Martins Vermutung ist ziemlich plausibel. Es handelt sich wahrscheinlich um ein Timing-Problem. Möglicherweise läuft PostQueryScript asynchron, und die SQL-Abfrage kehrt zum Skript zurück, bevor die Post-Abfrage abgeschlossen ist. Die JMP-Live-Sitzung weiß nicht, dass sie warten muss, und gibt die Tabelle zurück, bevor die Post-Abfrage beendet ist. Ein `wait()`-Aufruf, um die Post-Abfrage abzuschließen, ist vermutlich eine gute Lösung.