2017-02-02 3 views
0

Verwenden von Microsoft Visual Studio 2015 Community- Ziel des Projekts -create „* \ temp \ E-Mail“ Verzeichnis -start Programm, um alle E-Mails zu extrahieren, die xls-Anhänge auf den zuvor erstellten Ordner enthalten - Verwenden Sie für jede Schleife, um durch jede Datei im Ordner zu durchlaufen, zu verarbeiten und in die SQL-Tabelle zu verschieben. Das Problem, auf das ich stoße, wird entweder durch ein leeres Excel-Dokument verursacht (das gelegentlich von einem entfernten Standort gesendet wird) oder einige der ursprünglichen xls-Berichte enthalten nur 5 anstatt 6 Spalten, die ich jetzt zugeordnet habe. Gibt es eine Möglichkeit, Dateien mit den richtigen Spalten von denen zu trennen, die nicht übereinstimmen? ** Solange diese beiden Probleme nicht existieren, kann ich das SSIS-Paket ausführen und alles läuft ohne Probleme.SSIS leere Spalten Excel verursachen Fehler

Kontrollfluss; Task Dateisystem (erstellt Verzeichnis ---> Prozess ausführen Aufgabe (xls-Extraktion) -> foreach-Schleife (Datenflußtask "email2Sql")

Datenfluss; Excel Quelle (verwendet Ausdruck ExcelFilePath, @ user: filepath) delay validation == true (Spalten sind anfänglich auf f1-f6 gesetzt und werden zB auf a, b, c, d, e, f abgebildet. Die älteren Dateien, die gemischt werden, enthalten nur a, b, c, d, e.) Dies ist, wo ich möchte in der Lage sein, das xls-Dateien Split Bedingte Transformation zu trennen (Spaltennamen sind nicht in Reihe 1, hilft dieser „null“ Werte) Ole Db Ziel (sQL-Tabelle) entfernen

Sorry für die Menge des Lesens, aber für den ersten Post ich t ried um alles, was ich für relevant hielt.

Antwort

0

Es gibt einige Tools, mit denen Sie das Excel-Dokument öffnen und lesen können. Ich denke jedoch, die einfachste Sache wäre, SSIS out-of-the-box zu verwenden:

1 - fügen Sie eine Dateisystemaufgabe nach dem Datenfluss, der die Datei liest.

2 - Machen Sie die Rangfolgeeinschränkung vom Datenfluss zur Dateisystemaufgabe "failure". Dies führt dazu, dass nur ausgelöst wird, wenn die Datenflusstask fehlschlägt.

3 - die Datei Aufgabe gestellt, die „schlechten“ Dateien in einen anderen Ordner

Dies ermöglicht Ihnen, eine Schleife durch alle Dateien und bewegen Sie die ausgefallenen diejenigen zu bewegen. Letztendlich wird das Paket scheitern. Wenn Sie dieses Verhalten nicht möchten, können Sie die ForceExecutionResult-Eigenschaft so ändern, dass sie erfolgreich ist. Es kann jedoch gut sein zu wissen, dass es Probleme mit einigen Dateien gab, so dass sie angesprochen werden können.

m

+0

Vielen Dank für die schnelle Antwort Mark. Es tut mir leid, dass ich ein wenig Zeit gebraucht habe, um zu dir zurück zu kommen. Neu zu SSIS und wollte ein paar Dinge googlen, bevor er antwortete. Ich denke, ich verstehe, was Sie empfohlen haben und so werde ich es heute versuchen und hoffentlich es aussortieren. –

+0

Danke nochmal. Ich ging durch, wie Sie vorgeschlagen haben, und das kümmerte sich um das Problem für mich. –

Verwandte Themen