Esperar (0) frente a Esperar (n) frente a Ejecutar frente a FinalizarTengo tablas de datos muy grandes y en constante crecimiento, por lo que tengo problemas con las fórmulas que no terminan. Desearía que JMP simplemente incorporara un mecanismo para evitar que los scripts continúen hasta que cada línea haya terminado, pero tal vez haya una razón para no hacer esto en la que no estoy pensando. Normalmente uso un comando esperar (n) (por ejemplo, esperar (30);); sin embargo, a medida que el conjunto de datos crece, tengo que actualizar constantemente innumerables instancias de "esperar" a lo largo de las miles de líneas de código a medida que las tablas se vuelven demasiado grandes con certeza. líneas de código para terminar de evaluar. Más tarde pensé que había aprendido que esperar(0); sería dinámico. Esperaría todo el tiempo necesario para finalizar la evaluación antes de pasar a la siguiente línea, así que cambié todo a esperar (0), pero ahora muchas líneas no se completan y, por lo tanto, el script se interrumpe. ¿Me equivoqué al pensar que esperar(0); ¿El comando sería dinámico como lo describí? Probé los comandos "Ejecutar" y "Finalizar" pero ninguno funcionó. Regresé y puse, por ejemplo, esperar(30); en un lugar y funcionó de nuevo... entonces, ¿estoy atrapado con estos incrementos de tiempo estáticos que inevitablemente tendré que seguir cambiando con el tiempo... o estoy haciendo algo mal aquí?
Automatización y secuencias de comandosRe: Esperar(0) vs Esperar(n) vs Ejecutar vs FinalizarCreo que si tiene fórmulas en las tablas a las que se está uniendo/actualizando, entonces podría ser útil. Creo que nunca he tenido problemas con las tablas de datos directamente relacionadas con JMP que me hubieran obligado a usar la espera (la mayoría de los problemas se han relacionado con algunas variables que no obtienen valores o con visualizaciones en una nueva ventana). No conozco suficientes detalles técnicos sobre lo que JMP está haciendo en segundo plano, así que tal vez podrías intentar enviar un correo electrónico a support@jmp.com para obtener ayuda. También etiqueté a @Jeff_Perkinson según esta antigua respuesta . ¿Cómo puedo forzar que mi script se ejecute secuencialmente?
Par de preguntas:
¿Está utilizando Current Datatable() para hacer referencia a tablas de datos? ¿Qué versión de JMP estás usando?
Enlaces:
https://www.jmp.com/support/help/en/15.2/index.shtml#page/jmp/scripting-data-tables.shtml#ww2071832
https://www.jmp.com/support/help/en/15.2/index.shtml#page/jmp/scripting-numbers-strings-arrays-and-lists.shtml#
Re: Esperar(0) vs Esperar(n) vs Ejecutar vs FinalizarDebería haber especificado que no se trata solo de evaluaciones de fórmulas, sino también de acciones como abrir y unir o actualizar otra tabla, ordenar una tabla, etc. ¿Esos comandos funcionarán en cosas que no son fórmulas?
Re: Esperar(0) vs Esperar(n) vs Ejecutar vs Finalizar¿Has intentado usar:
dt << Run Formulas();
o
dt << Rerun Formulas;
Según tengo entendido, con estos JMP debería esperar a que finalice la evaluación de la fórmula antes de continuar.
Otras opciones posibles: ¿También son necesarias fórmulas? ¿Podrías manejar con << Establecer cada valor en lugar de fórmulas? También es posible utilizar dt << Begin Data Update ; y dt << Finalizar actualización de datos ; podría ser de utilidad.
Re: Esperar(0) vs Esperar(n) vs Ejecutar vs TerminarEn general, utilizo << ejecutar fórmulas en mis scripts.
Pero estoy de acuerdo con lo que escribió @RVhydrA .
Según lo escrito en el índice de scripts, wait(0) debería hacer el mismo trabajo:

Re: Esperar(0) vs Esperar(n) vs Ejecutar vs Terminar- Utilice wait(0) para hacer que aparezcan ventanas y funcionen los botones durante un bucle.
- Utilice < < i>
- Utilice wait(1) para hacer que un script se ejecute más lento, quizás para visualizar una progresión de cambios.
Las fórmulas de tabla de JMP se evalúan en segundo plano, cuando JMP está inactivo. Wait( n > 0 ) hace que JMP esté inactivo para que las fórmulas puedan evaluarse. La evaluación de fórmulas en tiempo de inactividad es bastante lenta; el uso de dt< <>
Muchos comandos de tablas de datos tienen el <
El tiempo de inactividad de wait(n) permite que el sistema operativo actualice la pantalla y envíe pulsaciones de teclas y clics del mouse a su programa. Si escribe un bucle sin tiempo de inactividad de wait(0) que abra y cierre plataformas, no verá ninguna actividad en la pantalla. Si necesita ver las ventanas abriéndose, un wait(0) es adecuado en ese caso. También hay una pequeña penalización de tiempo para wait(0), incluso si no sucede nada.