Foreach-Schleife Microsoft SSIS - entspricht der break-Anweisung
Innerhalb einer Foreach-Schleife in SSIS gibt es eine Möglichkeit, dass wenn eine Aufgabe fehlschlägt, können Sie brechen aus der Schleife, um die nächste iteration?
Ich bin looping über xml-Dateien und die Durchführung einer lookup-Werte in dieser Datei, wenn die Suche nicht wieder alle Werte möchte ich darüber berichten und dann nicht führen Sie keine anderen Aufgaben für diese Datei. Wenn es kein äquivalent zu einer break-Anweisung wie sonst kann dies erreicht werden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könntest du auch eine 'for' - Schleife mit einen booleschen Zustand wie looping, während eine variable gleich true ist. Dann, wenn Sie wollen, brechen aus der Schleife, ändern Sie einfach den Wert der variable auf false und dann brechen Sie aus der Schleife.
Deine Frage zu beantworten...mit einer foreach-Schleife durchläuft eine Sammlung und andere aufzählbare Konstrukte, so lange, wie Sie existieren, um eine Schleife über. So könnte man entweder einen workaround finden, oder benutzen Sie einfach eine " for " - Schleife statt einer 'foreach' - Schleife. So haben Sie mehr eine Programmierung geben, die Kontrolle über die Schleife, da Sie die Bedingung Ausdruck.
Den lookup umleiten kann, wenn es keine Werte zurückgegeben, Weg von der erfolgreichen flow.
Müssen Sie den rest Ihres foreach-Schleife, um zu wissen, es hat einen Fehler gegeben, also eine Möglichkeit wäre, um ein Paket variable auf Fehler, kurz bevor Sie die Protokollierung.
Dann, in der 'Erfolg' Pfeil-nach Ihrer Suche Sie können ändern Sie es zu einem bedingten Erfolg, so dass es nur fortgesetzt, wenn der Wert der Variablen nicht den Wert des Fehlers.
So, ich hatte gerade das problem und löste es, indem a) die Leitung der fehlgeschlagenen task, um eine dummy-Aufgabe, die nichts Taten, und endete, und b) die Einstellung der 'FORCEEXECUTIONRESULTS' auf 'ERFOLG', die durch gepflügt genau so, wie ich es wollte.
Und noch ein weiterer Weg wäre ein Sequenz-container in den loop setzen Sie dann die bedingte Schritte in der Sequenz-container. Jede Entscheidung, sollte "weiter" müssen Sie nur beenden Sie die Sequenz-container.
Sehr einfach zu implementieren mit all den Steuern, die Sie sich wünschen könnte, einschließlich der Fehlerbehebung.