Как вставить новую задачу потока управления между существующими задачами в пакете SSIS?

#ssis

#ssis

Вопрос:

Возможно ли вставить задачу потока данных между двумя существующими задачами в пакете SSIS?

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

Возможно ли вставить новую задачу между существующими задачами?

Ответ №1:

Решение:

Вам нужно удалить Precedence Constraint соединяющую две задачи потока управления, а затем перетащить новую задачу между двумя существующими задачами. Подключите ограничение приоритета от первой задачи к новой задаче и ограничение приоритета от новой задачи к существующей второй задаче.

Precedence Constraint это стрелка между двумя задачами потока управления, которая обозначает направление потока. Стрелка может отображаться в green , red или blue цветах в зависимости от условия, используемого для направления потока.

Внимание:

Если в Precedence Constraint есть выражение, вы должны записать, что это за выражение, прежде чем удалять ограничение приоритета. Возможно, вам потребуется снова использовать это выражение после введения новой задачи.

Пакет SSIS 2012, иллюстрирующий шаги:

Предположим, что у вас есть пакет SSIS с именем SO_6115881.dtsx . Внутри пакета у вас есть две задачи потока данных на вкладке Поток управления. На скриншоте ниже показано, что для ограничения приоритета нет выражений или ограничений (зеленая стрелка).

Две задачи потока данных без выражения

Если у вас было выражение, определенное для ограничения приоритета, в ограничении приоритета появятся буквы fx.

Две задачи потока данных с выражением

Вы можете дважды щелкнуть ограничение приоритета, чтобы просмотреть Precedence Constraint Editor , чтобы отметить используемое выражение. Здесь ограничение приоритета использует выражение, @[User::IsValid] == True чтобы проверить, принимает ли переменная пакета @[User::IsValid] значение true или нет.

Редактор ограничений приоритета

Давайте предположим, что между двумя существующими задачами потока управления нет выражений. Чтобы удалить ограничение приоритета, щелкните на нем и нажмите Delete или щелкните правой кнопкой мыши на ограничении приоритета и нажмите Delete .

Удалить ограничение приоритета

После удаления ограничения приоритета перетащите следующую задачу потока управления между двумя существующими задачами. Перетащите ограничение приоритета из задачи Data Flow Task 1 и подключите его к новой задаче New Data Flow Task .

Подключите первую задачу ко второй задаче

Перетащите ограничение приоритета из новой задачи New Data Flow Task и подключите его к задаче Data Flow Task 2 . Теперь новая задача потока управления должна быть успешно добавлена между двумя существующими задачами. Если у вас было выражение, дважды щелкните соответствующее ограничение приоритета, чтобы добавить выражение.

Вкладка потока управления с новой задачей

Комментарии:

1. Могу ли я сделать это, не удаляя существующее ограничение приоритета? Описанный выше метод хорош, если не слишком много задач управления.

2. С сожалением должен сказать, что в 2021 году это все еще проблема. Я ненавижу перемещение стрелок из-за этой точной проблемы с выражениями ограничений.