He creado una función JSL personalizada y la he cargado en el entorno global. A continuación, en la interfaz del Generador de gráficos, utilicé la función "Script personalizado" para incorporarla al script del gráfico. Finalmente, guardé el script del Generador de gráficos en la tabla de datos (como un script de tabla).
Cuando ejecuto manualmente el script del Generador de gráficos desde la tabla de datos (haciendo clic en el botón de script de la tabla), todo funciona a la perfección: la función personalizada se reconoce y el gráfico se genera correctamente.
Sin embargo, cuando intento ejecutar el mismo script de tabla programáticamente usando el Run Script() función (por ejemplo, dt << Run Script("Graph Builder")), el script falla porque no puede encontrar mi función personalizada. Parece que Run Script() ejecuta el script en un contexto aislado que no tiene acceso a mi función definida globalmente.
names default to here(1);
dt=current data table();
dt<
<RUN script=""></RUN>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/106823i91CFAE42C2887E25/AggregateHare95_0-1781704169868.png" role="button" title="AggregateHare95_0-1781704169868.png" alt="AggregateHare95_0-1781704169868.png" /></span></SPAN></SPAN></SPAN></P> <P class="ds-markdown-paragraph"><SPAN class="">Curiosamente, las funciones integradas de JMP se reconocen correctamente, pero mi función definida por el usuario no.</SPAN></P> <P class="ds-markdown-paragraph"><SPAN class="">¿Alguien más ha experimentado este comportamiento? ¿Hay alguna manera de hacerlo?<SPAN> </SPAN></SPAN><CODE>Run Script() ¿Debo ejecutar el script de la tabla en el mismo espacio de nombres global para que mi función personalizada sea visible? Cualquier solución alternativa o explicación será muy apreciada.
Podrías anteponer :: (o global:) a la llamada a tu función dentro del script de la tabla para acceder a ella desde el espacio de nombres global. También podrías considerar usar una nueva función personalizada con un espacio de nombres específico para tu función y modificar el script de la tabla en consecuencia.
¡Gracias, tío! Eres un genio; una solución tan sencilla, y funcionó a la perfección.