Ich versuche, einen Satz von Dateien aus dem Quellpfad zu einem Archivpfad zu archivieren, sobald ich einige Datenfluss-Task-Elemente abgeschlossen haben. Innerhalb eines Foreach Loop Containers habe ich: Skriptaufgabe -> Datenflussaufgabe -> SQL-Aufgabe ausführen -> Dateisystemaufgabe
Ich habe eine Benutzervariable auf das Element "Name und Erweiterung" unter den Auflistungseinstellungen im Foreach-Schleifencontainer festgelegt. Die Variable heißt "fileName" und wird sowohl im Skript-Task (zum Parsen von Informationen aus der Datei und Ausführen des Execute SQL-Tasks) als auch im Datenfluss-Task im Flat File Connection Manager verwendet, der wiederum vom Flat File Source-Element verwendet wird. Anschließend analysiere ich die Datei und füge die Daten in eine Datenbank ein. Alles funktioniert so, wie es sollte, bis ich zur Dateisystemaufgabe (FST) komme.
Ich möchte, dass die Datei in einen Archivordner verschoben wird, sobald das Einfügen abgeschlossen ist. Über verschiedene Links im Internet ( aquí , aquí et aquí ) Ich habe verschiedene Variablen hinzugefügt, die entweder fest kodiert sind oder durch Massieren anderer Variablen abgeleitet wurden. Auf jeden Fall erhalte ich in der FST Fehlermeldungen wie "ungültige Zeichen im Pfad" oder "unbekannter Pfad". Wenn ich versuche, die oben verlinkten Beispiele an meine Dateisystemstruktur anzupassen, erhalte ich im Schritt "Flat File Source" im Datenfluss-Task einen Fehler, der besagt, dass die angegebene Datei nicht gefunden werden kann. Dies wird verursacht, weil es a) den Pfad zur Datei nicht finden kann, weil kein Dateipfad angegeben ist, sondern nur die Datei filname.ext b) die Variable, die den vollständigen Pfad zur Quelldatei enthält, nicht analysiert werden kann ( @FullSourcePathFileName
dessen Wert auf @[User::SourcePath]
+ @[User::fileName]
)
Ich habe andere verschiedene Änderungen getestet, darunter auch genau das, was im ersten Beispiel, das ich gepostet habe, steht (allerdings tut der Datenfluss-Task nichts, so dass ich nur einen Schritt "Flat File Source" ohne Ziel hinzugefügt habe), und ich habe dieselbe Reihe von Fehlern erhalten. Ich bin hier ratlos und würde mich über jeden Beitrag zur Lösung dieses Problems freuen.
EDIT: Anscheinend scheitert es immer wieder an der FullArchivePathFileName
- der Ausdruck wird nie ausgewertet, obwohl ich ihn auf "True" gesetzt habe. Ich bin immer noch verwirrt, warum der Ausdruck nicht ausgewertet wird. Also habe ich den Ausdruck wie folgt geändert FullSourcePathFileName
und überprüft, ob das Flag EvaluateAsExpression auf True gesetzt ist. Die Variable wird immer noch nicht ausgewertet. FullSourcePathFileName
Die Variable wird gut ausgewertet.