Strano errore durante l'esecuzione di JSL come componente aggiuntivo o script.Ciao a tutti,
Ho uno script che ho scritto e che ho trasformato in un componente aggiuntivo. Le cose funzionavano alla grande l'ultima volta che l'ho usato, intorno a novembre 2023. Lo sto eseguendo di nuovo e ricevo un errore molto strano che si verifica quando lo eseguo come componente aggiuntivo, ma non funziona Ciò non accade quando eseguo il file JSL da solo.
Pertanto, lo script esegue alcuni modelli e genera una finestra di output che dovrebbe mostrare i risultati di ogni esecuzione dell'ottimizzazione graficamente e come tabella. L'output dovrebbe essere simile a questo (è stato eseguito dallo script stesso):

La finestra di output viene generata da una tabella dati che raccoglie tutte le statistiche di adattamento dalla piattaforma di modellazione.

Quindi, ancora una volta, la sceneggiatura funziona alla grande e fa tutto ciò che dovrebbe. Quando poi lo creo come file jmpaddin e lo installo in JMP, succede qualcosa e il codice si confonde e invece di fare riferimento alla tabella di output, torna alla tabella dati originale che contiene le mie Y e X che sto utilizzando per la modellistica. Di conseguenza, la parte del generatore di grafici della finestra di output è vuota e ricevo un errore da JMP che la colonna :Tune Run non esiste (non esiste nella tabella dei dati originale, ma esiste nella tabella dei dati di output ).
Questo è l'output per lo stesso tipo di modellazione, ma eseguito come componente aggiuntivo anziché JSL, senza generatore di grafici:

Inoltre, quando si accede all'Elenco finestre nella finestra principale di JMP, è possibile vedere che, nell'istanza in cui l'ho eseguito come componente aggiuntivo, è stata generata la finestra Risultati foresta Bootstrap dalla tabella dati originale T20-XL. Quindi naturalmente non c'è alcuna colonna :Tune Run in quella tabella di dati. Tuttavia, quando lo eseguo come JSL diretto, genera correttamente la finestra di output (Bootstrap Forest Results 2) dalla tabella dei dati di output di riepilogo come previsto.

Questo è l'errore che ottengo:

E il rapporto di registro mostra quanto segue:


