Ich habe also eine Datentabelle, die aus einer SQL-Abfrage generiert wird, sodass das Skript "Update from DB" angehängt ist. Ich kann dieses Skript so oft ausführen, wie ich möchte, und es funktioniert problemlos für die Datentabelle, indem neue Daten vom Server abgerufen werden.
Mein Problem ist jedoch, dass ich ein Overlay-Diagramm mit Automatic Recalc (1) habe, das beim ersten Ausführen des Skripts "Update from DB" funktioniert. Die neuen Daten werden sofort im Diagramm angezeigt. Wenn ich es jedoch erneut mache, wird das Diagramm nicht mehr angezeigt Aktualisierungen trotz neuer Daten in der Tabelle.
Ich habe ein ähnliches Verhalten für andere Plattformen festgestellt, sodass ich jederzeit Bilder als Teil der Aktualisierungsabfrage zeichnen kann.Das Ändern des Visuals, sodass JMP gezwungen ist, es neu zu zeichnen, funktioniert jedoch, z. B. durch Hinzufügen und Entfernen von Nadeln in einem Overlay-Plot wird es aktualisiert.
Ein Skript könnte den Overlay-Plot zeichnen:
//make a new overlay plot
myvis = Overlay Plot(
X( :time ),
Y( :value )
);
Ein zweites Skript aktualisiert die Abfrage (kopiert aus dem Skript 'Update from DB', fügt dann Nadeln hinzu und entfernt sie aus dem Überlappungsdiagramm:
//Refresh the data
Current Data Table() << Update From Database(
"DSN=OSI PI Archive",
"SELECT TOP 10000000 time, value FROM piarchive..piinterp
WHERE (tag IN ('Sinusoid'))
AND time BETWEEN '*-5m' AND '*' AND timestep = '10s'"
);
//Add and remove needles from overlay plot (or modify axis, point type, etc.)
myvis << Needle( state=1 );
myvis << Needle( state=0 );