Возможно, этот вопрос кажется очень простым и элементарным, но мне нужно некоторое разъяснение.Как оцениваются приоритеты SSIS?
В SSIS следующие ограничения доступны для контроля компонентов потока выполнения:
- Логического И. Все ограничения должны оцениваться как истинные.
- Логический ИЛИ. По крайней мере одно ограничение должно оцениваться как true.
У меня есть очень простой пакет, который я использую для проверки описанных условий.
Задача процесса - вызов командного файла, который возвращает строковое значение и код завершения.
Процесс Задача получает значение из пакетного файла в качестве StandardOutputVariable и присваивает его определенным переменная User :: BatchExecutionCode
моего пользователюЗадачу сценария - для проверки, отображает полученную величину из моих пользовательских переменных, так что я может визуально видеть и утверждать, что ожидаемое значение передается
Выполнение SQL-задачи - это просто делает SELECT GETDATE().
У меня есть установка логической И условия между Задача сценария и задача процесса, что мандаты:
- Constraint - Выполнение задачи должен "Complete"
- Expression - @BatchExecutionCode == "0"
Когда я выполняю, выполняются обе задачи до конечной задачи «Выполнение SQL», и я получаю окно визуального сообщения, показывающее значение моей переменной как «0», но выполнение просто останавливается после этого и никогда не выполняет последнюю задачу после оценки ,
В чем проблема? В соответствии с установленными условиями исполнения, условия выполнены. Так точно как оцениваются ограничения приоритета.
EDIT: Для пояснения на скриншоте значение @BatchExecutionCode передано переменной User :: Result с помощью задачи Script. Вот почему выражение говорит @Result == «0». В любом случае результаты все те же:
Не могли бы вы поделиться экраном печати вашего пакета? –
Уверен, добавлено – Mark
Есть ли вероятность того, что задание скрипта неправильно присвоило значение @Result? Задача скрипта делает что-либо помимо назначения? – billinkc