Wie zum ausführen von SSIS-Paket, wenn eine Datei ist angekommen Ordner
Ist die Anforderung zum ausführen von SSIS-Paket, wenn Sie eine Datei angekommen in einem Ordner,ich möchte nicht, starten Sie das Paket manuell .
Es ist nicht sicher, dass die Datei timing der Ankunft ,auch die Dateien ankommen kann mehrere Male .Wann immer die Dateien angekommen dieses ist zum laden in eine Tabelle.Ich denke, eine Lösung wie file watcher Aufgabe ,noch erwarten zu starten, das Paket
- Es gibt einen ähnlichen Beitrag hier versuchen: stackoverflow.com/questions/15273593/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Weg, ich habe dies in der Vergangenheit getan, ist eine unendliche Schleife Paket mit dem Namen des SQL Server-Agents, beispielsweise;
Dies ist mein unendlicher loop Paket:
Set 3 Variablen:
IsFileExists - Boolean - 0
FolderLocation - String - C:\Where die Datei wird in\
IsFileExists Boolean - 0
Für die For-Schleifen-container:
Legen Sie die
IsFileExists
Variablen wie oben.Setup-C# - Skript-task mit der ReadOnlyVariable als
User::FolderLocation
und haben die folgenden:Was wird dies tun, ist im wesentlichen ein Auge auf den Ordner ein .txt-Datei, wenn die Datei nicht vorhanden ist, wird es schlafen für 10 Sekunden (erhöhen Sie dies, wenn Sie möchten). Wenn die Datei vorhanden, wird es komplett und das Paket wird dann führen Sie die load package. Aber es wird weiterhin ausgeführt, so dass die nächste mal, wenn eine Datei gelöscht wird, wird es die Last auszuführen-Paket erneut.
Stellen Sie sicher, dass Sie diesen ewig loop Paket als ein sql server agent-Auftrag, so wird es die ganze Zeit laufen, haben wir ein ähnliches Paket laufen und es hat nie Probleme bereitet.
Stellen Sie außerdem sicher, dass Ihre Eingabe-Paket bewegt/Archiv die Datei Weg aus der drop-Ordner.
Als andere haben bereits vorgeschlagen, entweder unter Verwendung der WMI-task oder eine unendliche Schleife sind zwei Möglichkeiten, um dies zu erreichen, aber IMO SSIS ist Ressourcen-intensiv. Wenn du ein Paket ständig im hintergrund laufen, es könnte fressen eine Menge Speicher, cpu und verursachen performance-Probleme mit anderen Paketen abhängig, wie viele andere Pakete, die Sie haben, ausgeführt. Damit andere option, die Sie betrachten wünschen können, ist, einen Zeitplan für einen Agenten-job alle 5 Minuten oder 10 Minuten oder so, und rufen Sie Ihr Paket in den job. Konfigurieren Sie das Paket weiterhin nur, wenn eine Datei vorhanden ist oder beendet werden, sonst.
Können Sie erstellen ein Windows-Dienst, WMI verwendet, um zu erkennen Datei Ankunft und Start-Pakete. Details, wie Sie befinden sich hier: http://msbimentalist.wordpress.com/2012/04/27/trigger-ssis-package-when-files-available-in-a-folder-part2/?relatedposts_exclude=330
Was über die SSIS Datei-Watcher-Aufgabe?