JSL-Skript mit Parametern remote ausführenHallo,
Wir haben derzeit ein JMP-Skript, das wir für die Datenanalyse/Berichterstellung ausführen. Ich möchte dieses Skript am Ende der Datenerfassung (LabVIEW über ActiveX) auslösen. Ich habe die RunJSLFile-Funktion gefunden, aber sie hat nur den Dateipfad als Eingabe.
Wie kann ich die Übergabe eines Parameters an JMP zur Verwendung im Skript implementieren (eine Zeichenfolge, die die Teilenummer identifiziert)? Muss ich RunCommand verwenden, um eine globale Variable zu erstellen, die dann vom Skript verwendet wird? Wenn ja, wie würde der Befehl aussehen?
Danke dir.
Betreff: JSL-Skript mit Parametern remote ausführenPS: Wenn Sie in Labview/ActiveX Zugriff auf den RunCommand haben, können Sie die vbs-Datei vollständig überspringen und diesen Code in Ihre vorhandene Anwendung einfügen.
Betreff: JSL-Skript mit Parametern remote ausführenIhre Frage hat ein paar Dimensionen.Das erste ist das Problem des Fernstarts von JMP, das zweite ist ein rechtliches Problem.Es gibt Möglichkeiten, eine JMP-Sitzung auf einem Remote-Computer auszulösen.Das meiste davon würde von der Betriebssystemfunktionalität und seiner Beziehung zu dem Anwendungsprogramm, das Sie geschrieben haben, gehandhabt werden.
Der zweite ist eine Frage der Lizenzierung. Sie müssen sicherstellen, dass jede Person, die diese Remote-JMP-Sitzung ausführt, durch Ihre Lizenzvereinbarung abgedeckt ist, um zur Ausführung von JMP autorisiert/lizenziert zu sein.
Betreff: JSL-Skript mit Parametern remote ausführenJa, es gibt einige Dokumentation zur OLE-Automatisierung, und ich habe das meiste davon gelesen.Während es für allgemeine Aufgaben hilfreich ist, wie z. B. das Starten einer .jmp-Datei, scheint es in Bezug auf die umfangreichen Möglichkeiten der Schnittstelle zu anderen Programmen zu fehlen.Gibt es irgendwo eine ausführlichere Dokumentation?
Kann ich beispielsweise ein JMP-Skript von einem Computer (auf dem JMP nicht installiert ist) per Netzwerkzugriff auf einen Computer, auf dem JMP installiert ist, remote starten?Oder benötigt es einige Dateien, die Teil der JMP-Installation sind (z. B. jmp.tlb)?.
Betreff: JSL-Skript mit Parametern remote ausführenhttp://www.jmp.com/support/help/OLE_Automation.shtml Dokumentation hatBetreff: JSL-Skript mit Parametern remote ausführenSie könnten eine Hauptfunktion in Ihr JSL-Skript einfügen, sie in eine JMP-Sitzung einfügen, die von einem VB-Skript aufgerufen wird, und dann die Hauptfunktion in Ihrem Skript mit Argumenten aufrufen.Hier ist ein Beispiel:
.vbs-Datei:
'Create the JMP application object
set jmp = Wscript.CreateObject("JMP.Application")
'read the existing jsl script
jmp.RunCommand("include( ""C:/ScriptWithParam.jsl"" );")
'set parameter values
param1 = "some value"
'Run a function inside the script
jmp.RunCommand("MakeTable( """ & param1 & """ );")
JSL-Datei:
MakeTable = function({param1 = "2"},
result = 1;
colvalues = {"Your value was",Char(param1)};
colvalues = Eval List(colvalues);
New Table( "test",
Add Rows( 2 ),
New Column( "Column 1",
Character,
"Nominal",
Set Values( colvalues )
)
);
show(param1);
result = 0;
Return(result);
);Betreff: JSL-Skript mit Parametern remote ausführenDies sieht nach einem praktikablen Ansatz aus und würde sich hervorragend für Tabellen eignen, die zu analysierende Daten enthalten. Diese Anwendung ist etwas anders, da wir Daten verarbeiten, die außerhalb von JMP (SQL-Datenbank) gespeichert sind. Ich könnte eine Tabelle erstellen, die das Skript enthält (im Wesentlichen ein Wrapper), aber ich denke, es sollte einen besseren Ansatz für diese Anwendung geben.
Das betreffende Skript ist derzeit NICHT in einer Tabelle enthalten. Es ist eine eigenständige *.jsl-Datei, die benutzerdefinierte geschriebene Funktionen enthält, um Daten aus verschiedenen SQL-Abfragen zu laden, mehrere Tabellen und Diagramme zu erstellen und die Diagramme dann in einem Journal zu sammeln.
Wenn ich jmp.RunCommand("ID = "12345";") mache, wird dadurch eine globale Variable erstellt, die vom Skript gesehen werden kann
jmp.RunJSLFile(""), das ::ID in verschiedenen Funktionen verwendet?
Betreff: JSL-Skript mit Parametern remote ausführenIch bin sicher, dass jemand anderes dies eleganter machen kann, aber hier ist eine Methode, die vbscript verwendet.
Fügen Sie dies in eine .vbs-Datei auf einem Windows-Computer ein.
'Create the JMP application object
set jmp = Wscript.CreateObject("JMP.Application")
'Open a data table that already contains your script
set jmpdoc = jmp.OpenDocument("C:/test.jmp")
'Make it visible for demo
jmpdoc.Visible = True
'Set a table variable to be your 'parameter'
jmp.RunCommand("current data table() << Set Table Variable( ""input"", 20); ")
'Run the script
jmp.RunCommand("eval(Current Data Table() << Get Table Property( ""add Column"" ));")
Erstellen Sie dann eine Datentabelle namens test.jmp auf Ihrem C-Laufwerk mit einem gespeicherten Skript namens "add Column", das Folgendes enthält:
dt = current data table();
val = dt << Get Table Variable("input");
New Column( "Column 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Values( {val, val, val} )
);
Doppelklicken Sie auf die vbs-Datei und Sie sollten eine neue Spalte mit drei auf 20 gesetzten Zeilen sehen.