Script Problema di esecuzione<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Qualcun altro ha riscontrato questo problema in cui parte di uno script non verrà eseguita correttamente quando viene eseguito l'intero script, ma verrà eseguita correttamente quando viene eseguita riga per riga. L'ho provato alcune volte con JMP 7 e 11. Volevo solo chiarire se si tratta di un errore di sintassi o forse di impostazioni o codice logico per mio conto e non solo un bug in JMP?
L'ultima volta ho notato che era con l'impostazione delle formule di colonna. Concatenare i caratteri e quindi rendere la nuova colonna numerica da utilizzare in altri calcoli. Col A e B sono caratteri senza alfabeti in essi. Quando lo eseguo linea per riga, si esegue come dovrebbe, tuttavia l'esecuzione dell'intero script risulta in una colonna vuota.
Pensieri?
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 );
Ho anche notato questo problema con gli script che selezionano e filtrano le righe in base a istruzioni condizionali specifiche.
Re: Script Execution Problemquando hai sostituito Wait () con una Run Formule, è stato eseguito lo script?
Potrei riprodurre il problema che stavi cercando, forse questo approccio leggermente diverso potrebbe funzionare per te?
In questo caso non ho usato "aggiungi più colonne", quindi ho spostato la colonna all'inizio della riga alla fine.
i nomi sono predefiniti qui (1);
dt = New Table ();
dt << New Column ("A", Character, Nominal, Set Values ({"1", "2", "3"}));
dt << New Column ("B", Character, Nominal, Set Values ({"4", "5", "6"}));
dt << Nuova colonna ("C", carattere, Nominale, formula (: A ||:
);
: C << elimina la formula ();
: C << tipo di dati (numerico) << imposta il tipo di modellazione (continuo);
dt << Vai a (C);
dt << Sposta colonne selezionate ("al primo");
Re: Script Execution ProblemGrazie per le risposte rapide ragazzi!
Sfortunatamente ho anche quelle linee lì dentro. Potrei averli cancellati accidentalmente mentre prendevo in giro lo pseudo codice.
Ecco un estratto migliore del codice:
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" ) );
Non ho le formule di seconda esecuzione () dopo che ho eliminato la mia formula nella quarta riga. Non l'ho mai usato prima.
Re: Script Execution ProblemIl problema è che la formula della colonna non viene valutata completamente prima che avvenga il passaggio successivo.
dt << run formas (); assicura che le formule vengano valutate prima di consentire il passaggio successivo. Nelle mie mani funziona molto meglio che usare wait (1);
dt1 = current data table ();
dt1 << aggiungi più colonne ("C", 1, dopo (:
, carattere);
Colonna ("C") << Formula (Concat (: Name ("A") ,: Name ("B")));
dt1 << run formule ();
Colonna ("C") << elimina la formula;
dt1 << run formule ();
Colonna ("C") << Tipo di dati (numerico) << Tipo di modello (continuo);
Re: Script Execution ProblemUna formula di colonna viene calcolata in modo asincrono, quindi lo script continuerà anche se la formula non ha completato la valutazione. Per garantire che lo script continui solo al completamento della valutazione della formula, è possibile inviare il messaggio Run Formulas alla tabella dati:
Colonna ( "Col C ) << Formula ( concat ( : Nome ( "Coca Cola" ) ,: Nome ( "Col B" ) )) ;
dt << Esegui formule;