Problème d'exécution du script<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut,
Quelqu'un d'autre a-t-il rencontré ce problème lorsqu'une partie d'un script ne s'exécutera pas correctement lorsque le script entier est exécuté, mais s'exécutera correctement lors de l'exécution ligne par ligne Je l’ai expérimenté quelques fois avec JMP 7 et 11. Je voulais simplement préciser s'il s'agissait d'une erreur de syntaxe, ou peut-être de paramètres ou d'une logique de code en mon nom, et pas simplement d'un bogue dans JMP?
La dernière fois que j'ai remarqué que c'était avec la définition de formules de colonnes. Je concatène des caractères, puis j'effectue la nouvelle colonne numérique pour qu'elle soit utilisée dans d'autres calculs. Les colonnes A et B sont des caractères sans alphabet. Lorsque je l'exécute ligne par ligne, il s'exécute comme il se doit. Toutefois, l'exécution de l'intégralité du script entraîne l'affichage d'une colonne vide.
Pensées?
dt1 << add multiple columns( "Col C" after( "Col B"), character, nominal );
Column( "Col C)<<Formula( Concat(:Name( "Col A" ),:Name( "Col B" ) ));
Column( "Col C" )<< delete formula;
Column( "Col C" )<< Data Type( Numeric ) << Modeling Type( Continuous );
J'ai également remarqué ce problème avec les scripts qui sélectionnent et filtrent les lignes en fonction d'instructions conditionnelles spécifiques.
Re: problème d'exécution de scriptLorsque vous avez remplacé Wait () par une formule d'exécution, le script s'est-il exécuté?
Je pourrais reproduire le problème que vous avez trouvé, peut-être que cette approche légèrement différente fonctionnerait pour vous?
Dans ce cas, je n'ai pas utilisé "ajouter plusieurs colonnes", puis j'ai déplacé la colonne au début de la ligne.
les noms par défaut ici (1);
dt = nouvelle table ();
dt << Nouvelle colonne ("A", Caractère, Nominal, Valeurs définies ({"1", "2", "3"}));
dt << Nouvelle colonne ("B", Caractère, Nominal, Valeurs définies ({"4", "5", "6"}));
dt << Nouvelle colonne ("C", caractère, Nominal, formule (: A ||:
);
: C << supprimer la formule ();
: C << type de données (numérique) << set Type de modélisation (continu);
dt << Aller à (C);
dt << Déplacer les colonnes sélectionnées ("to first");
Re: problème d'exécution de scriptMerci pour les réponses rapides les gars!
Malheureusement, j'ai également ces lignes. Je les ai peut-être supprimés accidentellement en simulant le pseudo-code.
Voici un meilleur extrait de code:
dt1 << add multiple columns( "Bioburden", 1, after( "Bioburden B"), character, nominal );
Column( "Bioburden")<
dt1 << Run Formulas;
Column( "Bioburden ")<< delete formula;
wait(1);
Column( "Bioburden )<< Data Type( Numeric ) << Modeling Type( Continuous );
dt1 << delete column( :Name( "Bioburden A" ) );
dt1 << delete column( :Name( "Bioburden B" ) );
Je n'ai pas les formules de deuxième exécution () après avoir supprimé ma formule à la quatrième ligne. Je ne l'ai jamais utilisé comme ça avant.
Re: problème d'exécution de scriptLe problème est que la formule de colonne n'est pas complètement évaluée avant la prochaine étape.
dt << exécuter des formules (); s'assure que les formules sont évaluées avant de passer à l'étape suivante. Dans mes mains, cela fonctionne beaucoup mieux que d’utiliser wait (1);
dt1 = table de données actuelle ();
dt1 << ajoute plusieurs colonnes ("C", 1, après (:
, caractère);
Colonne ("C") << Formule (Concat (: Nom ("A"), Nom: "Nom (" B ")));
dt1 << exécuter des formules ();
Colonne ("C") << supprimer la formule;
dt1 << exécuter des formules ();
Colonne ("C") << Type de données (Numérique) << Type de modélisation (Continu);
Re: problème d'exécution de scriptUne formule de colonne est calculée de manière asynchrone, votre script continuera donc même si la formule n'a pas terminé son évaluation. Pour vous assurer que votre script continue uniquement à l'issue de l'évaluation de la formule, vous pouvez envoyer le message Exécuter les formules à la table de données:
Colonne ( "Col C ) << Formule ( Concat ( : prénom ( "Cola" ) ,: prénom ( "Col B" ) )) ;
dt << Exécuter les formules;