2012-01-23 10 views
1

SSISパッケージは、(テーブル内の)人のリストをループして、その人にレポートのリストを送信しようとします。SSIS複数のループが正常に動作しない

これらのレポートのいずれかが生成されていない場合(ファイルを変換する)、パッケージは失敗しないようにしますが、続行してください。

伝搬値を「false」に設定したことに関するいくつかの記事を読んでいます。これは、エラーが含まれているループまでバブルアップしないことを意味します。それはまだありません:(

私はイベントがなく、失敗した

を「送信メールタスク」を0に最大誤差を設定し、「偽」に設定され伝播値とErrorイベントを追加した

また、上記のループため、パッケージを失敗した。私もそれが役立つならば!私はそれが仕事を得ることができる唯一の方法は、最大誤差を設定することである喜び:(

を見ないようにシーケンスコンテナを追加

wroのように見える0までのすべてのループをカウントするng。

SSIS

答えて

5

コンテナの「最大エラーカウントが」子項目に設定された任意の伝播の設定を無視します。コンテナ自体が失敗する前に、子アイテムで発生することが許可されているエラーの数を定義できます。ここでのアイデアは、どこに失敗したかにかかわらず、10個の子アイテムが失敗するというだけの場合にのみ、親が失敗する状況が発生する可能性があるということです。

これを防ぐには、カウントを0に変更する必要があります。このチェックをオフにすると、子アイテムが何度でも失敗することがあります。

あなたのケースでは、失敗した子アイテムの数に関係なく、ループを常に続行する必要があります。タスクが失敗したときにないにメールタスクを設定し

  1. は親を失敗します。
  2. 最大エラー数がゼロになるようにコンテナオブジェクトの設定を変更し、「このタスクが失敗すると親が失敗する」をtrueにします。

これらを設定すると、メールタスクは失敗しますが、ループは続行されます。フロー内の別のアイテムに障害が発生した場合、エラー伝播はチェーンの親グループに失敗します。

+0

ああ、私はあなたの答えを数回読んだが、私はそれを理解することができないのか分からない。エラーカウントをゼロに設定することは、この例では正しいことですか?その後、伝搬フラグのポイントは何ですか? :) –

+0

私は私の答えをいくらか明らかにしましたが、これは助けになりますか? –

関連する問題