Salut tout le monde,
Je travaille avec Application Builder et j'ai beaucoup de fenêtres de modules et de scripts requis. Je me demande s'il existe un moyen "d'envoyer" ou de "pousser"/"extraire" des variables vers et depuis différents espaces de noms de script.
Jusqu'à présent, j'ai défini la plupart des variables sur l'espace de noms Application, mais cela commence à être très occupé et je préférerais avoir les scripts sous leurs modules pertinents où les variables sont référencées sur l'espace de noms Application selon les besoins. Une solution consisterait à définir des variables globales, mais je m'inquiète des problèmes potentiels futurs liés à la dénomination des variables. Y a-t-il un moyen de contourner ceci? Alternativement, existe-t-il un moyen de configurer "Names Default to Here" ou quelque chose de similaire pour que les variables que je définis soient par défaut dans l'espace de noms Application et puissent être référencées par tous les scripts de module ?
J'apprécie toutes les idées!
salut @EstelleS -
Dans n'importe quel script d'application (au niveau de l'application ou au niveau du module), vous pouvez accéder à l'espace de noms d'application avec :
appNS = thisApplication<<Get Namespace;
Avec cela, vous devriez être en mesure de définir/obtenir explicitement des valeurs de variables au niveau de l'application.
Les variables non délimitées dans un script de module ne seront visibles que dans le module donné par défaut.Si vous avez besoin qu'un module accède aux variables d'un autre module, le premier module devra avoir une référence au second.Par exemple, vous pouvez demander à module1 de créer une instance de module2 avec :
module2 << CreateInstance(thisModuleInstance);
Les variables 'thisApplication' et 'thisModuleInstance' sont des variables automatiques qui font référence à l'application et à l'instance de module (actuelle).Désormais, l'instance module2 peut accéder aux variables de l'instance module1 en accédant à l'espace de noms du module qui a été transmis :
OnModuleLoad({callingModule},
ns = callingModule << Get Namespace;
);
J'espère que ça aide!
-Dan