script dopo l'importazione del file non in esecuzioneciao, sto importando un sacco di file da una directory e li ho impilati in un unico file di grandi dimensioni (45 file), dopo l'importazione in un file di grandi dimensioni, lo script pulirà il set di dati, aggiungerà colonne e righe ecc. il problema che ho riscontrato è quello lo script andrà in errore se eseguito insieme come un intero pezzo; se eseguo prima l'importazione, aspetto che i file vengano caricati in jmp, quindi eseguo la seconda parte del codice, funzionerà. Ho aspettato (150) nel mezzo, il che è più che sufficiente per importare i dati, ma continua a non funzionare.il messaggio di errore dice " argomento non valido nell'accesso o nella valutazione di "Column" Column/*###/(j). Ho notato che lo script subito dopo l'importazione per l'aggiornamento PVOTC non viene eseguito neanche. Di seguito è riportato il mio codice, il tuo aiuto è molto apprezzato.
files = Files In Directory( loadPath);
For( i = 1, i <= N Items( files ), i++, //previous steps non drb or already parsed)
subLoadPath = loadPath ||files[i];
stepID = num(word(2,word(-1,subLoadPath,"/" ),"_"));
If( Is directory(subLoadPath) & stepID >= 11, // 11 is the step started to parse
tableName = word(-1,subLoadPath,"/" );
tableName_flow = word(-2,subLoadPath,"/" );
dt = Multiple File Import(
<<SET folder="">= 1, j--,
If( (Col N Missing( Column( j ) ) / N Row()) == 1,
dt << delete columns( j )
)
);
Wait(5);
dt << Clear Column Selection(); </SET>ScriptingRe: lo script dopo l'importazione del file non viene eseguitoProbabilmente più di un tavolo aperto, cerca di essere esplicito, così
If( (Col N Missing( Column(dt, j ) ) / N Row()) == 1
Penso che la funzione della colonna stia usando una tabella diversa (in realtà, la tabella corrente) rispetto a quella che ti aspetti. L'aggiunta di dt alla funzione di colonna indica quale tabella, altrimenti è la tabella corrente (che potrebbe non essere stata raggiunta quando l'hai eseguita in una volta sola).
Re: lo script dopo l'importazione del file non viene eseguitoCraige
Grazie per la risposta, ora ho apportato la modifica ma il codice non può ancora essere eseguito nel suo insieme, il valore mancante di PVOTC non viene aggiornato, inoltre viene visualizzato lo stesso messaggio di errore "argomento non valido nell'accesso o nella valutazione di 'Column', Column/* ###*/(j)"
</CODE><CODE class=" language-jsl">dtImpt = Multiple File Import(
<<SET folder="">= 1, j--,
If( (Col N Missing( Column( j ) ) / N Row()) == 1,
dt << delete columns( j )
)
);
dt << Clear Column Selection(); </SET>
</CODE></PRE><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-390303" slang="en-US" mode="NONE">Re: lo script dopo l'importazione del file non viene eseguito</LINGO-SUB><LINGO-BODY id="lingo-body-390303" slang="en-US" mode="NONE"><P>A seguito di</P><PRE><CODE class=" language-jsl">dt = Multiple File Import(...) << Import Data;
dt contiene un elenco di tabelle di dati, anche se viene importata solo una tabella.
Non hai bisogno dell'attesa (150).
dt[1] sarà la tabella dati corrente se è stata importata solo una tabella.
modifica: non utilizzare la tabella dei dati correnti () se puoi evitarlo. Usa un handle esplicito come dt[1] se possibile. Current Data Table è una funzione JSL che cerca di comportarsi come JMP, prima che JSL fosse inventato, dove l'ultima tabella toccata sarebbe stata la tabella utilizzata dalla piattaforma successiva.