JSL: Ayuda con el comportamiento extraño del comando Nuevo scriptHola Scripters,
(W11, 64 bits, JMP Pro 18.1.1)
Estoy experimentando un comportamiento extraño con un script que estoy ejecutando. El script hace varias cosas, pero una de ellas es crear nuevos scripts para agregarlos a la tabla de datos. Tengo que pasarle algunas variables al nuevo script y ejecutarlo en la tabla de datos, fuera del JSL original. Estoy agregando dos nuevos scripts a la tabla de datos. Uno sirve para visualizar los datos con Graph Builder (funciona perfectamente) y el otro para visualizarlos con la plataforma de distribución.
Aquí está el JSL que agrega el script Graph Builder (funciona muy bien, hace exactamente lo que quiero):
Eval(
Eval Expr(
DOETable << New Script(
"Visualize Graphic Results",
Current Data Table()<
<GRAPH builder=""></GRAPH>
<P>De manera similar, aquí está el script para la visualización de Distribución, que no funciona como se esperaba:</P> <CODE class=" language-jsl">Eval(
Eval Expr(
DOETable << New Script(
"Visualize Distribution Results",
Current Data Table()<
<DISTRIBUTION></DISTRIBUTION> <P>Cuando ejecuto el script principal, se agregan los dos nuevos scripts de tabla (nuevamente, el script GB funciona bien), pero cuando intento ejecutar el script de Distribución desde la tabla de datos (triángulo verde), en lugar de mostrar los resultados, abre la ventana de la plataforma de Distribución.</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SDF1_0-1749735408022.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_0-1749735408022.png" style="width: 200px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_0-1749735408022.png" style="width: 200px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_0-1749735408022.png" style="width: 200px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_0-1749735408022.png" style="width: 200px;"><span class="lia-inline-image-display-wrapper" image-alt="SDF1_0-1749735408022.png" style="width: 200px;"><img src="https://us.v-cdn.net/6038925/uploads/images/76843i57FDB333BC7A2A58/SDF1_0-1749735408022.png" role="button" title="SDF1_0-1749735408022.png" alt="SDF1_0-1749735408022.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SDF1_2-1749735475257.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_2-1749735475257.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_2-1749735475257.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_2-1749735475257.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_2-1749735475257.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="SDF1_2-1749735475257.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/76845i1E9571AFD2ACBFEF/SDF1_2-1749735475257.png" role="button" title="SDF1_2-1749735475257.png" alt="SDF1_2-1749735475257.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <P>NOTA: se han eliminado los nombres para proteger a los inocentes ;-).</P> <BR /> <P>En primer lugar, no debería hacer esto, en realidad debería mostrar todas las distribuciones tal como se establecen en el nuevo script (cuando ejecuto el script paso a paso en el JSL principal, funciona).</P> <BR /> <P>Aquí viene lo más extraño. Si abro el nuevo script en la tabla de datos (Editar script) y hago clic en Ejecutar, funciona exactamente como debería.</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SDF1_3-1749735688131.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_3-1749735688131.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_3-1749735688131.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_3-1749735688131.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_3-1749735688131.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="SDF1_3-1749735688131.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/76846iA545DE7F81730152/SDF1_3-1749735688131.png" role="button" title="SDF1_3-1749735688131.png" alt="SDF1_3-1749735688131.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SDF1_4-1749736010450.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_4-1749736010450.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_4-1749736010450.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_4-1749736010450.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="SDF1_4-1749736010450.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="SDF1_4-1749736010450.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/76847i5746AC9063CF5B38/SDF1_4-1749736010450.png" role="button" title="SDF1_4-1749736010450.png" alt="SDF1_4-1749736010450.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <BR /> <P>No entiendo qué estoy haciendo mal: el JSL funciona, pero por alguna razón, al intentar ejecutarlo desde el triángulo verde, no funciona, lo cual no me parece lógico. ¿Me he perdido algo o he cometido algún error al ejecutar una llamada o comando? ¿Se ha encontrado alguien con este comportamiento extraño? De ser así, ¿cómo lo solucionaste?</P> <BR /> <P>Cualquier ayuda será muy apreciada, ¡gracias!</P> <BR /> <P>DS</P> <BR /> <BR /> <BR />
<CODE class=" language-jsl">
<LINGO-LABS id="lingo-labs-879578" slang="en-US" mode="CREATE">
<LINGO-LABEL>Automatización y scripting</LINGO-LABEL>
<LINGO-LABEL>Exploración y visualización de datos</LINGO-LABEL>
</LINGO-LABS>
Re: JSL: Ayuda con el comportamiento extraño del comando Nuevo scriptMi primera suposición es el uso de Column().
La plataforma de distribución tiene un argumento llamado "Columna", algo horrible. Observe cómo se introducen las columnas aquí.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
obj = dt << Distribution(Column(:Age, :Weight));
en comparación con el constructor de gráficos
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Variables(X(:height), Y(:weight)),
Elements(Points(X, Y), Smoother(X, Y))
);
Ver más...
Column() no se usa con el generador de gráficos, usa X(), Y() y así sucesivamente
Re: JSL: Ayuda con el comportamiento extraño del comando Nuevo scriptCreo que probablemente tengas razón. El método evalexpr intentará convertir la sintaxis de columna de la plataforma en una columna. Podría funcionar así:
Expr( Column( DOETable, N Items( ListNames ) ) )
//becomes (untested...)
Column( Expr(DOETable), expr( N Items (ListNames ) ) )
La sintaxis de cada plataforma suele usar una estructura similar a la de una función para agrupar, y cuando el nombre que usa la plataforma coincide con el de una función, resulta confuso. Aun así, sería necesario reorganizar, ya que la expresión debe ser algo que evalúe una constante que pueda insertarse en la expresión.
Re: JSL: Ayuda con el comportamiento extraño del comando Nuevo scriptHola @Craige_Hales y @jthi ,
En realidad, el problema era una mezcla de ambos. Primero, la llamada a Column() no debería haber estado en la llamada a Expr(). Segundo, era necesario usar la referencia correcta a la columna para la plataforma de distribución, pero como lo guardo como un script de tabla de datos dentro del JSL principal, no puedo simplemente referenciar la columna como :"name"n; tengo que compilarlo dentro de Eval Insert() y también Parse() dentro de la llamada a Expr().
Lo que terminó funcionando para la plataforma de Distribución fue lo siguiente:
Eval(
Eval Expr(
Distribution(
Continuous Distribution( Column( Expr( Parse( Eval Insert( ":\!"^ListNames[Nitems(YCols)+1]^\!"" || "n" ) ) ) ) ),
Process Capability( 0 )
)
)
);
Esto creó la referencia de nombre de columna adecuada para la plataforma de distribución y permitió crear un script ejecutable que se podía guardar en la tabla de datos. Un poco engorroso en mi opinión, pero funciona, y eso es lo importante.
¡Gracias por tus sugerencias!
DS