Exécuter à distance un script JSL avec des paramètresBonjour,
Nous avons actuellement un script JMP que nous exécutons pour l'analyse/la création de rapports sur les données. Je souhaite déclencher ce script en fin d'acquisition de données (LabVIEW via ActiveX). J'ai localisé la fonction RunJSLFile mais elle n'a que le chemin du fichier comme entrée.
Comment puis-je implémenter le passage d'un paramètre à JMP pour une utilisation dans le script (une chaîne qui identifie le numéro de pièce) ? Dois-je utiliser RunCommand pour créer une variable globale qui est ensuite utilisée par le script ? Si oui, à quoi ressemblerait la commande ?
Merci.
Re : Exécuter à distance un script JSL avec des paramètresPS : si vous avez accès à RunCommand depuis labview/ActiveX, vous pouvez ignorer complètement le fichier vbs et insérer ce code dans votre application existante.
Re : Exécuter à distance un script JSL avec des paramètresVotre question comporte plusieurs dimensions.Le premier est le problème du démarrage à distance de JMP, le second est un problème juridique.Il existe des moyens de déclencher une session JMP sur un ordinateur distant.La plupart de cela serait géré par la fonctionnalité du système d'exploitation, et sa relation avec le programme d'application que vous avez écrit.
La seconde, c'est une question de licence. Vous devez vous assurer que chaque personne exécutant cette session JMP à distance est couverte par votre contrat de licence pour être autorisée/licenciée à exécuter JMP.
Re : Exécuter à distance un script JSL avec des paramètresOui, il existe de la documentation concernant l'automatisation OLE, et j'en ai lu la majeure partie.Bien qu'utile, pour les tâches générales, telles que le lancement d'un fichier .jmp, il semble manquer en ce qui concerne les vastes possibilités d'interfaçage avec d'autres programmes.Existe-t-il quelque part une documentation plus détaillée ?
Par exemple, puis-je lancer à distance un script JMP à partir d'un ordinateur (sur lequel JMP n'est pas installé) via un accès réseau à un ordinateur sur lequel JMP est installé ?Ou a-t-il besoin de certains fichiers faisant partie de l'installation de JMP (tels que jmp.tlb) ?.
Re : Exécuter à distance un script JSL avec des paramètreshttp://www.jmp.com/support/help/OLE_Automation.shtml a de la documentationRe : Exécuter à distance un script JSL avec des paramètresVous pouvez inclure une fonction "main" dans votre script JSL, l'inclure dans une session JMP appelée par un vbscript, puis appeler la fonction main dans votre script avec des arguments.Voici un exemple:
Fichier .vbs :
'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 & """ );")
Fichier JSL :
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);
);Re : Exécuter à distance un script JSL avec des paramètresCela ressemble à une approche viable et fonctionnerait très bien pour les tables contenant des données à analyser. Cette application est légèrement différente car nous traitons des données qui sont stockées en dehors de JMP (base de données SQL). Je pourrais créer une table pour contenir le script (essentiellement un wrapper), mais je pense qu'il devrait y avoir une meilleure approche pour cette application.
Le script en question n'est PAS contenu dans une table actuellement. Il s'agit d'un fichier *.jsl autonome qui contient des fonctions écrites personnalisées pour charger des données à partir de diverses requêtes SQL, générer plusieurs tableaux et graphiques, puis collecter les graphiques dans un journal.
si je fais jmp.RunCommand("ID = "12345";") , cela créera-t-il une variable globale qui peut être vue par le script .. exécuter via
jmp.RunJSLFile("") qui utilise ::ID dans diverses fonctions ?
Re : Exécuter à distance un script JSL avec des paramètresJe suis sûr que quelqu'un d'autre peut le faire plus élégamment, mais voici une méthode utilisant vbscript.
Collez ceci dans un fichier .vbs sur un ordinateur Windows.
'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"" ));")
Créez ensuite une table de données appelée test.jmp dans votre lecteur C avec un script enregistré appelé "add Column" qui contient ceci :
dt = current data table();
val = dt << Get Table Variable("input");
New Column( "Column 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Values( {val, val, val} )
);
Double-cliquez sur le fichier vbs et vous devriez voir une nouvelle colonne avec trois lignes définies sur 20.