Cas d'utilisation Python et / ou situation de traitement par lotsBonjour l'équipe!
Nous avons rencontré des questions sur Python et des problèmes de conformité de licence (batch) avec certains de nos clients de haute technologie que je souhaitais partager au sein de notre communauté interne. J'aimerais que ce fil se transforme en une discussion contenant non seulement des réponses à mes questions, mais également des cas d'utilisation supplémentaires (Python et batch) que vous avez tous rencontrés.
Note: Je ne suis pas un expert en Python!
1) Appel de JMP à l’aide de Python (par opposition à l’appel de Python à l’aide de JMP). Nos clients veulent le faire. J'ai vu du matériel (non-JMP) en ligne démontrant la faisabilité.
A) Existe-t-il un cas d'utilisation acceptable dans lequel Python appelle JMP? Cela ressemble à une situation de lot pour moi.
S'il s'agit d'une situation de lot, est-ce que quelqu'un a une réponse technique préétablie que nous pouvons fournir à nos clients? j'ai entendu @Jeff_Perkinson dire "JMP n'a pas été conçu ni testé pour ce cas d'utilisation, nous ne pouvons donc garantir aucun travail effectué avec JMP de cette manière" (je suis en train de paraphraser, désolé Jeff!).
2) JMP prend-il en charge la bibliothèque Pandas Python? J'ai vu un post de @ IkjuShin à partir de 2018 et se demander si du matériel supplémentaire a été produit ici ou si d’autres SE ont rencontré cette question.
j'ai trouvé ça Exemple dans le guide de script JMP qui me porte à croire que ceci est un cas d'utilisation réalisable pour les intégrateurs JMP / Python.
3) Un client souhaite créer un script JSL contenant une boucle While pour une exécution continue. Le script serait exécuté sur un ordinateur essentiellement dédié à l'exécution de JMP. L'utilisateur commencerait à exécuter le script (et, théoriquement, le terminerait). Je n'ai pas de détails supplémentaires sur le cas d'utilisation, mais, dans le contexte de la conversation, imaginez que ce script envoie une requête ping à une base de données pour obtenir de nouvelles données et mettre à jour des rapports.
A) Est-ce conforme à notre contrat de licence de poste de travail?
Cela at-il été testé et / ou quels sont les obstacles techniques à sa mise en œuvre de manière fiable?
Long post ... merci pour votre contribution et pour votre contribution!
Re: cas d'utilisation Python et / ou situation de traitement par lotsSalut Jeff
UNE.
Je pense que ce PDF sera une très bonne référence, à partir de 2009 ( https://www.lexjansen.com/nesug/nesug09/ap/AP09.pdf ), Je l'ai aussi joint.
Il fait référence à certains langages de script et à leurs appels:
COMPARE & CONTRAST
COM Syntax across scripting tools is more alike than different across: Tcl, Perl , Python, R, & VBScript. For example: Start up JMP, Open a Document, Launch a Platform, Run some JSL.
TCL:
package require tcom
set JMP [::tcom::ref createobject "JMP.Application"];
set JMPdoc [$JMP OpenDocument {C:\Big Class.JMP}]
set oneway [$JMPdoc CreateOneway]
$JMP RunCommand "Distribution(
Perl:
use OLE;
use Win32::OLE;
$jmp = Win32::OLE->new('JMP.Application')
my $doc = $jmp->OpenDocument("C:\\Big class.jmp");
$doc -> CreateOneway
$jmp->RunCommand("Distribution(…
Python:
from win32com.client import Dispatch
jmp = Dispatch("JMP.Application")
doc = jmp.OpenDocument("C:/Big class.jmp")
doc.CreateOneway
jmp.RunCommand("Distribution(…
R:
library(rcom)
jmp <- comCreateObject("JMP.Application")
bigclass <- comInvoke(jmp, "OpenDocument", "C:\\Big Class.jmp")
oneway <- comInvoke(bigclass, "CreateOneway")
comInvoke(jmp, "RunCommand",…
VBscript:
set jmp = Wscript.CreateObject("JMP.Application")
set jmpdoc = jmp.OpenDocument("C:/Big class.jmp")
Set Oneway = JMPDoc.CreateOneway
jmp.RunCommand("Distribution(…
B.
Cela semble être lié aussi (à partir d'une page python): https://stackoverflow.com/questions/17931476/how-to-call-a-jjsl-script-de-python-script
Sur un mac, il a mentionné:
import os
os.system('open /Applications/JMP\ Pro\ 13.app/Contents/MacOS/JMP /path/filename.jsl')
il y a un espace entre le chemin / exécutable et le chemin / nom.
Dans votre JSL, assurez-vous que la première ligne n'a que //! Le script s’exécutera automatiquement à son ouverture. En outre, utilisez quit (); comme dernière ligne, l'instance de JMP ouverte est ainsi fermée.
Notez aussi: Assurez-vous que jmp.exe est disponible dans votre environnement système pour pouvoir lancer jmp si vous tapez "jmp.exe" dans la ligne de commande. Ensuite, ayez votre * .jsl à portée de main. utilisez des procédures python pour exécuter cette commande "jmp.exe * .jsl". Cela ouvrirait jmp et exécuterait le script * .jsl, ce qui vous permettrait d'importer tout ce que vous générez de jmp vers python.
Et il y a un autre thread Python qui parle d'appeler d'autres applications depuis Python: https://stackoverflow.com/questions/247724/how-can-i-launch-an-instance-of-an-application-using-python
Aussi ce fil de la communauté pourrait être d'intérêt: https://community.jmp.com/t5/Discussions/jsl-Script-call-from-Python/mp/206295#M41799
C.
Enfin la référence automatisation (http://www.jmp.com/support/downloads/pdf/jmp1001/automation_reference.pdf) montre comment utiliser l'automatisation OLE. Ou http://www.jmp.com/support/downloads/pdf/vb_automation_reference.pdf
Je ne l'ai pas encore essayé et je n'ai encore vu personne de ma clientèle. Ce que j’ai vu jusqu’à présent, c’est le cas d’utilisation de la création d’un modèle dans JMP qui convertit le modèle final en script Python et l’utilise dans une interface Web basée sur Python. Le cas d'utilisation était la planification des ressources dans un environnement automobile pour de nouveaux projets. Le modèle fonctionnait beaucoup mieux que les recommandations du responsable du projet. Toutefois, cela pourrait également réduire le nombre d'utilisateurs ayant besoin de JMP Pro, si les autres peuvent compter sur le modèle de construction. Mais cela est toujours possible si vous avez des clients avec un groupe d'analyse;)
Re: cas d'utilisation Python et / ou situation de traitement par lotsMerci Martin. Il y a beaucoup de bon contenu ici, dont certains sont au dessus de ma tête! Je vais devoir le relire quelques fois.