Ciao, ho un "nomi predefiniti qui (1)" in uno script JSL principale che "include" in seguito su alcuni script JSL a valle.Alcuni di questi JSL a valle sono crittografati solo per la visualizzazione.
Quando eseguo lo script JSL principale, viene visualizzato un errore:
"Nome non risolto: {13} in accesso o 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'è un modo per aggirare questo forse?Ho centinaia di globali, quindi speravo di evitare uno spazio dei nomi specifico per ognuno.
Grazie!DJ
Questa è solo un'ipotesi, ma quello che potresti incontrare potrebbe essere un errore di ambito.Quando si usa
Names Default To Here( 1 );
JMP crea letteralmente uno spazio dei nomi chiamato Qui e converte tutte le variabili senza ambito da
Variable Name = 1;
a
Here:Variable Name = 1;
Il problema dell'ambito può derivare da una sintassi dell'ambito nonno.
JSL che in precedenza non aveva i nomi predefiniti qui(1) specificati, 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 Default a 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;
Tutte le mie divagazioni su questo argomento mi portano a supporre che da qualche parte ci sia il tuo codice crittografato, due due punti, "::" è stato specificato lo scopo e quindi si fa riferimento senza che i due punti doppi siano stati specificati.Con i nomi predefiniti su Here(1) specificati, il riferimento senza i due punti doppi produrrà un nome di variabile che JSL non ha mai visto prima e genererà un errore di eccezione.