2016-06-29 8 views
0

Ich habe ein Paket, das eine Schleife darin hat, die einige Verbindungen durchläuft. Jede Iteration durch die Schleife ist eine neue Verbindung. Das Problem besteht jedoch darin, dass diese Verbindungen manchmal zur Laufzeit des Pakets unterbrochen sind. Also habe ich einen Fehler hinzugefügt, schicke uns eine E-Mail-Benachrichtigung und fahre dann mit der Schleife fort.Bericht SSIS Erfolg, wenn Schleife fehlschlägt

Dies funktioniert gut, mit der Event Handlers und Ändern der Propagate Wert zu False. Aber das Problem ist, wenn eine Verbindung fehlschlägt, wird die Schleife beendet, aber melden Sie das gesamte Paket schlägt fehl. Dies ist ein Problem, weil es in einem Job in SSMS den Job nach Abschluss dieses Pakets stoppt und meldet, dass es fehlgeschlagen ist, obwohl dies nicht der Fall war.

Gibt es eine Möglichkeit, das Paket erfolgreich zu melden, selbst wenn diese Schleife die fehlgeschlagene E-Mail auslöst? Ich möchte nicht, dass "Weiter zum nächsten Schritt bei Fehler" geht, weil es andere Teile des Pakets gibt, die fehlschlagen könnten und auf denen eine Benachrichtigung erfolgen muss.

EDIT:

Hier sind Screenshots von dem, was ich tue. Innerhalb der Schleife gibt es eine Aufgabe, die erste hat die Verbindung, die manchmal fehlschlägt. Wenn dies der Fall ist, löst es die E-Mail-Aufgabe aus, um uns zu benachrichtigen, und wird dann mit der Schleife fortfahren.

Leider ist FailPackageOnFailure bereits auf false gesetzt.

Loop

Properties

+0

Ein Screenshot wäre ** wirklich ** nützlich gewesen, um zu verstehen, was Sie erreichen wollen! Markieren Sie den Teil, auf dem Sie fortfahren möchten. – BIDeveloper

+0

Siehe Screenshots oben. – Caveman42

Antwort

0

Auf der Aufgabe, die (oder dessen Mutterbehälter falls zutreffend) aus, um den Wert von FailPackageOnFailure auf false ändern.

Wenn Sie dies mit einer Aufgabe in einer Schleife tun, sollten Sie überlegen, ob Sie auch FailParentOnFailure auf false setzen müssen.

BEARBEITEN: Wenn keine Ihrer Aufgaben oder Container das Paket mit FailPackageOnFailure = true fehlschlagen, dann wahrscheinlich setzen Sie das Paket in einem Skript fehlschlagen. Vielleicht in Ihrem Event-Handler Sie eine Anzahl von Fehlern zu halten, und dann am Ende des Pakets Sie den Paketstatus zum Scheitern setzen, wenn der Fehler <> 0

all die Punkte, an denen Untersuchen Sie zählen könnte das Paket so einstellen, dass es entweder über ein Skript oder über die Eigenschaft FailPackageOnFailure fehlschlägt.

+0

Leider ist 'FailPackageOnFailure' bereits auf 'false' gesetzt. Sehen Sie meine Screenshots in meiner Bearbeitung. – Caveman42

0

Sie können gefälschte das Ausführungsergebnis zum Erfolg durch die Eigenschaft Einstellung ForceExecutionResult zu Erfolg (Standardwert dieser Eigenschaft ist Keine) für den Foreach-Schleifencontainer.

Verwandte Themen