Hola, tengo un "nombre predeterminado aquí (1)" en un script JSL principal que "incluye" posteriormente algunos scripts JSL posteriores. Algunos de estos JSL posteriores están cifrados para su visualización únicamente.
Cuando ejecuto el script JSL principal, aparece un error:
"Nombre sin resolver: {13} en acceso o evaluación de ' ', " " /*###*/"
¿Es esto un error? (JMP 14.3.0)
¿Por qué debería cerrarse en un script cifrado? Ciertamente no quiero descifrar los otros scripts JSL debido al uso de este comando. De lo contrario, ¿hay alguna manera de evitar esto? Tengo cientos de globales, por lo que esperaba evitar un espacio de nombre específico para cada uno.
¡gracias! DJ
Esto es sólo una suposición, pero lo que te puedes encontrar podría ser un error de alcance. Cuando uno usa
Names Default To Here( 1 );
JMP literalmente crea un espacio de nombres llamado Aquí y convierte todas las variables sin ámbito de
Variable Name = 1;
a
Here:Variable Name = 1;
La cuestión del alcance puede surgir con una sintaxis de alcance protegida.
JSL que anteriormente no tenía especificados los nombres predeterminados aquí (1), las siguientes declaraciones de asignación eran equivalentes
Y=1;
::Y=9;
Show(Y, ::Y);
.El resultado de este JSL es:
Y = 9;
Y = 9;
Sin embargo, con los nombres predeterminados aquí (1) especificados
Names Default To Here( 1 );
Y = 1;
::Y = 9;
Show( Y, ::Y, here:Y );
da los resultados
Y = 1;
Y = 9;
here:Y = 1;
Todas mis divagaciones sobre este tema me llevan a suponer que en algún lugar está su código cifrado, dos puntos dobles, se ha especificado el alcance "::" y luego se hace referencia sin especificar los dos puntos dobles. Con los nombres predeterminados aquí (1) especificados, la referencia sin dos puntos dobles producirá un nombre de variable que JSL no ha visto antes y generará un error de excepción.