Problema de ejecución de script<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
¿Alguien más ha experimentado este problema donde parte de una secuencia de comandos no se ejecutará correctamente cuando se ejecuta la secuencia de comandos completa, pero se ejecutará correctamente cuando se ejecuta línea por línea. He experimentado esto unas cuantas veces con JMP 7 y 11. Solo quería aclarar si se trata de un error de sintaxis, o tal vez de configuraciones o lógica de código en mi nombre y no solo un error en JMP.
La última vez que lo noté fue con la configuración de fórmulas de columna. Estoy concatenando caracteres y luego haciendo que la nueva columna sea numérica para ser usada en otros cálculos. Col A y B son caracteres sin alfabetos en ellos. Cuando lo ejecuto línea por línea, se ejecuta como debería, sin embargo, ejecutar el script completo da como resultado una columna en blanco.
¿Pensamientos?
dt1 << add multiple columns( "Col C" after( "Col B"), character, nominal );
Column( "Col C)<<Formula( Concat(:Name( "Col A" ),:Name( "Col B" ) ));
Column( "Col C" )<< delete formula;
Column( "Col C" )<< Data Type( Numeric ) << Modeling Type( Continuous );
También he notado este problema con los scripts que seleccionan y filtran las filas en función de declaraciones condicionales específicas.
Re: Script Execution Problemcuando reemplazó el Wait () con una fórmula de ejecución, ¿se ejecutó el script?
Podría reproducir la falla que estaba encontrando, ¿quizás este enfoque ligeramente diferente funcionaría para usted?
En este caso, no usé "agregar varias columnas" y luego moví la columna al frente de la línea al final.
los nombres predeterminados aquí (1);
dt = Nueva Tabla ();
dt << Nueva columna ("A", Carácter, Nominal, Valores establecidos ({"1", "2", "3"}));
dt << Nueva columna ("B", carácter, nominal, valores establecidos ({"4", "5", "6"}));
dt << Nueva columna ("C", carácter, nominal, fórmula (: A ||:
);
: C << eliminar fórmula ();
: C << tipo de datos (numérico) << set Modeling Type (Continuous);
dt << Ir a (C);
dt << Mover las columnas seleccionadas ("a la primera");
Re: Script Execution Problem¡Gracias por las repuestas rápidas, chicos!
Desafortunadamente yo también tengo esas líneas allí. Es posible que los haya borrado accidentalmente mientras me burlaba del pseudo código.
Aquí hay un mejor extracto de código:
dt1 << add multiple columns( "Bioburden", 1, after( "Bioburden B"), character, nominal );
Column( "Bioburden")<
dt1 << Run Formulas;
Column( "Bioburden ")<< delete formula;
wait(1);
Column( "Bioburden )<< Data Type( Numeric ) << Modeling Type( Continuous );
dt1 << delete column( :Name( "Bioburden A" ) );
dt1 << delete column( :Name( "Bioburden B" ) );
No tengo las fórmulas de segunda ejecución () después de eliminar mi fórmula en la cuarta línea. Nunca lo he usado así antes.
Re: Script Execution ProblemEl problema es que la fórmula de la columna no se evalúa completamente antes de que suceda el siguiente paso.
dt << ejecutar fórmulas (); se asegura de que las fórmulas se evalúen antes de permitir que suceda el siguiente paso. En mis manos esto funciona mucho mejor que usar esperar (1);
dt1 = tabla de datos actual ();
dt1 << agregar columnas múltiples ("C", 1, después de (:
, carácter);
Columna ("C") << Fórmula (Concat (: Nombre ("A") ,: Nombre ("B")));
dt1 << ejecutar fórmulas ();
Columna ("C") << eliminar fórmula;
dt1 << ejecutar fórmulas ();
Columna ("C") << Tipo de datos (Numérico) << Tipo de modelado (Continuo);
Re: Script Execution ProblemUna fórmula de columna se calcula de forma asíncrona, por lo que su secuencia de comandos continuará incluso si la fórmula no ha completado la evaluación. Para asegurarse de que su script continúe solo al finalizar la evaluación de la fórmula, puede enviar el mensaje Ejecutar fórmulas a la tabla de datos:
Columna ( "Col C ) << Fórmula ( Concat ( : Nombre ( "Col A" ) ,, Nombre ( "Col B" ) )) ;
dt << Ejecutar fórmulas;