Caso (s) de uso de Python y / o situaciones de procesamiento por lotes¡Hola equipo!
Nos hemos encontrado con preguntas sobre Python y problemas de cumplimiento de licencias (por lotes) con algunos de nuestros clientes de alta tecnología que quería compartir dentro de nuestra comunidad interna. Me encantaría ver que este hilo se convierta en una discusión que contenga no solo respuestas a mis preguntas, sino también con casos de uso adicionales (Python y batch) que todos ustedes han encontrado.
Nota: ¡No soy un experto en Python!
1) Llamando a JMP usando Python (en lugar de llamar a Python usando JMP). Nuestros clientes quieren hacer esto. He visto material en línea (no JMP) que demuestra la viabilidad.
A) ¿Hay un caso de uso aceptable donde Python llama a JMP? Suena como una situación de lote para mí.
Si esta es una situación por lotes, ¿alguien tiene una respuesta técnica enlatada que podamos brindar a nuestros clientes? He oído @Jeff_Perkinson diga que "JMP no fue diseñado ni probado para este caso de uso, por lo que no podemos garantizar ningún trabajo realizado utilizando JMP de esta manera" (estoy parafraseando mal, ¡lo siento, Jeff!).
2) ¿Admite JMP la biblioteca de Pandas Python? Vi un post de @IkjuShin sobre esto, a partir de 2018, y me pregunto si se ha producido algún material adicional aquí o si otras SE han encontrado esta pregunta.
encontré esto ejemplo en la guía de scripts JMP que me lleva a creer que este es un caso de uso factible para los integradores JMP / Python.
3) Un cliente desea crear un script JSL que contenga un bucle While para una ejecución continua. El script se ejecutaría en una computadora que está esencialmente dedicada a ejecutar JMP. El usuario iniciará la ejecución del script (y, en teoría, lo terminará). No tengo más detalles sobre el caso de uso pero, dado el contexto de la conversación, imagine que esta secuencia de comandos hará un ping a la base de datos para obtener nuevos datos y actualizar los informes.
A) ¿Cumple esto con nuestro acuerdo de licencia de escritorio?
¿Se ha probado esto y / o cuáles son los obstáculos técnicos para implementar esto de manera confiable?
Post largo ... ¡Gracias por sintonizar y por tus contribuciones!
Re: Caso (s) de uso de Python y / o situaciones de procesamiento por lotesHola Jeff,
A.
Creo que este PDF será una muy buena referencia, aunque desde 2009 ( https://www.lexjansen.com/nesug/nesug09/ap/AP09.pdf ), También lo adjunto.
Hace referencia a algunos lenguajes de secuencias de comandos y sus llamadas:
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(…
SEGUNDO.
Esto también parece estar relacionado (desde una página de Python): https://stackoverflow.com/questions/17931476/how-to-call-a-jsl-script-from-python-script
En una Mac mencionó:
import os
os.system('open /Applications/JMP\ Pro\ 13.app/Contents/MacOS/JMP /path/filename.jsl')
Hay un espacio entre la ruta / ejecutable y la ruta / nombre.
En su JSL, asegúrese de que la primera línea solo tenga //! Esto hará que el script se ejecute automáticamente cuando se abra. Además, use quit (); como última línea, de esa manera se cierra la instancia de JMP que se abre.
También tenga en cuenta: Asegúrese de que jmp.exe esté disponible en el entorno de su sistema para que si escribe "jmp.exe" en la línea de comando, se inicie jmp. Entonces tenga su * .jsl listo. usar python procede a ejecutar este comando "jmp.exe * .jsl" y eso abriría jmp y ejecutaría el script * .jsl y luego podrá importar lo que genere desde jmp nuevamente a python.
Y hay otro hilo de Python que habla de llamar a otras aplicaciones desde python: https://stackoverflow.com/questions/247724/how-can-i-launch-an-instance-of-an-application-using-python
También este hilo de la comunidad podría ser de interés: https://community.jmp.com/t5/Discussions/jsl-Script-call-from-Python/mp/206295#M41799
DO.
Finalmente la referencia de automatización (http://www.jmp.com/support/downloads/pdf/jmp1001/automation_reference.pdf) muestra cómo usar la automatización OLE. O http://www.jmp.com/support/downloads/pdf/vb_automation_reference.pdf
Todavía no lo he probado, ni he visto a alguien en mi base de clientes. Lo que he visto hasta ahora es el caso de uso de construir un modelo en JMP, convertir el último en un script de Python y usarlo en una interfaz web basada en Python. El caso de uso fue la planificación de recursos en un entorno automotriz para nuevos proyectos. El modelo funcionó mucho mejor que las recomendaciones del líder del proyecto. Sin embargo, esto también podría reducir la cantidad de usuarios que necesitan tener JMP Pro, si los demás pueden confiar en el modelo de compilación. Pero esto siempre es posible si tiene clientes con un grupo de análisis;)
Re: Caso (s) de uso de Python y / o situaciones de procesamiento por lotesGracias martin Aquí hay mucho contenido bueno, ¡algunos de los cuales están sobre mi cabeza! Tendré que releerlo varias veces.