次のようなものを実装したい:
このパッケージでは、データベース名のリストをループして、接続マネージャーの設定を動的に変更します。
ただし、「接続のテスト」での最初の失敗は停止し、パッケージの実行に失敗します。
しかし、Foreachループを続けたいと思います。私はこれが可能であるべきだという感覚を得る(そうでなければ、これらの赤い失敗矢印のユースケースは何ですか?)
私が試したものには、「MaximumErrorCount」の混乱が含まれます。
次のようなものを実装したい:
このパッケージでは、データベース名のリストをループして、接続マネージャーの設定を動的に変更します。
ただし、「接続のテスト」での最初の失敗は停止し、パッケージの実行に失敗します。
しかし、Foreachループを続けたいと思います。私はこれが可能であるべきだという感覚を得る(そうでなければ、これらの赤い失敗矢印のユースケースは何ですか?)
私が試したものには、「MaximumErrorCount」の混乱が含まれます。
回答:
質問に答えるために、タスクとその親コンテナのMaximumErrorCountがゼロであることを確認することにより、失敗後も続行できます。この場合、「テスト接続」タスク、「foreach」コンテナを意味しますそしてパッケージ自体。
しかし、私は別のことをしました。そして、Jamie Thomson が使用する前に接続を検証することは、ここで役に立ちました。私がやったことは次のとおりです。
接続テストタスクをスクリプトタスクに置き換えました。スクリプトタスクは、Jamieのスクリプトとほぼ同じでしたが、私は
また、テスト接続タスクから出てくる矢印を変更して、式を評価します。評価されます:
それぞれ。
また、「Update LastMonitored」タスクに入る複数の制約を忘れずに編集する必要がありました。論理的な「OR」を使用するように変更しました。
SSISパッケージは次のようになります。
簡単な方法...
「テスト接続」タスクの後に、優先順位制約(緑色の線)をダブルクリックします。「制約オプション」が表示され、ドロップダウンリストの「値」をクリックして、「完了」を選択します。これにより、失敗したかどうかに関係なく、タスクの完了後もパッケージの実行が継続されます。
注:タスクの完了後に評価される式を追加する場合を除き、ドロップダウンリストの[評価操作]を[制約]から変更しないでください。また、制約を「論理AND」のままにしてください。
お役に立てれば。