Hola, tengo un script JSL que solicita al usuario que guarde una selección de gráficos JMP que acaba de generar un análisis directamente en una presentación de PowerPoint.Es probable que el usuario quiera inspeccionar las diapositivas resultantes de inmediato, por lo que no quiero cerrar el archivo de PowerPoint automáticamente, pero si el usuario intenta agregar alguna más gráficos con una segunda ejecución del script, recibirán una alerta JMP que les indicará que están tratando de sobrescribir un archivo que podría estar abierto en otro programa (lo cual, por supuesto, lo está).
Intenté atrapar un intento que podría fallar con la función Try(), pero esto no parece funcionar: el error ocurre de todos modos, y aunque JMP Alert le dice correctamente al usuario cuál es el problema, no lo hago. realmente quiero mensajes de error que interrumpan el flujo del programa.Pensé que usar la función "Se puede escribir en el archivo ()" para verificarlo con anticipación lo resolvería, pero eso tampoco parece funcionar: el archivo de PowerPoint es considera que se puede escribir, aunque esté abierto.
En este momento estoy poniendo un mensaje en la pantalla - si el archivo ya existe (que obviamente lata verificar) - advirtiendo al usuario por adelantado que si está abierto, deberán cerrarlo antes de continuar, pero esto es un poco poco elegante y realmente no resuelve el problema.¿Hay alguna manera de (a) verificar automáticamente que no esté abierto y (b) cerrarlo si es necesario?
Puedes usar
mylist = get log();
y luego analice mylist para ver si se produjo la advertencia y, de ser así, realice la acción que desea realizar.
txt = logcapture(...jsl that might make log messages...)
también podría ayudar con el mismo enfoque.
editar: es posible que necesite Crear error de conexión de base de datos también, que muestra cómo usar BatchInteractive() para suprimir un cuadro de diálogo y solo obtener un mensaje de registro. ...y más sobre lote interactivo .