Attendre (0) vs Attendre (n) vs Exécuter vs TerminerJ'ai des tables de données très volumineuses et en constante évolution, j'ai donc des problèmes avec les formules qui ne se terminent pas. J'aimerais que JMP intègre simplement un mécanisme pour empêcher les scripts de continuer jusqu'à ce que chaque ligne soit terminée, mais il y a peut-être une raison pour ne pas le faire à laquelle je ne pense pas. J'utilise généralement une commande wait(n) (par exemple wait(30);), mais à mesure que l'ensemble de données grandit, je dois constamment mettre à jour d'innombrables instances de "wait" à travers les milliers de lignes de code à mesure que les tables deviennent trop grandes pour certains. lignes de code pour terminer l'évaluation. Plus tard, j'ai pensé avoir appris cela wait(0); serait dynamique. Il faudrait attendre aussi longtemps que nécessaire pour terminer l'évaluation avant de passer à la ligne suivante, j'ai donc tout changé en wait(0), mais maintenant de nombreuses lignes ne parviennent pas à se terminer et donc le script est interrompu. Ai-je eu tort de penser que wait(0); la commande serait dynamique comme je l'ai décrit ? J'ai essayé les commandes "Exécuter" et "Terminer" mais aucune n'a fonctionné. Je suis revenu et j'ai mis, par exemple, un wait(30); au même endroit et cela a fonctionné à nouveau... alors suis-je coincé avec ces incréments de temps statiques que je devrai inévitablement continuer à changer au fil du temps... ou est-ce que je fais quelque chose de mal ici ?
Automatisation et scriptsRe : Attendre(0) vs Attendre(n) vs Exécuter vs TerminerJe pense que si vous avez des formules dans les tableaux que vous rejoignez/mettez à jour, cela pourrait aider. Je pense que je n'ai jamais eu de problèmes directement liés aux tables de données JMP qui m'auraient obligé à utiliser l'attente (la plupart des problèmes étaient liés au fait que certaines variables n'obtenaient pas de valeurs ou à des visualisations dans une nouvelle fenêtre). Je ne connais pas suffisamment de détails techniques sur ce que JMP fait en arrière-plan, alors peut-être pourriez-vous essayer d'envoyer un e-mail à support@jmp.com pour obtenir de l'aide ? Marquer également @Jeff_Perkinson sur la base de cette ancienne réponse . Comment puis-je forcer l'exécution séquentielle de mon script ?
Quelques questions :
Utilisez-vous Current Datatable() pour faire référence aux tables de données ? Quelle version de JMP utilisez-vous ?
Liens:
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 : Attendre(0) vs Attendre(n) vs Exécuter vs TerminerJ'aurais dû préciser qu'il ne s'agit pas seulement d'évaluations de formules, mais également d'actions telles que l'ouverture et la connexion ou la mise à jour d'une autre table, le tri d'une table, etc. Ces commandes fonctionneront-elles sur des éléments qui ne sont pas des formules ?
Re : Attendre(0) vs Attendre(n) vs Exécuter vs TerminerAvez-vous essayé d'utiliser :
dt << Run Formulas();
ou
dt << Rerun Formulas;
d'après ce que j'ai compris, JMP devrait attendre la fin de l'évaluation de la formule avant de continuer.
Autres options possibles : Les formules sont-elles également nécessaires ? Pourriez-vous gérer avec << Définir chaque valeur au lieu de formules ? Peut-être aussi utiliser dt << Begin Data Update ; et dt << Fin de la mise à jour des données ; pourrait être utile.
Ré: Attendre(0) vs Attendre(n) vs Exécuter vs TerminerEn général, j'ai utilisé << exécuter des formules dans mes scripts.
Mais je suis d’accord avec ce qu’a écrit @RVhydrA .
D'après ce qui est écrit dans l'index des scripts, wait(0) devrait faire le même travail :

Ré: Attendre(0) vs Attendre(n) vs Exécuter vs Terminer- Utilisez wait(0) pour faire apparaître les fenêtres et faire fonctionner les boutons pendant une boucle.
- Utiliser < < i>
- Utilisez wait(1) pour ralentir l'exécution d'un script, peut-être pour visualiser une progression des modifications.
Les formules de table de JMP sont évaluées en arrière-plan, lorsque JMP est inactif. Wait( n > 0 ) fait que JMP est inactif afin que les formules puissent être évaluées. L'évaluation de la formule pendant le temps d'inactivité est assez lente ; en utilisant dt< <>
De nombreuses commandes de table de données ont le <
Le temps d'inactivité de Wait(n) permet au système d'exploitation de mettre à jour l'affichage et d'envoyer les frappes de touches et les clics de souris à votre programme. Si vous écrivez une boucle sans temps d'inactivité wait(0) qui ouvre et ferme les plates-formes, vous ne verrez aucune activité sur l'écran. Si vous avez besoin de voir les fenêtres s'ouvrir, un wait(0) est approprié. Il y a également une petite pénalité de temps pour wait(0), même si rien ne se passe.