Как две разные задачи могут перейти к одной задаче в SSIS - PullRequest
9 голосов
/ 29 сентября 2010

см. Рисунок, чтобы получить представление о сценарии.

alt text

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

Спасибо.

Ответы [ 2 ]

24 голосов
/ 29 сентября 2010

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

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

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

0 голосов
/ 29 сентября 2010

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

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

...