2015-07-10 7 views
0

enter image description here Возможно, этот вопрос кажется очень простым и элементарным, но мне нужно некоторое разъяснение.Как оцениваются приоритеты SSIS?

В SSIS следующие ограничения доступны для контроля компонентов потока выполнения:

  • Логического И. Все ограничения должны оцениваться как истинные.
  • Логический ИЛИ. По крайней мере одно ограничение должно оцениваться как true.

У меня есть очень простой пакет, который я использую для проверки описанных условий.

Задача процесса - вызов командного файла, который возвращает строковое значение и код завершения.

Процесс Задача получает значение из пакетного файла в качестве StandardOutputVariable и присваивает его определенным переменная User :: BatchExecutionCode

моего пользователю

Задачу сценария - для проверки, отображает полученную величину из моих пользовательских переменных, так что я может визуально видеть и утверждать, что ожидаемое значение передается

Выполнение SQL-задачи - это просто делает SELECT GETDATE().

У меня есть установка логической И условия между Задача сценария и задача процесса, что мандаты:

  1. Constraint - Выполнение задачи должен "Complete"
  2. Expression - @BatchExecutionCode == "0"

Когда я выполняю, выполняются обе задачи до конечной задачи «Выполнение SQL», и я получаю окно визуального сообщения, показывающее значение моей переменной как «0», но выполнение просто останавливается после этого и никогда не выполняет последнюю задачу после оценки ,

В чем проблема? В соответствии с установленными условиями исполнения, условия выполнены. Так точно как оцениваются ограничения приоритета.

EDIT: Для пояснения на скриншоте значение @BatchExecutionCode передано переменной User :: Result с помощью задачи Script. Вот почему выражение говорит @Result == «0». В любом случае результаты все те же:

+0

Не могли бы вы поделиться экраном печати вашего пакета? –

+0

Уверен, добавлено – Mark

+0

Есть ли вероятность того, что задание скрипта неправильно присвоило значение @Result? Задача скрипта делает что-либо помимо назначения? – billinkc

ответ

0

Единственная причина, по которой должно быть @Result, не равно «0», вы можете подтвердить, что при выполнении точки останова на вашей скриптовой задаче.

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

http://www.jasonstrate.com/2011/01/31-days-of-ssis-using-breakpoints-231/

Смежные вопросы