Non riesco a capire cosa c'è che non va e perché la versione del componente aggiuntivo sta tentando di funzionare con la tabella dati originale anziché con la tabella dati di output di riepilogo che dovrebbe. Inoltre, non capisco perché funzionerebbe eseguirlo direttamente dal file JSL, ma come componente aggiuntivo non funziona affatto.
Qualcun altro ha riscontrato questo problema? Se sì, come lo hai corretto e sei riuscito a capire come è successo in primo luogo?
Grazie!,
DS
Automazione e scriptingEsplorazione e visualizzazione dei datiModellazione predittiva e machine learningfinestreRi: Strano errore durante l'esecuzione di JSL come componente aggiuntivo o script.Puoi inviare il messaggio del Costruttore di grafici a una tabella dati specifica?
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
);
dt << Costruttore di grafici(...
Ri: Strano errore durante l'esecuzione di JSL come componente aggiuntivo o script.Ciao @jthi ,
Sì, posso, ma penso che il problema sia qualcosa di diverso: qualcosa con l'allocazione e l'assegnazione della memoria.
Il motivo per cui lo penso è perché sto eseguendo due istanze di JMP Pro sulla mia macchina. quindi ho due JMP Home Windows: l'originale e poi un altro con [2] aggiunto al nome della finestra Home. Quando provo a eseguire il componente aggiuntivo nella seconda istanza di JMP, viene visualizzato l'errore, ma non quando lo eseguo nella prima istanza di JMP. Penso che ci sia un bug che non gestisce correttamente le cose quando si esegue una seconda istanza di JMP.
Una volta non lo faceva. Spesso eseguo due istanze di JMP, una per lavorare sui dati in background e l'altra per averle a disposizione per lavorare sui nuovi dati che le persone mi forniscono. Provo a eseguire la modellazione nella seconda istanza in modo che se faccio doppio clic su un file jmp, si aprirà nella prima istanza di JMP e mi consentirà di lavorarci sopra con la modellazione in esecuzione in background nell'altra istanza . Penso che potrebbe essere successo qualcosa nell'ultimo aggiornamento di JMP perché prima non si era mai verificato questo problema.
Grazie!,
DS
Re: Strano errore nell'esecuzione di JSL come componente aggiuntivo anziché come script.Come stai costruendo il tuo componente aggiuntivo? Forse forzare qui il namespace lo sta facendo fallire come componente aggiuntivo (non so perché non sarebbe dovuto accadere prima)?

Re: Strano errore durante l'esecuzione di JSL come componente aggiuntivo anziché come script.Ciao @jthi ,
Creo il mio componente aggiuntivo nel solito modo: creo un file .def, lo installo e poi modifico la barra degli strumenti in base alle esigenze del componente aggiuntivo. Sto eseguendo i miei componenti aggiuntivi come ho sempre fatto. Ho provato a modificare lo spazio dei nomi "Here" deselezionando o selezionando la casella, ma non sembra risolvere il problema in alcun modo.
Dopo aver ricontrollato, ora non riesco a eseguire il componente aggiuntivo durante una singola istanza di JMP. Continuo a ricevere gli stessi errori. Forse è quello che aveva commentato @Craige_Hales , ma se così fosse, non so come risolvere il problema o perché qualcosa sia improvvisamente cambiato e il componente aggiuntivo non funzioni correttamente. Come accennato in precedenza, il JSL funziona perfettamente.
Grazie!,
DS
Re: Strano errore durante l'esecuzione di JSL come componente aggiuntivo anziché come script.Vedi anche Bug o Funzionalità?? ; sembra che tu stia riscontrando che il contesto di valutazione per il componente aggiuntivo potrebbe non essere lo stesso utilizzato in seguito... anche se dalla tua descrizione non ne sono sicuro. La tabella dati corrente di JMP è nota all'interno di un contesto di valutazione. Di solito uno script utilizza un solo contesto di valutazione, che appartiene alla finestra JSL o a una finestra della piattaforma. Uno script del componente aggiuntivo viene eseguito senza nessuno dei due, quindi ne fornisce uno temporaneo. Quando lo script del componente aggiuntivo termina (molto probabilmente viene eseguito dalla fine), il contesto di valutazione temporaneo scompare. Se ha lasciato una finestra aperta e i pulsanti in quella finestra eseguono altri script, questi utilizzano il contesto di valutazione della finestra, che non conosce quello precedente.
Re: Strano errore nell'esecuzione di JSL come componente aggiuntivo rispetto allo script.Ciao @Craige_Hales ,
Immagino che il problema derivi da ciò che hai descritto. La finestra dei risultati finale generata dal mio codice presenta alcuni pulsanti che eseguono alcune azioni, come rieseguire un adattamento del modello o riavviare il codice. E, poiché il file JSL funziona correttamente, ma il componente aggiuntivo no, deve essere parte della valutazione di cui parlavi.
Quello che non capisco è perché ora si comporta in modo anomalo, mentre prima non lo faceva. Inoltre, non so come risolvere questo problema, perché non so cosa lo abbia causato. Come ho detto, funzionava perfettamente intorno a ottobre 2023.
Tutto il mio codice è fondamentalmente un insieme di Expr() che vengono chiamati ed eseguiti in base alle interazioni dell'utente. Posso condividerlo se vuoi vedere se riesci a riprodurre l'errore.
Potrebbe esserci una preferenza JMP modificata che potrebbe causare questo problema? Sarebbe bello trovare un modo per aggirare il problema, dato che preferisco eseguirlo come componente aggiuntivo piuttosto che come JSL.
Grazie!,
DS