Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SSIS ветвление потока управления данных  [new]
IDVT
Member

Откуда:
Сообщений: 309
Всем привет!
Подскажите пожалуйста. Имеется родительский пакет, который запускает некоторое количество экземпляров дочернего пакета (параллельно обрабатываются) с определенными параметрами. Возникла потребность добавить в поток управления дочернего пакета логику обработки задач потоков данных (ветвление).

На картинке отображены два компонента скрипта «А», «С» и задача потока данных «В».
Объект «В» должен выполняться по условию (входной параметр дочернего пакета), тут все отлично, но в результате если условие False (задача потока данных не выполняется), то объект «Скрипт С» не когда не выполнится, ждет ответа от объекта «В». Вроде все тривиально, пытался обыграть, добавляя условия на каждую ветвь соединения контейнеров, но результата достичь не удалось. Что именно я не так делаю?

К сообщению приложен файл. Размер - 2Kb
17 янв 18, 12:05    [21113338]     Ответить | Цитировать Сообщить модератору
 Re: SSIS ветвление потока управления данных  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
у тебя для перехода требуется безусловное выполнение B - таки В не выполнилось - С и не запускается.
таки покопаться с переходом B-C? )) или таки покjпаться с переход A_C ?)) например сделать два перехода A-C один для истина f(x)? второй для не истина f(x)? ))
17 янв 18, 12:28    [21113415]     Ответить | Цитировать Сообщить модератору
 Re: SSIS ветвление потока управления данных  [new]
IDVT
Member

Откуда:
Сообщений: 309
Так уже все варианты перепробовал, даже от безысходности добавил условие на «В» -> «С». Но результата нет, он есть только при выполнении Fx() = true….

К сообщению приложен файл. Размер - 4Kb
17 янв 18, 12:34    [21113431]     Ответить | Цитировать Сообщить модератору
 Re: SSIS ветвление потока управления данных  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
IDVT
Так уже все варианты перепробовал, даже от безысходности добавил условие на «В» -> «С». Но результата нет, он есть только при выполнении Fx() = true….

а вот тут ты что-то не так делаешь - ибо таки - должно работать - проверяй свою fx() точнее not fx()
17 янв 18, 12:41    [21113459]     Ответить | Цитировать Сообщить модератору
 Re: SSIS ветвление потока управления данных  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
тупо для проверки поставь fx() = 1>2 и not fx() = 1<2
17 янв 18, 12:42    [21113470]     Ответить | Цитировать Сообщить модератору
 Re: SSIS ветвление потока управления данных  [new]
IDVT
Member

Откуда:
Сообщений: 309
Хрень какая-то, все работает, если контейнеры "Скрипт" заменить на "задача потока данных". Но от Скрипт'ов отказаться не могу, пока сделал так: убрал все ограничения на связи и у контейнера "В" (из примера) задал выражение свойства Disable по ранее используемой Fx() с инверсией, в таком варианте все поехало.
17 янв 18, 13:32    [21113729]     Ответить | Цитировать Сообщить модератору
 Re: SSIS ветвление потока управления данных  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
IDVT
Хрень какая-то, все работает, если контейнеры "Скрипт" заменить на "задача потока данных". Но от Скрипт'ов отказаться не могу, пока сделал так: убрал все ограничения на связи и у контейнера "В" (из примера) задал выражение свойства Disable по ранее используемой Fx() с инверсией, в таком варианте все поехало.

1. Запихни B в контейнер, к нему делай безусловный переход.
2. Внутри нового контейнера добавь несущественный шаг, например, вычисление значения. От него условный переход к B.
Профит... ли?
17 янв 18, 14:14    [21113956]     Ответить | Цитировать Сообщить модератору
 Re: SSIS ветвление потока управления данных  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4374
IDVT,

Покажите Precedence Constraints на ваших потоках

Картинка с другого сайта.
17 янв 18, 15:08    [21114137]     Ответить | Цитировать Сообщить модератору
 Re: SSIS ветвление потока управления данных  [new]
Ferdipux
Member

Откуда: Москва
Сообщений: 537
IDVT
Так уже все варианты перепробовал, даже от безысходности добавил условие на «В» -> «С». Но результата нет, он есть только при выполнении Fx() = true….


У "С" - укажи что входящие переходы - сочетаются как OR (ИЛИ) - штриховые линии. По умолчанию они имеют сочетание AND (И), и задача С ждет у тебя завершения обоих задач А и В, чего не случается.
17 янв 18, 15:09    [21114141]     Ответить | Цитировать Сообщить модератору
 Re: SSIS ветвление потока управления данных  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Ferdipux
У "С" - укажи что входящие переходы - сочетаются как OR (ИЛИ) - штриховые линии. По умолчанию они имеют сочетание AND (И), и задача С ждет у тебя завершения обоих задач А и В, чего не случается.

В общем случае это плохой подход. См. рисунок

К сообщению приложен файл. Размер - 47Kb
17 янв 18, 15:34    [21114220]     Ответить | Цитировать Сообщить модератору
 Re: SSIS ветвление потока управления данных  [new]
IDVT
Member

Откуда:
Сообщений: 309
Ferdipux
IDVT
Так уже все варианты перепробовал, даже от безысходности добавил условие на «В» -> «С». Но результата нет, он есть только при выполнении Fx() = true….


У "С" - укажи что входящие переходы - сочетаются как OR (ИЛИ) - штриховые линии. По умолчанию они имеют сочетание AND (И), и задача С ждет у тебя завершения обоих задач А и В, чего не случается.


Спасибо, этого я не знал!
17 янв 18, 15:54    [21114275]     Ответить | Цитировать Сообщить модератору
 Re: SSIS ветвление потока управления данных  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
Руслан Дамирович
В общем случае это плохой подход. См. рисунок
что есть общий случай?
конкретный воркфлоу нужно делать под конкретную задачу.
для вашей задачи удобно прокидывать через контейнер и копипастить вашу "Page"
(многие скажут, например, что копипаста это "плохой подход").
а условия and\or на констрейнтах как раз и созданы для случая ТСа.
17 янв 18, 16:01    [21114302]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить