スクリプト実行問題<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、
スクリプト全体が実行されるとスクリプトの一部が正しく実行されず、1行ずつ実行されると正しく実行されるという、この問題を他の誰かが経験していますか。私はJMP 7と11でこれを数回経験しました。構文エラーなのか、それとも私の代わりに設定やコードロジックなのかを明確にしたいのですが、JMPのバグではありません。
最近気付いたのは、列式を設定することでした。文字を連結してから、新しい列を他の計算で使用できるように数値にします。A列とB列にはアルファベットが含まれていません。1行ずつ実行すると、想定どおりに実行されますが、スクリプト全体を実行すると空白の列が表示されます。
考えですか?
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 );
また、特定の条件付きステートメントに基づいて行を選択してフィルター処理するスクリプトでこの問題に気付きました。
スクリプト実行の問題Wait()を実行式に置き換えたとき、スクリプトは実行されましたか?
私はあなたが見つけたグリッチを再現することができました、多分このわずかに異なるアプローチはあなたのために働くでしょうか?
この場合、「複数の列を追加」を使用せずに、最後に列を行の先頭に移動しました。
名前のデフォルトはhere(1)です。
dt = New Table();
dt <<新しい列( "A"、文字、公称、設定値({"1"、"2"、"3"}));
dt <<新しい列( "B"、文字、公称、設定値({"4"、"5"、"6"}));
dt <<新しい列( "C"、文字、公称、式(:A ||:B));
:C <<式()を削除する。
:C <<データ型(数値)<< set Modeling Type(Continuous);
dt <<(C)に進みます。
dt <<選択した列を移動( "最初に移動");
スクリプト実行の問題クイック返信みんなありがとう!
残念ながら私もそこにそれらの行を持っています。疑似コードをモックアップしながら誤ってそれらを削除した可能性があります。
これがコードの抜粋です。
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" ) );
4行目で式を削除した後、2回目の実行式()がありません。私は今までそのようにそれを使ったことがない。
スクリプト実行の問題問題は、次のステップが始まる前に列式が完全に評価されないことです。
dt <<式()を実行します。次のステップを実行する前に、式が評価されていることを確認してください。私の知る限りでは、これはwait(1)を使用するよりもずっとうまく機能します。
dt1 =現在のデータテーブル()。
dt1 <<複数の列を追加( "C"、1、(:B)の後、文字)。
列( "C")<<式(Concat(:Name( "A")、:Name( "B")));
dt1 <<式()を実行します。
列( "C")<<数式を削除します。
dt1 <<式()を実行します。
列( "C")<<データ型(数値)<<モデリング型(連続);
スクリプト実行の問題列式は非同期で計算されるため、式が評価を完了していなくてもスクリプトは続行されます。 スクリプトが式の評価が完了したときにのみ続行されるようにするには、[式の実行]メッセージをデータテーブルに送信します。
カラム ( "コルC ) << 式 ( Concat ( : 名 ( "コーラ" ) 、: 名 ( "コルB" ) )) ;
dt <<数式を実行します。