2010-09-29 2 views
8

, пожалуйста, посмотрите на рисунок, чтобы получить представление о сценарии.Как две разные задачи могут иметь одну задачу в SSIS

alt text

Теперь, когда мой пакет будет работать после выполнения сек! будет выполняться либо путь A, либо B. Итак, если A выполняется, то выполняются Task S2 и F2. Но если следовать пути B, выполняются задания F1 и F3. Но также после выполнения задачи F3 поток должен перейти к задаче S2 через путь E. Но этого не происходит, и по завершении задачи F3 пакет заканчивается успехом.

Мне нужна помощь по этому вопросу о том, как перейти к пути E и выполнить задачу S2 и F2 после завершения задачи F3.

Спасибо.

ответ

0

Я предполагаю, что F3 является неблокирующим преобразованием. Поэтому вам нужно вставить либо Semi, либо полностью блокирующее преобразование, чтобы заставить SSIS ждать, пока F3 и S1 не будут исполнять S2.

Существует хороший список here и лучшее объяснение того, как преобразования блокируют друг друга. Но я бы, вероятно, использовал Union All с F3 и S1 в качестве предшественников и S2 в качестве преемника.

+0

Я думаю, что OP относится к потоку управления, а не к потоку данных. Это решение обращается к компонентам преобразования в задаче потока данных. – bobs

+0

bobs прав ... это решение будет работать только в потоке данных. – CTKeane

19

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

Ваша текущая конфигурация показывает, что оба пути A и E должны быть выполнены до запуска задачи S2. Поскольку только один из этих путей будет завершен, SSIS остановится. Вам необходимо внести изменения, чтобы при завершении пути A или пути E запустить задачу S2.

Чтобы внести изменения, выполните следующие действия. Щелкните правой кнопкой мыши по пути A или пути E и выберите «Редактировать». В редакторе ограничений приоритета в разделе «Множественные ограничения» выберите «Логическое ИЛИ. Одно ограничение должно быть равно True». Нажмите «ОК», чтобы закрыть диалоговое окно. Пути A и E будут изменяться на пунктирные линии, которые представляют собой условие OR, которое вы только что определили.

+1

Это спасло меня от вытягивания волос. Спасибо тонну, решение работает как шарм –

Смежные вопросы