Cuando estoy creando el flujo de trabajo, puedo usar tabular para crear una tabla de resumen y automáticamente se le asigna el nombre "Sin título 1". Como resultado, cuando vuelvo a ejecutar el flujo de trabajo, la tabla de resumen recién creada se asigna el nombre "Sin título 2", por lo que el flujo de trabajo no puede encontrar Untilte1 y necesito darle una referencia manualmente y se cometen muchos errores si hay muchas tablas nuevas.
¿Hay alguna manera de que Workflow reconozca automáticamente la nueva tabla? ¿O podríamos nombrar directamente la tabla en Tabulate antes de "convertirla en tabla" "Sin título"?
¡Gracias!
Puedes decidir el nombre al usar Tabulate, pero creo que debes hacerlo modificando el JSL (agrega Output Table("tablename") a << Convertir en tabla de datos)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Car Poll.jmp");
obj = dt << Tabulate(
Add Table(
Column Table(Grouping Columns(:sex, :marital status)),
Row Table(Grouping Columns(:country, :size))
)
);
dt = obj << Make Into Data Table(Output Table("My Table"));Workflow Builder es fantástico: el usuario no necesita saber ningún script JSL.
...hasta que se enfrenta a la trampa: conflictos en los nombres de las tablas.
En el 50% de los casos, no hay ninguna tabla con un nombre coincidente y JMP lo preguntará.
El problema comienza SI hay una tabla con un nombre coincidente y es la incorrecta.
El tema se discute en la sesión de preguntas y respuestas de esta charla:
Workflow Builder o los "pequeños pasos" hacia la creación de scripts
Existen varias "soluciones alternativas":
El más fácil (#4b): siguiendo el ejemplo de @jthi :
Utilice un poco de JSL y almacene las referencias de la tabla como " dt ". Luego , utilice dt también en todos los demás pasos del flujo de trabajo.
NB: Especificar "Tabla de salida" solo funciona hasta que haya una colisión, luego "Sin título" será "Sin título 2".
Otros enfoques:
#1 usa el icono de rebobinar

... para cerrar todas las tablas de datos, la tabla recién generada volverá a ser "Sin título".
-> no hay una solución robusta
El enfoque fallará una vez que haya una tabla de datos abierta sin título y el usuario intente ejecutar el flujo de trabajo.
#2: guardar
Después de crear la tabla de datos, guárdela con un nombre específico. Utilice la tabla de datos guardada para registrar los pasos adicionales.
Genial: con Guardar, incluso si hay un conflicto de nombres de tabla, JMP no agregará un "2".
Simplemente use cada vez el mismo archivo temporal y sobrescríbalo.
¡No es agradable, pero es muy efectivo!
@Zoe_Betteridge en Uso de JMP Workflow Builder para automatizar el análisis
#3: nuevo desde JMP18: use el bucle for each
Reemplaza todos los nombres de tabla en los pasos de flujo de trabajo anidados con el nombre de tabla del paso de importación (también funciona para N=1):
https://community.jmp.com/t5/Benelux-JMP-Users-Group/Workflow-Builder-or-the-quot-baby-steps-quot-into-Scripting/mp/739486/highlight/true#M7
#4: con un poco de JSL: en todos los pasos del flujo de trabajo, elimine las referencias al nombre de la tabla
// for workflow steps like
// Data Table("mytable") << command (...);
// just remove the data table and get:
command( ... )[Desafortunadamente, hay varias excepciones en las que este enfoque fallará].
#4b: cambia el código y usa una variable como referencia para la tabla de datos
Paso de importación:
// add "dt ="
dt = open( ...);
Pasos de trabajo subsiguientes:
// replace:
// Data Table("mytable") << command (...)
// with
dt << command( ...)
Espero que en una versión futura de JMP haya un generador de flujo de trabajo que evite automáticamente que el usuario caiga en esta trampa, por ejemplo:
- Una vez que se crea una tabla de datos, Worklow Builder podría solicitar un nombre de variable adecuado para hacer referencia a la tabla de datos.
- un botón en el generador de flujo de trabajo:
Reemplazar la referencia de la tabla de datos por el nombre de la tabla -> Referencia de la tabla de datos por variable
Según la opción 4b, hay una publicación en la lista de deseos para solucionar el problema automáticamente:
Permitir que Action Recorder use nombres de variables simples como referencias