Цикл Foreach Microsoft SSIS - эквивалент оператора break - PullRequest
8 голосов
/ 13 января 2009

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

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

Ответы [ 4 ]

4 голосов
/ 15 января 2009

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

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

0 голосов
/ 11 мая 2017

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

0 голосов
/ 16 декабря 2015

Таким образом, у меня просто возникла эта проблема, и я решил ее, а) направив невыполненную задачу на фиктивную задачу, которая ничего не делала и закончила, и б) установив для 'FORCEEXECUTIONRESULTS' значение 'УСПЕХ', который пахал так, как я хотел к.

0 голосов
/ 14 января 2009

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

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

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

...