Sai perché il mio script viene eseguito completamente quando lo eseguo manualmente ma non funziona quando lo eseguo da un comando nella barra degli strumenti?Ciao ragazzi,
Ho questo script che funziona al 100% quando lo eseguo manualmente.
Quando lo eseguo dalla barra degli strumenti (automaticamente) non esegue l'ultima sezione.
Hai un'idea del perché questo sta accadendo?
Ho aggiunto un commento nello script nel punto non funziona più:
//PARTENDO DA QUI LO SCRIPT NON FUNZIONA IN MODALITÀ BARRA DEGLI STRUMENTI
//Script for GRR Anlaysis for Qual Data
names = {};
//prueba={};
RepeatabilityData = {};
ReproducibilityData = {};
GaugeRRData = {};
ParttoPartData = {};
NDCData = {};
Datos_table = Current Data Table();
For( i = 1, i <= N Col(), i++,
Insert Into( names, Column Name( i ) )
);
dlg1 = Dialog(
Title( "GR&R" ),
"Select Tests",
vlist( selectiontests = List Box( names ) ),
"Select Channel Column",
vlist( selectionchannel = List Box( names ) ),
"Select Category (Pre/Post) Column",
vlist( selectioncategory = List Box( names ) ),
"select Devices Number Column",
vlist( selectionSN = List Box( names ) ),
synch = Check Box( "Generate Journal", 0 ),
hlist( button( "OK" ), button( "Cancel" ) )
)
;
if (dlg1["Button"]==1,
column(dlg1["selectionchannel"])<<SET modeling="" type="">0.4,
ListDelta[l]<<SET property=""></SET></SET>Automazione e scriptingRi: Sai perché il mio script viene eseguito completamente quando lo eseguo manualmente ma non funziona quando lo eseguo da un comando nella barra degli strumenti?CIAO @CrownofTears ,
quando ho avuto questi problemi in passato ho scoperto che l'aggiunta di Wait (0.1) prima del ciclo e alla fine di ogni ciclo lo faceva funzionare. nel tuo caso non ho un evidente sospetto per il comportamento lento. metterei semplicemente un Wait (0.1) dopo ciascuno; nell'ultimo ciclo e vedi se funziona
questo risolve il problema che a volte jmp passa al passaggio successivo senza assicurarsi che quello precedente sia terminato.
Ri: Sai perché il mio script viene eseguito completamente quando lo eseguo manualmente ma non funziona quando lo eseguo da un comando nella barra degli strumenti?@CrownofTears - troppo tardi, suppongo, ma prova ad aggiungere
TabData << RunFormulas;
al posto del commento. Le formule di colonna di JMP vengono eseguite quando JMP è inattivo, pertanto l'esecuzione di una sezione alla volta consentirà la valutazione delle formule. L'aggiunta di istruzioni di attesa potrebbe consentire alle formule di avere tempo di inattività sufficiente per essere completate, ma è impossibile scegliere il tempo di attesa perfetto. <
Col Std Dev(As Column(ListDelta[l]))
non lo sta capendo.
Ri: Sai perché il mio script viene eseguito completamente quando lo eseguo manualmente ma non funziona quando lo eseguo da un comando nella barra degli strumenti?Ciao @Craige_Hales , dovremmo aggiungere esattamente il
TabData << RunFormulas;
Dopo questo commento?
//STARTING FROM HERE THE SCRIPT DOES NOT RUN IN TOOLBAR MODE
se sì, l'ho già fatto e non ha funzionato 
Ri: Sai perché il mio script viene eseguito completamente quando lo eseguo manualmente ma non funziona quando lo eseguo da un comando nella barra degli strumenti?(Sì, era quello che intendevo.)
Sto indovinando.
Ricevi messaggi nella finestra di registro quando fallisce? Potresti aggiungere istruzioni print() per isolare l'errore.
La mia prossima ipotesi è che la tabella dati corrente() non stia facendo quello che ti aspetti. Prova a utilizzare l'ambito esplicito della tabella dati invece di dipendere da CurrentDataTable.
Dipendere da CurrentDataTable è un modo fragile per creare codice perché
- può cambiare quando un'altra tabella diventa corrente (il che sembra probabile con l'apertura di una nuova finestra)
- può essere diverso in contesti diversi (il che sembra probabile con il contesto di una barra degli strumenti in gioco)
Un'altra cosa da provare: deseleziona "usa qui lo spazio dei nomi" nella barra degli strumenti per vedere se funziona. Anche questo ci dirà qualcosa.