Salve a tutti,
Sto lavorando con Application Builder e ho molte finestre di moduli e script necessari. Mi chiedo se c'è un modo per "inviare" o "spingere" / "tirare" variabili da e verso diversi spazi dei nomi di scripting.
Finora, ho definito la maggior parte delle variabili nello spazio dei nomi dell'applicazione, ma sta iniziando a diventare molto impegnato e preferirei avere gli script nei loro moduli pertinenti in cui le variabili sono referenziate nello spazio dei nomi dell'applicazione secondo necessità. Una soluzione sarebbe la definizione di variabili globali, ma sono preoccupato per potenziali problemi futuri con la denominazione delle variabili. C'è un modo per aggirare questo? In alternativa, c'è un modo per configurare "Nomi predefiniti qui" o qualcosa di simile in modo che le variabili che definisco diventino predefinite nello spazio dei nomi dell'applicazione e possano essere referenziate da tutti gli script del modulo?
Apprezzo qualsiasi intuizione!
Ciao @EstelleS -
All'interno di qualsiasi script dell'applicazione (a livello di applicazione o a livello di modulo) è possibile accedere allo spazio dei nomi dell'applicazione con:
appNS = thisApplication<<Get Namespace;
Con ciò, dovresti essere in grado di impostare/ottenere in modo esplicito valori variabili nell'ambito dell'applicazione.
Le variabili senza ambito all'interno di uno script del modulo saranno visibili solo all'interno del modulo specificato per impostazione predefinita.Se è necessario che un modulo acceda alle variabili all'interno di un altro modulo, il primo modulo dovrebbe avere un riferimento al secondo.Ad esempio, potresti avere module1 creare un'istanza di module2 con:
module2 << CreateInstance(thisModuleInstance);
Le variabili 'thisApplication' e 'thisModuleInstance' sono variabili automatiche che fanno riferimento all'Applicazione e all'istanza del modulo (corrente).Ora, l'istanza module2 può accedere alle variabili nell'istanza module1 accedendo allo spazio dei nomi per il modulo che è stato passato:
OnModuleLoad({callingModule},
ns = callingModule << Get Namespace;
);
Spero che aiuti!
-Dan