¿Por qué ::labelslist?Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
labelsList = {"F" = "A", "M" = "B"}; //here namespace
::labelsList = {"F" = "①", "M" = "②"}; // global variable
f = function ({},
{default local},
labelsList = {"F" = "X", "M" = "Y"} ; // local variable
dt:sex << Set Property( "Value Labels", labelsList ) // which variable will JMP pick?
);
f
JMP 19.1: ①,②
JMP 18.2.2 y JMP 20EA: X,Y
Soluciones alternativas:
- usar dt:sexo <
- usar Eval (Eval Expr( ... Expr (lista de etiquetas) ))
Automatización y secuencias de comandos
Re: ¿Por qué ::labelslist?Mucho más difícil de entender fue el mensaje de error inicial:

delete symbols (::labelsList);
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
f = function ({},
{default local},
labelsList = {"F" = "X", "M" = "Y"} ;
dt:sex << Set Property( "Value Labels", labelsList )
);
f
Re: ¿Por qué ::labelslist?El mensaje "Desconocido" indica que JMP detectó un error inesperado y no ofrece una explicación clara. Infórmelo y explique qué cree que debería hacer; un desarrollador tendrá la oportunidad de solucionarlo, ya sea mejorando su funcionamiento o definiendo mejor el mensaje.
Re: ¿Por qué ::labelslist?JMP19 quizás realiza la evaluación en la tabla de datos, por lo que se utiliza un valor global. Cabe preguntarse si dicha evaluación debería realizarse.
La columna almacena la propiedad de columna con los valores proporcionados sin evaluar ni validar los argumentos suministrados. Para agregar propiedades de columna que contengan variables mediante código JSL, el script debe convertir las variables a sus valores reales. Guía de scripting > Tablas de datos > Trabajar con columnas > Establecer u obtener propiedades de columna.
También puedes hacer que JMP falle con JMP19 si envuelves tu variable con {} (JMP18 no fallará y obtendrás un error de intento de asignación ).