Error fatal en JMP16Esto no es una pregunta, solo genera conciencia sobre un problema que noté recientemente en mis scripts desde que pasé a JMP16, es decir, supongo que Es el espacio de nombres (...) no devolvería un valor verdadero para un espacio de nombres eliminado, pero sí lo hace en JMP16.2 (pero no en JMP14.3)
Debido a esto, el siguiente script falla JMP16.2:
ns = New Namespace();
ns:ns = New Namespace();
ns:ns << Delete Namespace();
Show( Is Namespace( ns:ns ) );
If( Is Namespace( ns:ns ),
ns:ns:__item__ = 4;
);
Necesitaba modificar mis scripts al equivalente de esto para solucionar el problema:
ns = New Namespace();
ns:ns = New Namespace();
ns:ns << Delete Namespace();
Show( Is Namespace( ns:ns ) );
If( Is Namespace( ns:ns ) & !Is Missing( ns:ns << Get Name ),
ns:ns:__item__ = 4;
);
Automatización y secuencias de comandosRe: Error fatal en JMP16¿Alguna actualización aquí?
Suena como un candidato para Pequeñas trampas en Jmp y JSL ...
Re: Error fatal en JMP16En realidad acabo de recordar por qué... El espacio de nombres existe observará el valor de la variable y le dirá si el valor puede representar un espacio de nombres, mientras que es espacio de nombres debería indicar si la variable es directamente un espacio de nombres o una referencia de espacio de nombres:
Debido a esto, este código falla:
ns = New Namespace( "test ns" );
ns:item = "variable";
ns name = "test ns";
If( Namespace Exists( ns name ),
Show( ns name:item )
);
Mientras que esto no:
ns = New Namespace( "test ns" );
ns:item = "variable";
ns name = "test ns";
If( Is Namespace( ns name ),
Show( ns name:item )
);
Re: Error fatal en JMP16¡Jaja, no leí tu publicación con mucha atención!Tienes razón en que esto parece funcionar, pero tengo la vaga sensación de que no utilicé este método por alguna razón en mi código, aunque no recuerdo por qué en este momento.
Re: Error fatal en JMP16Me refiero a Namespace Exists() que parece diferir de Is Namespace (o tal vez me falta algo aquí)
Names Default To Here(1);
Clear Log();
Delete Namespaces();
ns = New Namespace();
ns:ns = New Namespace();
Show(Namespace Exists(ns:ns), Is Namespace(ns:ns));
ns:ns << Delete Namespace();
Show(Namespace Exists(ns:ns), Is Namespace(ns:ns));
/*Namespace Exists(ns:ns) = 1;
Is Namespace(ns:ns) = 1;
Namespace Exists(ns:ns) = 0;
Is Namespace(ns:ns) = 1;*/
Re: Error fatal en JMP16@jthi , lo hace para un espacio de nombres simple, pero no cuando se proporciona un espacio de nombres con alcance, como se muestra a continuación:
ns = New Namespace();
ns:ns = New Namespace();
ns:ns << Delete Namespace();
Show( Is Namespace( ns:ns ) );
Re: Error fatal en JMP16Muchas gracias por esta información. ¡Un desarrollador de JMP investigó y registró los problemas que encontró para poder corregirlos en una versión futura!
Re: Error fatal en JMP16Gracias por encontrar esto. Pude replicar esto y envié el informe al soporte de JMP para que lo investigue.
Dan
Gestión de productos JMP.
Re: Error fatal en JMP16¡Buena atrapada! Espero que no sea demasiado tarde para la próxima 17 beta.
Re: Error fatal en JMP16Namespace Exists() parece devolver 0 para el espacio de nombres eliminado.
Re: Error fatal en JMP16Sí, lo informé hoy también.Publicaré aquí cualquier actualización, pero supongo que el equipo probablemente ya esté al tanto del problema.
Re: Error fatal en JMP16¿Se ha informado de esto a la gente de soporte de JMP?