El nuevo script de actualización de tabla de JMP 18 sobrescribe la tablaAl importar tablas de Excel en JMP 18, obtengo dos scripts 'Fuente' y 'Actualizar tabla'; la única diferencia parece ser el comando 'Actualizar tabla (1)'.
El segundo script realiza una actualización desde el archivo de Excel y sobrescribe las columnas creadas después de la importación. ¿Hay alguna forma de que no modifique las columnas nuevas al realizar la actualización? No encontré nada en el índice de scripts.
Automatización y scriptingOrganización de contenidoVentanasRe: El nuevo script de actualización de tabla de JMP 18 sobrescribe la tablaHola @Ake , la idea de actualización en este momento: reemplazar los datos existentes con los nuevos datos del archivo de entrada.
Como usted describe, esto es bastante destructivo.
La idea detrás de esto podría ser algo como:
No se puede garantizar que los valores existentes en las columnas adicionales coincidan con los datos recién importados, por lo que es mejor eliminarlos. En el caso de las columnas con fórmulas, no veo ningún motivo por el que se deban eliminar dichas columnas.
Mucho mejor que el script de actualización:
dt = Current Data Table();
dtnew = dt << Run Script( "Source" );
dt << Select All Rows << Delete Rows;
dt << Concatenate( dtnew, Append to first table );
Close( dtnew, NoSave );
Aún eliminará los valores agregados manualmente, pero conservará las columnas de fórmula 
El inconveniente: se basa en el script fuente, que también es muy frágil: Actualizar y concatenar: colisión del script fuente .
Alternativamente, puedes echar un vistazo a Unir, Concat y Actualizar .
Re: El nuevo script de actualización de tabla de JMP 18 sobrescribe la tabla¡Gracias! Si simplemente copio el código fuente en el tuyo, se vuelve menos frágil.
He estado usando un método más complicado, agregando la cantidad de filas requeridas y luego actualizándolas. Tu script es más claro.
// Compare and add number of rows if needed
nrows1 = N Rows( dt1 );
nrows2 = N Rows( dt2 );
If( nrows2 < nrows1,
dt2 << Add Rows( nrows1 - nrows2 )
);
// Update dt2
Data Table( dt2 ) << Update( With( Data Table( dt1 ) ) );
Close( dt1 );
dt2 << save();
Re: El nuevo script de actualización de tabla de JMP 18 sobrescribe la tablaEl peligro de este script: se hereda mediante concatenación:
usuario A: importa un archivo Excel
usuario B: concatena 2 archivos
Usuario C: se pregunta por los datos faltantes e intenta "Actualizar tabla".
¿ Deshabilitar el script "Actualizar tabla"?
Por favor vota aquí: Opción para deshabilitar la creación del script "Actualizar tabla"
Re: El nuevo script de actualización de tabla de JMP 18 sobrescribe la tablaHola, me gusta mucho esta solución, pero tengo una pregunta: cuando actualizo una tabla con este script, se agrega automáticamente el script genérico de actualización de tabla, que puede romper las columnas de fórmula. ¿Hay alguna forma de desactivar la generación automática del nuevo script de actualización de tabla que se agrega a la tabla JMP?
Re: El nuevo script de actualización de tabla de JMP 18 sobrescribe la tablaPuede evitarlo eliminando o sobrescribiendo el script "Actualizar tabla" dentro del script. Aquí tiene una solución si su script "Actualizar tabla" personalizado se llama "Actualizar tabla".
dt = Current Data Table();
update_script = dt << Get Script( "Update Table" );
dt << Delete Scripts( {"Update Table"} );
dtnew = dt << Run Script( "Source" );
dt << Select All Rows << Delete Rows;
dt << Concatenate( dtnew, Append to first table );
Close( dtnew, NoSave );
Eval(
Substitute(
Expr(
dt << Set Property( "Update Table", __update_script__ )
),
Expr( __update_script__ ), Name Expr( update_script )
)
);
O puede nombrar su script de otra manera ("Actualizar") y simplemente incluir una línea que elimine "Actualizar tabla" después de la actualización.
dt = Current Data Table();
dtnew = dt << Run Script( "Source" );
dt << Select All Rows << Delete Rows;
dt << Concatenate( dtnew, Append to first table );
Close( dtnew, NoSave );
dt << Delete Scripts( {"Update Table"} );