Salut, j'ai un "noms par défaut ici (1)" dans un script JSL principal qui "inclut" plus tard sur certains scripts JSL en aval.Certaines de ces JSL en aval sont cryptées pour l'affichage uniquement.
Lorsque j'exécute le script JSL principal, une erreur s'affiche :
"Nom non résolu : {13} dans l'accès ou l'évaluation de '' , "" /*###*/"
Est-ce un bogue ? (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 un moyen de contourner cela peut-être?J'ai des centaines de globals, 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 pourriez rencontrer pourrait être une erreur de portée.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élimitées de
Variable Name = 1;
pour
Here:Variable Name = 1;
Le problème de portée peut survenir avec une syntaxe de portée avec droits acquis.
JSL qui n'avait pas précédemment spécifié les noms par défaut ici (1), les instructions d'affectation suivantes étaient équivalentes
Y=1;
::Y=9;
Show(Y, ::Y);
.Le résultat de ce JSL est :
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 les noms par défaut à ici (1) spécifiés, la référence sans les deux-points produira un nom de variable que JSL n'a jamais vu auparavant et générera une erreur d'exception.