JSL y PreferenciasHola,
Antecedentes: recientemente tuvimos un inicio de sesión en uno de nuestros complementos donde un usuario había cambiado una preferencia de plataforma predeterminada que nuestro complemento no anuló específicamente. En este caso, fue la preferencia de Diálogo de modelo -> Mantener diálogo abierto y el resultado fue una gran cantidad de ventanas de Ajustar modelo (ya que el complemento en cuestión estaba creando múltiples modelos). Esto se resolvió fácilmente configurando explícitamente la opción Mantener el diálogo abierto (0) en las llamadas a Fit Model en nuestro script.
Oportunidad: Realmente no quiero explicar todas las opciones posibles que alguien PODRÍA cambiar hipotéticamente en una plataforma. Algunas plataformas tienen una gran cantidad de opciones en las preferencias. Me encontré con algo llamado Ignorar preferencias de plataforma que hipotéticamente podría agregarse, pero esa línea aún debe escribirse repetidamente en cada llamada de la plataforma JSL. ¿Hay alguna llamada general que se pueda ejecutar al comienzo de un script, tal vez similar a Nombres predeterminados aquí, pero en lugar de eso, use Preferencias predeterminadas aquí o algo así? Entonces, las preferencias del sistema no se tocan en absoluto, pero sabemos exactamente qué comportamiento esperar cuando se ejecuta un complemento. Estoy pensando que esta opción no está disponible en función de esta discusión .
Tampoco está claro en el Índice de secuencias de comandos y la Ayuda de JMP si el mensaje Ignorar preferencias de plataforma simplemente obliga a JMP a usar los valores predeterminados de la plataforma, o si está haciendo otra cosa (¿como asumir que todas las preferencias no están marcadas?). ¿Alguna idea aquí?
Gracias,
Miguel
Re: JSL y PreferenciasEsto se vuelve un poco invasivo, pero para un complemento desplegado masivamente para JMPers creativos, podría ser una opción.
Al comienzo de su secuencia de comandos, puede obtener las preferencias y almacenarlas.
Luego use las preferencias establecidas para forzar que todas las preferencias sean predeterminadas, o lo que quiera.
Ejecute su script, luego al final use las preferencias establecidas para restaurar las preferencias que capturó al principio.
Si eliminas las preferencias de alguien, se ponen un poco irritables, así que ten cuidado de volver a configurarlas si eliges hacerlo.
Re: JSL y PreferenciasNo soy fanático de esto. No escribo código con errores intencionalmente, pero sucede ocasionalmente que un usuario inventa una combinación de entradas que no atrapo / atrapo que puede hacer que un complemento arroje un error durante la ejecución. Si esto sucede, las preferencias que se capturan al comienzo del complemento no se restablecen. Preferiría un simple comando JMP de una línea (similar a cómo controlamos las variables en espacios de nombres) que haría esto local al script que se está ejecutando. Supongo que uno podría poner todo el código del Complemento en una Prueba, pero eso anula el propósito de la captura de errores ...
Re: JSL y Preferenciassería bueno tenerlo, quizás agregarlo a la lista de deseos.
El enfoque draconiano es bastante efectivo. Cuando estoy haciendo entrenamiento práctico, uso algo como esto en un guión de configuración.
Me vuelve loco cuando las personas aparecen y tienen preferencias locas establecidas, y luego se quejan de que los ejemplos del curso no se parecen a lo que ven en la pantalla.
old=getpreferences();
set old=expr(set preferences());
for(i=1, i<= narg(old), i++,
insert into(set old, arg(old,i)););
//you script here
//including setting all the preferences you want to control
// at the end restore
setold;