Цикл Foreach Microsoft SSIS-эквивалент инструкции break

в цикле Foreach в SSIS есть ли способ, что если задача терпит неудачу, вы можете вырваться из цикла на следующую итерацию?

Я перебираю xml-файлы и выполняю поиск, используя значения в этом файле, если поиск не возвращает никаких значений, которые я хотел бы сообщить об этом, а затем не выполнять никаких других задач для этого файла. Если нет эквивалента инструкции break, как еще это может быть достигнуто?

4 ответов


вы также можете использовать цикл " for " с логическим условием, таким как цикл, в то время как переменная равна true. Затем, когда вы хотите вырваться из этого цикла, просто измените значение этой переменной на false, и тогда вы вырветесь из цикла.

отвечая на ваш вопрос...цикл foreach, циклы над коллекцией и другие перечисляемые конструкции, пока они существуют для цикла. Таким образом, вы можете либо найти обходной путь, либо просто использовать цикл " for "вместо цикла "foreach". Таким образом, у вас больше контроля типа программирования над циклом, потому что вы устанавливаете выражение условия.


поиск может перенаправить, если нет возвращенных значений, вдали от успешного потока.

вам нужно, чтобы остальная часть вашего цикла foreach знала, что произошла ошибка, поэтому одним из способов было бы установить переменную пакета на ошибку, как раз перед тем, как вы сделаете журнал.

затем в Стрелке "успех" после поиска вы можете изменить его на условный успех, так что он будет продолжаться, только если значение переменной не является значением ошибки.


Так что я просто имел эту проблему и решить ее а) направлять не задача манекен задач которые ничего не сделали и закончились и Б) задание 'FORCEEXECUTIONRESULTS' на 'успех', который пахал так, как я хотел.


и еще один способ-поместить контейнер последовательности в цикл, а затем поместить условные шаги в контейнер последовательности. Любое решение, которое должно "продолжаться", нужно только выйти из контейнера последовательности. Очень просто реализовать со всем контролем, который вы можете захотеть, включая улавливание ошибок.