it-swarm.com.de

Wie fahre ich nach einem Fehler in SSIS fort?

Ich möchte Folgendes implementieren: enter image description here

In diesem Paket möchte ich eine Liste von Datenbanknamen durchlaufen und die Einstellungen des Verbindungsmanagers dynamisch ändern.

Der erste Fehler bei "Verbindung testen" wird jedoch angehalten und die Paketausführung schlägt fehl.

Aber ich möchte meine Foreach-Schleife fortsetzen. Ich habe das Gefühl, dass dies möglich sein sollte (ansonsten, was ist der Anwendungsfall für diese roten Fehlerpfeile?)

Zu den Dingen, die ich versucht habe, gehört das Durcheinander mit "MaximumErrorCount".

13
Michael J Swart

Um die Frage so zu beantworten, wie ich sie gestellt habe, können Sie nach Fehlern fortfahren, indem Sie sicherstellen, dass MaximumErrorCount für die Aufgabe und ihre übergeordneten Container Null ist. In diesem Fall bedeutet dies die Aufgabe "Verbindung testen", den Container "foreach" und das Paket selbst.

Am Ende habe ich etwas anderes gemacht. Und Jamie Thomsons Überprüfen Sie eine Verbindung, bevor Sie sie verwenden war hier hilfreich. Folgendes habe ich getan:

Ich habe die Aufgabe "Verbindung testen" durch eine Skriptaufgabe ersetzt. Die Skriptaufgabe war fast genau wie Jamies Skript, außer dass ich

  • nur einen Verbindungsmanager verwendet, nicht alle,
  • das Ergebnis der Aufgabe war immer Erfolg
  • und ich habe eine neue Variable "User :: ConnectionSucceeded" auf das Ergebnis des Verbindungstests gesetzt.

Ich habe auch die Pfeile geändert, die aus der Testverbindungsaufgabe kommen, um Ausdrücke zu bewerten. Sie bewerten:

  • @ [User :: ConnectionSucceed] == True
  • @ [User :: ConnectionSucceed] == False

beziehungsweise.

Ich musste auch daran denken, die mehreren Einschränkungen zu bearbeiten, die in der Aufgabe "LastMonitored aktualisieren" enthalten sind. Ich habe sie geändert, um ein logisches "ODER" zu verwenden.

So sieht mein SSIS-Paket jetzt aus: new package

12
Michael J Swart

Der einfache Weg...

Doppelklicken Sie nach der Aufgabe "Verbindung testen" auf die Prioritätsbeschränkung (die grüne Linie). Sie sollten "Einschränkungsoptionen" sehen, auf die Dropdown-Liste "Wert" klicken und "Abschluss" auswählen. Dies weist Ihr Paket an, nach Abschluss der Aufgabe weiter ausgeführt zu werden, unabhängig davon, ob sie fehlschlägt.

Hinweis: Ändern Sie die Dropdown-Liste "Auswertungsvorgang" nicht unter "Einschränkung", es sei denn, Sie möchten einen Ausdruck hinzufügen, der nach Abschluss der Aufgabe ausgewertet werden soll. Behalten Sie außerdem die Einschränkung bei "Logisches UND".

Hoffe das hilft.

(Using the precedence constraint

1
A Eneyo