2013-02-27 7 views
0

У меня есть пакет ssis, который имеет два объекта: выполнить задачу процесса и задачу потока данных.SSIS ждет завершения выполнения задачи процесса

Выполнение задач запускает .exe, который вставляет данные в мои данные sql (это длительный процесс). Этот процесс должен завершиться до запуска следующих задач. Тем не менее, в то время как .exe работает, он запускает значение успеха (хотя это еще не сделано), который выполняет следующую задачу. Как я могу заставить задачу потока данных ждать?

+0

Если вы написали exe, вы всегда можете импортировать код в задачу выполнения как отдельные классы и реорганизовать его для запуска в SSIS, а не как внешнюю программу. Затем это заставит пакет ждать, прежде чем перейти к следующему шагу. Я использую для написания моей собственной FTP-программы в SSIS, чтобы выполнить что-то подобное. – avgbody

ответ

0

Вы делаете два разрозненных процесса друг с другом через запись в таблице. Когда начинается процесс 1, напишите строку в таблице. Установите флаг (Process1 не выполнен). По завершении установите флаг (процесс 1 завершен).

Место следующей задачи - процесс 2 в цикле. В пределах цикла проверьте флаг. Если выполняется процесс 1 - выполните задачу 2.

Для этого конкретного случая верните значение и сохраните его как StandardOutput. Это избавит вас от необходимости писать в таблицу.

Теперь у вас есть три потенциальных решения, пожалуйста, попробуйте поделиться своими результатами.