Error extraño al ejecutar JSL como complemento frente a script.Hola a todos,
Tengo un script que escribí y que convertí en un complemento. Las cosas funcionaron muy bien la última vez que lo usé, alrededor de noviembre de 2023. Lo estoy ejecutando nuevamente y aparece un error muy extraño que ocurre cuando lo ejecuto como un complemento, pero no funciona. No sucede cuando ejecuto el archivo JSL solo.
Entonces, el script ejecuta algunos modelos y genera una ventana de salida que se supone que muestra los resultados de cada ejecución de ajuste gráficamente y como una tabla. Se supone que el resultado debe verse así (se ejecutó desde el propio script):

La ventana de salida se genera a partir de una tabla de datos que recopila todas las estadísticas de ajuste de la plataforma de modelado.

Nuevamente, el guión funciona muy bien y hace todo lo que se supone que debe hacer. Cuando lo hago como un archivo jmpaddin y lo instalo en JMP, algo sucede y el código se confunde y, en lugar de hacer referencia a la tabla de salida, vuelve a la tabla de datos original que contiene mis Y y X que estoy usando. para modelar. Como resultado, la parte del generador de gráficos de la ventana de salida está en blanco y recibo un error de JMP que indica que la columna :Tune Run no existe (no existe en la tabla de datos original, pero sí en la tabla de datos de salida). ).
Este es el resultado para el mismo tipo de modelado, pero ejecutándolo como un complemento en lugar del JSL, sin generador de gráficos:

Y, al ir a la Lista de ventanas en la ventana de inicio de JMP, puede ver que para la instancia en la que lo ejecuté como complemento, se generó la ventana Resultados del bosque Bootstrap a partir de la tabla de datos original T20-XL. Entonces, naturalmente, no hay ninguna columna: Tune Run en esa tabla de datos. Pero, cuando lo ejecuto como JSL directo, genera correctamente la ventana de salida (Resultados del bosque Bootstrap 2) a partir de la tabla de datos de salida resumida según lo previsto.

Este es el error que me sale:

Y el informe de registro muestra lo siguiente:


No puedo entender qué está pasando mal y por qué la versión del complemento intenta trabajar con la tabla de datos original en lugar de la tabla de datos de salida resumida que se supone que debe hacerlo. Tampoco entiendo por qué funcionaría ejecutándolo directamente desde el archivo JSL, pero como complemento no funciona en absoluto.
¿Alguien más se ha encontrado con este problema? Si es así, ¿cómo lo corrigiste y pudiste descubrir cómo sucedió en primer lugar?
¡Gracias!,
DS
Automatización y secuencias de comandosExploración y visualización de datosModelado predictivo y aprendizaje automáticoventanasRe: Error extraño al ejecutar JSL como complemento frente a script.¿Puedes enviar el mensaje de Graph Builder a una tabla de datos específica?
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
);
dt << Generador de gráficos(...
Re: Error extraño al ejecutar JSL como complemento frente a script.Hola @jthi ,
Sí, puedo, pero creo que el problema es algo diferente: algo relacionado con la asignación y asignación de memoria.
La razón por la que creo esto es porque estoy ejecutando dos instancias de JMP Pro en mi máquina. así que tengo dos JMP Home Windows: el original y luego otro con [2] agregado al nombre de la ventana de inicio. Cuando intento ejecutar el complemento en la segunda instancia de JMP, aparece el error, pero no cuando lo ejecuto en la primera instancia de JMP. Creo que hay un error que no maneja las cosas correctamente cuando se ejecuta una segunda instancia de JMP.
Solía no hacer esto. A menudo ejecuto dos instancias de JMP, una para trabajar con datos en segundo plano y la otra para tenerla disponible para trabajar con nuevos datos que la gente me proporciona. Intento ejecutar el modelado en la segunda instancia, de modo que si hago doble clic en un archivo jmp, se abrirá en la primera instancia de JMP y me permitirá trabajar en eso mientras el modelado se ejecuta en segundo plano en la otra instancia. . Creo que algo podría haber sucedido en la última actualización de JMP porque nunca antes había tenido este problema.
¡Gracias!,
DS
Re: Error extraño al ejecutar JSL como complemento vs script.¿Cómo estás creando tu complemento? ¿Quizás forzar este espacio de nombres esté provocando que falle como complemento (aunque no estoy seguro de por qué no habría sucedido antes)?

Re: Error extraño al ejecutar JSL como complemento en lugar de script.Hola @jthi ,
Construyo mi complemento de la forma habitual: creo un archivo .def, lo instalo y luego modifico la barra de herramientas según sea necesario. Ejecuto mis complementos como siempre. Intenté cambiar el espacio de nombres "Aquí" marcando o desmarcando la casilla, pero no parece solucionar el problema.
Tras revisarlo de nuevo, ahora no puedo ejecutar el complemento durante una sola sesión de JMP. Sigo recibiendo los mismos errores. Quizás sea lo que comentó @Craige_Hales , pero de ser así, no estoy seguro de cómo solucionar el problema ni de por qué algo ha cambiado repentinamente y el complemento no funciona correctamente. Como ya se mencionó, el JSL funciona perfectamente.
¡Gracias!,
DS
Re: Error extraño al ejecutar JSL como complemento en lugar de script.¿También ves "Error o Característica"? Parece que te encuentras con que el contexto de evaluación del complemento podría no ser el mismo que se usa posteriormente... aunque, por tu descripción, no estoy seguro. La tabla de datos actual de JMP se conoce dentro de un contexto de evaluación. Normalmente, un script usa un contexto de evaluación, que pertenece a la ventana de JSL o a una ventana de la plataforma. Un script de complemento se ejecuta sin ninguno de los dos, por lo que proporciona uno transitorio. Cuando el script del complemento finaliza (probablemente se ejecuta al final), el contexto de evaluación transitorio desaparece. Si dejó una ventana abierta y los botones de esa ventana ejecutan más scripts, usan el contexto de evaluación de la ventana, que no tiene en cuenta el anterior.
Re: Error extraño al ejecutar JSL como complemento en lugar de como script.Hola @Craige_Hales ,
Supongo que el problema debe provenir de lo que describiste. La ventana de Resultados final que genera mi código tiene algunos botones que realizan acciones, como volver a ejecutar un ajuste del modelo o reiniciar el código. Y, dado que el archivo JSL se ejecuta correctamente, pero el complemento no, debe ser parte de la función `eval` a la que te referías.
Lo que no entiendo es por qué ahora funciona mal cuando antes no lo hacía. Además, no sé cómo solucionar este problema, ya que desconozco su origen. Como mencioné, funcionaba perfectamente alrededor de octubre de 2023.
Mi código consiste básicamente en una serie de funciones Expr() que se llaman y ejecutan según las interacciones del usuario. Puedo compartirlo si quieres ver si puedes reproducir el error.
¿Podría haber algún cambio en las preferencias de JMP que esté causando este problema? Sería ideal encontrar una solución, ya que prefiero ejecutarlo como complemento en lugar de JSL.
¡Gracias!,
DS