Skript nach Dateiimport wird nicht ausgeführtHallo, ich importiere eine Reihe von Dateien aus einem Verzeichnis und stapele sie in einer großen Datei (45 Dateien). Nach dem Import in eine große Datei bereinigt das Skript den Datensatz, fügt Spalten und Zeilen hinzu usw. Das Problem, auf das ich gestoßen bin, ist folgendes Das Skript weist einen Fehler auf, wenn es als Ganzes ausgeführt wird. Wenn ich zuerst den Import ausführe, warte, bis die Dateien in jmp geladen sind, und dann den zweiten Teil des Codes ausführe, funktioniert es. Dazwischen musste ich warten (150), was mehr als genug Zeit ist, um die Daten zu importieren, aber es funktioniert immer noch nicht.Die Fehlermeldung lautet: „Ungültiges Argument beim Zugriff oder bei der Auswertung von „Spalte“ Column/*###/(j). Mir ist aufgefallen, dass das Skript unmittelbar nach dem Import für das PVOTC-Update auch nicht ausgeführt wird. Unten ist mein Code, Ihre Hilfe wird sehr geschätzt.
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>DatenzugriffBetreff: Skript nach Dateiimport wird nicht ausgeführtWahrscheinlich ist mehr als eine Tabelle geöffnet, versuchen Sie es explizit, so wie hier
If( (Col N Missing( Column(dt, j ) ) / N Row()) == 1
Ich denke, die Spaltenfunktion verwendet eine andere Tabelle (eigentlich die aktuelle Tabelle) als die, die Sie erwarten. Durch das Hinzufügen des dt zur Spaltenfunktion wird dieser mitgeteilt, um welche Tabelle es sich handelt, andernfalls handelt es sich um die aktuelle Tabelle (die möglicherweise nicht aufgeholt hat, wenn Sie sie auf einmal ausführen).
Betreff: Skript nach Dateiimport wird nicht ausgeführtCraige
Vielen Dank für Ihre Antwort. Jetzt habe ich die Änderung vorgenommen, aber der Code kann immer noch nicht als Ganzes ausgeführt werden. Der fehlende PVOTC-Wert wird nicht aktualisiert. Außerdem wird die gleiche Fehlermeldung angezeigt: „Ungültiges Argument beim Zugriff oder bei der Auswertung von ‚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">Betreff: Skript nach Dateiimport wird nicht ausgeführt</LINGO-SUB><LINGO-BODY id="lingo-body-390303" slang="en-US" mode="NONE"><P>Nach</P><PRE><CODE class=" language-jsl">dt = Multiple File Import(...) << Import Data;
dt enthält eine Liste von Datentabellen, auch wenn nur eine Tabelle importiert wird.
Sie brauchen nicht warten (150).
dt[1] ist die aktuelle Datentabelle, wenn nur eine Tabelle importiert wurde.
Bearbeiten: Verwenden Sie nicht die aktuelle Datentabelle (), wenn Sie dies vermeiden können. Verwenden Sie nach Möglichkeit ein explizites Handle wie dt[1]. Current Data Table ist eine JSL-Funktion, die versucht, sich wie JMP vor der Erfindung von JSL zu verhalten, wobei die zuletzt berührte Tabelle die von der nächsten Plattform verwendete Tabelle war.