Aspetta(0) vs Aspetta(n) vs Esegui vs FineHo tabelle di dati molto grandi e in costante crescita, quindi ho problemi con le formule che non finiscono. Vorrei che JMP integrasse semplicemente un meccanismo per impedire agli script di continuare fino al termine di ogni riga, ma forse c'è un motivo per non farlo a cui non sto pensando. In genere utilizzo un comando wait(n) (ad esempio wait(30);) tuttavia man mano che il set di dati cresce devo costantemente aggiornare innumerevoli istanze di "wait" tra le migliaia di righe di codice poiché le tabelle diventano troppo grandi per alcuni righe di codice per completare la valutazione. In seguito ho pensato di averlo imparato wait(0); sarebbe dinamico. Aspetterebbe tutto il tempo necessario per completare la valutazione prima di passare alla riga successiva, quindi ho cambiato tutto in wait(0), ma ora molte righe non vengono completate e quindi lo script si interrompe. Ho sbagliato a pensare che l'attesa(0); il comando sarebbe dinamico come ho descritto? Ho provato i comandi "Esegui" e "Fine" ma nessuno dei due ha funzionato. Sono tornato indietro e ho inserito, ad esempio, wait(30); in un posto e ha funzionato di nuovo.. quindi sono bloccato con questi incrementi di tempo statici che dovrò inevitabilmente continuare a cambiare nel tempo.. o sto facendo qualcosa di sbagliato qui?
Automazione e scriptingRe: Aspetta (0) vs Aspetta (n) vs Esegui vs FinePenso che se hai delle formule nelle tabelle che stai unendo/aggiornando, potrebbe essere d'aiuto. Penso di non aver mai avuto problemi con le tabelle dati direttamente correlate a JMP che mi avrebbero richiesto di utilizzare l'attesa (la maggior parte dei problemi erano legati ad alcune variabili che non ottenevano valori o con visualizzazioni in una nuova finestra). Non conosco abbastanza dettagli tecnici su cosa sta facendo JMP in background, quindi potresti provare a inviare un'e-mail a support@jmp.com per ricevere assistenza? Taggando anche @Jeff_Perkinson in base a questa vecchia risposta Come posso forzare l'esecuzione del mio script in sequenza?
Un paio di domande:
Stai utilizzando Current Datatable() per fare riferimento ai datatable? Quale versione di JMP stai utilizzando?
Collegamenti:
https://www.jmp.com/support/help/en/15.2/index.shtml#page/jmp/scripting-data-tables.shtml#ww2071832
https://www.jmp.com/support/help/en/15.2/index.shtml#page/jmp/scripting-numbers-strings-arrays-and-lists.shtml#
Re: Aspetta (0) vs Aspetta (n) vs Esegui vs FineAvrei dovuto specificare che non si tratta solo di valutazioni di formule ma di azioni come l'apertura, l'unione o l'aggiornamento di un'altra tabella, l'ordinamento di una tabella, ecc. Questi comandi funzioneranno su cose che non sono formule?
Re: Aspetta (0) vs Aspetta (n) vs Esegui vs FineHai provato a utilizzare:
dt << Run Formulas();
O
dt << Rerun Formulas;
per quanto ne so, JMP dovrebbe attendere il completamento della valutazione della formula prima di continuare.
Altre opzioni possibili: Sono necessarie anche le formule? Potresti farcela con << Imposta ciascun valore anziché le formule? Potrebbe anche essere usato dt << Begin Data Update ; e dt < ; potrebbe essere utile.
Re: Attendi(0) vs Attendi(n) vs Esegui vs FinisciIn generale, ho utilizzato le formule <
Ma sono d'accordo con quanto scritto da @RVhydrA .
Da quanto scritto nell'indice di scripting, wait(0) dovrebbe svolgere lo stesso lavoro:

Re: Attendi(0) vs Attendi(n) vs Esegui vs Finisci- Utilizzare wait(0) per far apparire le finestre e far funzionare i pulsanti durante un ciclo.
- Utilizzare < < i>
- Utilizzare wait(1) per rallentare l'esecuzione di uno script, ad esempio per visualizzare una progressione di modifiche.
Le formule di tabella di JMP vengono valutate in background, quando JMP è inattivo. Wait( n > 0 ) fa sì che JMP sia inattivo in modo che le formule possano essere valutate. La valutazione della formula del tempo di inattività è piuttosto lenta; usando dt< <>
Molti comandi della tabella dati hanno il carattere <
Il tempo di inattività Wait(n) consente al sistema operativo di aggiornare il display e inviare sequenze di tasti e clic del mouse al programma. Se si scrive un ciclo senza wait(0) tempo di inattività che apre e chiude le piattaforme, non si vedrà alcuna attività sul display. Se si ha bisogno di vedere le finestre aprirsi, wait(0) è appropriato. C'è anche una piccola penalità di tempo per wait(0), anche se non succede nulla.