Salve, ho un "nome predefinito qui (1)" in uno script JSL principale che successivamente "include" alcuni script JSL downstream. Alcuni di questi JSL downstream sono crittografati per la sola visualizzazione.
Quando eseguo lo script JSL principale, si verifica un errore:
"Nome non risolto: {13} nell'accesso o nella valutazione di ' ', " " /*###*/"
è un insetto? (JMP 14.3.0)
Perché dovrebbe chiudersi su uno script crittografato? Certamente non voglio decrittografare gli altri script JSL a causa dell'utilizzo di questo comando. Altrimenti, c'è forse un modo per aggirare questo problema? Ho centinaia di globali, quindi speravo di evitare uno spazio dei nomi specifico per ognuno.
Grazie! DJ
Questa è solo un'ipotesi, ma quello in cui potresti imbatterti potrebbe essere un errore di ambito. Quando si usa
Names Default To Here( 1 );
JMP crea letteralmente uno spazio dei nomi chiamato Here e ne converte tutte le variabili senza ambito
Variable Name = 1;
A
Here:Variable Name = 1;
Il problema dell'ambito può comportare una sintassi dell'ambito con precedenti.
JSL che in precedenza non aveva specificato Names Default to Here(1), le seguenti istruzioni di assegnazione erano equivalenti
Y=1;
::Y=9;
Show(Y, ::Y);
.I risultati di questo JSL sono:
Y = 9;
Y = 9;
Tuttavia, con i nomi predefiniti su Here(1) specificati
Names Default To Here( 1 );
Y = 1;
::Y = 9;
Show( Y, ::Y, here:Y );
dà i risultati
Y = 1;
Y = 9;
here:Y = 1;
Tutto il mio divagare su questo argomento mi porta a supporre che da qualche parte ci sia il tuo codice crittografato, un doppio punto, è stato specificato l'ambito "::" e quindi si fa riferimento senza che sia specificato il doppio punto. Con Names Default to Here(1) specificato, il riferimento senza i doppi due punti produrrà un nome di variabile che JSL non ha mai visto prima e genererà un errore di eccezione.