Bonjour, j'ai un "noms par défaut ici (1)" dans un script JSL principal qui "inclut" plus tard sur certains scripts JSL en aval. Certains de ces JSL en aval sont chiffrés à des fins de visualisation uniquement.
Lorsque j'exécute le script JSL principal, une erreur s'affiche :
"Nom non résolu : {13} lors de l'accès ou de l'évaluation de ' ' , " " /*###*/"
Est-ce un bug ? (JMP 14.3.0)
Pourquoi devrait-il s'arrêter sur un script chiffré ? Je ne veux certainement pas déchiffrer les autres scripts JSL à cause de l'utilisation de cette commande. Sinon, y a-t-il peut-être un moyen de contourner ce problème ? J'ai des centaines de globaux, j'espérais donc éviter un espace de noms spécifique pour chacun.
merci! DJ
Ce n’est qu’une supposition, mais ce que vous rencontrez pourrait être une erreur de cadrage. Quand on utilise
Names Default To Here( 1 );
JMP crée littéralement un espace de noms appelé Here et convertit toutes les variables non définies
Variable Name = 1;
à
Here:Variable Name = 1;
Le problème de la portée peut donner lieu à une syntaxe de portée bénéficiant de droits acquis.
JSL pour lequel la valeur Names Default to Here(1) n'était pas spécifiée auparavant, les instructions d'affectation suivantes étaient équivalentes
Y=1;
::Y=9;
Show(Y, ::Y);
.Les résultats de ce JSL sont :
Y = 9;
Y = 9;
Cependant, avec les noms par défaut ici (1) spécifiés
Names Default To Here( 1 );
Y = 1;
::Y = 9;
Show( Y, ::Y, here:Y );
donne les résultats
Y = 1;
Y = 9;
here:Y = 1;
Toutes mes divagations sur ce sujet m'amènent à supposer que quelque part se trouve votre code crypté, un double deux-points, la portée "::" a été spécifiée, puis référencée sans que le double deux-points soit spécifié. Avec la valeur par défaut des noms ici (1) spécifiée, la référence sans les doubles deux-points produira un nom de variable que JSL n'a jamais vu auparavant et générera une erreur d'exception.