Cómo continuar la ejecución del script si la tabla no existe.Tengo mi tabla de datos principal dividida en algunas tablas usando la función de subconjunto. Luego estoy haciendo algunas operaciones e intentando volver a fusionarlas usando la función de actualización. Pero a veces solo tengo una mesa y, a veces, 2 mesas. ¿Cómo puedo decirle al script que continúe si la segunda tabla no existe?
// Actualizar tablas de datos
Tabla de datos( "Material A") << Actualizar(
Con( Tabla de datos( "Material B") ),
Coincidir columnas( :SN = :SN )
¿Cómo puedo decirle al script que si la tabla Material A o Material B no existe, continúe la ejecución?
Análisis y modelado de datos básicosRe: Cómo continuar la ejecución del script si la tabla no existe.Puedes usar la instrucción Try o puedes verificar si esas tablas existen antes de actualizar. Personalmente, yo realizaría una verificación en lugar de confiar en Try. Además, normalmente es mejor usar variables para almacenar referencias a tablas en lugar de confiar en los nombres de las tablas.
Editar: el uso de Try se vería así ( https://www.jmp.com/support/help/en/17.2/#page/jmp/throw-and-catch-exceptions.shtml )
Try(
Data Table("Big Class") << Update(
With(Data Table("Big Class Families")),
Match Columns(:name = :name)
)
);
y comprobar los nombres de las tablas
tablelist = Get Data Table List() << get name;
// Only join if both are found
If(Contains(tablelist, "Big Class") & Contains(tablelist, "Big Class Families"),
Data Table("Big Class") << Update(
With(Data Table("Big Class Families")),
Match Columns(:name = :name)
)
);
Re: Cómo continuar la ejecución del script si la tabla no existe.Gracias por las soluciones y los consejos para utilizar variables para almacenar referencias a tablas en lugar de confiar en los nombres de las tablas.
Re: Cómo continuar la ejecución del script si la tabla no existe.Si usa variables, también podría usar Is Empty(dtref)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Try(dt2 = Open("$SAMPLE_DATA/Big Class Families"));
Show(Is Empty(dt), Is Empty(dt2));
pero es posible que tengas que usar otros métodos, dependiendo de dónde obtengas tus tablas (puedes encontrar una forma de usar Try() si nada más parece funcionar).