Salut tout le monde,
J'ai une question JSL car je suis coincé avec du code sur lequel je travaille en ce moment.
Fondamentalement, ce que je fais, c'est utiliser la plate-forme Special Purpose Space Filling DOE pour générer un DOE dont j'ai besoin pour alimenter une autre routine JSL. Le problème n'est pas de faire exécuter le JSL, mais d'avoir une fenêtre contextuelle d'alerte JMP automatisée qui apparaît à chaque fois.
Vous trouverez ci-dessous le code de base pour générer le DOE :
tuntble = DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ), Load Factors, Set Random Seed( Today() ), FFF Optimality Criterion( MaxPro ),
Space Filling Design Type( Fast Flexible Filling, ndoe_runs ), Simulate Responses( 0 )}
);Je l'ai défini sur "Load Factors" à partir de ma table de facteurs et je génère le nombre d'exécutions ndoe_runs pour le DOE. Ma table de facteurs comprend environ 13 facteurs, dont certains pourrait être constant, c'est-à-dire ne pas changer au cours du DOE. La plate-forme DOE affiche toujours une alerte contextuelle sur les facteurs constants et leur suppression du DOE, ce qui est bien, je peux simplement les réinclure dans le tableau plus tard. C'est ce que je fais dans la partie automatisée du code JSL.
Le problème que je rencontre est que lorsque j'exécute mon code "ligne par ligne", je n'obtiens pas de fenêtre contextuelle, je reçois uniquement la notification suivante dans le journal de la fenêtre de script : "Chaque facteur non constant doit avoir au moins deux niveaux. Arrêter les facteurs de charge. Encore une fois, c'est très bien, et je préférerais que seul cela apparaisse. Mais, lorsque j'exécute mon code plus volumineux dans son ensemble, chaque fois qu'il arrive au stade où il doit générer le DOE, il s'arrête toujours et affiche la fenêtre d'alerte contextuelle. Dès que je clique sur "OK", le code continue et s'exécute comme prévu.
Je préférerais désactiver cette alerte pour mon code uniquement (pas pour JMP dans son ensemble), ou si ce n'est pas une option, demander au code JSL de cliquer sur "OK" pour moi afin de ne pas avoir à le faire manuellement à chaque fois. . Je sais comment faire en sorte que JSL clique sur OK lors de l'exécution de JSL standard, comme dans une fenêtre de rapport, mais je ne sais pas comment accéder au bouton "OK" de la fenêtre d'alerte pour cliquer dessus.
Toute aide est très appréciée.
Merci!,
DS
Salut @ih et @jthi ,
Merci pour vos commentaires rapides et vos idées. Parfois, lorsque vous êtes en pleine programmation, vous manquez la solution évidente. J'aurais aimé que Try() fonctionne, mais cela n'a pas bloqué la fenêtre contextuelle. Alors, je suis parti avec @ih La solution consiste simplement à laisser les colonnes fixes de côté lors de la génération de la conception de remplissage de l'espace, puis à les remettre en place. Rapide et facile, juste quelques lignes de code supplémentaires et cela a fonctionné comme prévu.
Merci encore!,
DS
Vous pouvez vérifier vos données et supprimer toutes les colonnes qui ne varient pas avant de charger les facteurs dans le DOE afin d'éliminer complètement le besoin de la fenêtre contextuelle.
Je ne connais pas très bien la plate-forme JMP DOE et je ne peux pas facilement générer l'alerte que vous recevez. S'il s'agit d'une erreur générée, vous pourriez peut-être essayer d'envelopper le code dans la structure Try. Je ne sais pas si le code que vous souhaitez sera toujours exécuté, mais cela pourrait valoir la peine d'essayer :
Try(
code-you-want-to-execute
,
show(exception_msg)
);