Le débogueur JSL peut-il entrer dans des fonctions ou des scripts imbriqués ?J'ai défini des points d'arrêt sur mes fonctions ou scripts imbriqués, mais "entrer dans" semble ne rien faire.
Re : Le débogueur JSL peut-il entrer dans des fonctions ou des scripts imbriqués ?Je suppose que la réponse simple est "non" alors.
Dans mon cas, l'utilisateur inspecte/manipule le contenu de dt avant d'exécuter le script factice. Je ne peux pas le forcer à s'exécuter avant que l'utilisateur n'ait terminé.
Espérons que JMP puisse inclure plus de fonctionnalités de threading de débogage standard à l'avenir.
Re : Le débogueur JSL peut-il entrer dans des fonctions ou des scripts imbriqués ?@awoj ,
Je suppose que vous savez comment définir une pause lorsque vous exécutez le débogueur et que le problème est la confusion concernant votre script.
Notez que l'exécution ou le débogage du script que vous avez fourni n'exécute pas le simple script "Dummy Script". Vous trouverez ci-dessous une capture d'écran d'une modification de votre script. Votre script écrit simplement une chaîne de texte, un code JSL valide, la table de données, mais votre script ne l'exécute pas.Lorsque la capture d'écran s'affiche, ajoutez la syntaxe JSL pour exécuter le script de table "Dummy Script" et définissez des points d'arrêt en conséquence. Voir les onglets Globals et Log. La capture d'écran affiche le 2e passage dans la boucle For, c'est-à-dire i=1.
J'espère que cela aide à dissiper votre confusion.
Re : Le débogueur JSL peut-il entrer dans des fonctions ou des scripts imbriqués ?Merci pour la réponse. J'utilise JMP14 et ci-dessous est un exemple simple où un script imbriqué ne peut pas être intégré. Le débogueur n'attend pas l'entrée de l'utilisateur (clic sur le script) et termine simplement l'exécution lorsqu'il atteint la ligne 3. Comment déboguer un tel scénario en workflow continu ?
dt = New Table( "Test", New Column( "Value", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 33, 239, 3, 4] ) ) );
dt << New Script( "Dummy Script",
For( i = 1, i <= NRows( dt ), i++,
If( dt:Value[i] < 50,
Show("Pass"),
Show("Fail");
);
);
);
Re : Le débogueur JSL peut-il entrer dans des fonctions ou des scripts imbriqués ?@awoj ,
Vous n'avez pas mentionné la version de JMP que vous utilisez ni fourni d'exemple de script.
Vous trouverez ci-dessous un exemple de script écrit pour le chapitre 11 de JSL Companion Applications of the JMP Scripting Language, 2nd Edition. Il utilise un Include () pour une fonction de liste personnalisée. Je peux définir des pauses aux lignes 19 et 20 où la fonction est appelée et le débogueur JMP entre dans ce fichier inclus, je peux regarder les valeurs des variables locales, définir des points d'arrêt, etc. Ceci est un exemple simple et il a été testé sur JMP 12, 13 et 14.
Notez que rien ne se passe au niveau de l'instruction Include(), mais à l'emplacement où la fonction est appelée.
Names Default to Here(1);
Delete Symbols();
Include( "$JSL_Companion/11_LCombine_Func.jsl" );
// usage
//--- example #1 --- numeric list arguments
l1 = {1, 2, 3, 4, 5, 3, 5,7};
l2 = {2, 3, 4, 6, 7, 8};
xx=LCombine(l1, l2, "union");
yy=LCombine(l1, l2, "intersect");
show(xx,yy);
Vous devrez fournir plus de détails si vous avez besoin de plus d'aide.
Le fichier de script inclus est joint.