SSIS の Foreach ループ内で、タスクが失敗した場合にループから抜け出して次の反復に進む方法はありますか?
xml ファイルをループし、このファイル内の値を使用してルックアップを実行しています。ルックアップがこれについて報告したい値を返さない場合は、このファイルに対して他のタスクを実行しません。break ステートメントに相当するものがない場合、他にどのようにこれを達成できますか?
SSIS の Foreach ループ内で、タスクが失敗した場合にループから抜け出して次の反復に進む方法はありますか?
xml ファイルをループし、このファイル内の値を使用してルックアップを実行しています。ルックアップがこれについて報告したい値を返さない場合は、このファイルに対して他のタスクを実行しません。break ステートメントに相当するものがない場合、他にどのようにこれを達成できますか?
You could also use a 'for' loop with a boolean condition such as looping while a variable is equal to true. Then when you want to break out of that loop, simply change the value of that variable to false and then you will break out of the loop.
Answering your question...a foreach loop, loops over a collection and other enumerable constructs so long as they exist to loop over. So you could either find a workaround, or just use a 'for' loop instead of a 'foreach' loop. That way you have more of a programming type control over the loop because you set the condition expression.
値が返されない場合、ルックアップは成功したフローから離れてリダイレクトできます。
エラーが発生したことを知るには、残りの foreach ループが必要です。そのため、1 つの方法は、ログを記録する直前に、エラー時にパッケージ変数を設定することです。
次に、ルックアップ後の「成功」矢印で、変数の値がエラー値でない場合にのみ続行するように、条件付き成功に変更できます。