Разумно ли отключить задачу, используя оценку выражений? - PullRequest
3 голосов
/ 01 июня 2011

У меня есть пакет служб SSIS, для которого запланирован ежедневный экспорт данных.У меня есть несколько заданий, которые я хотел бы выполнить только в первый день месяца.Важно, чтобы эти Задачи были пропущены, и чтобы Пакет продолжал выполняться, если это не первое число месяца.

После небольшого поиска я нашел множество ссылок для решения этой проблемы с помощьюиспользуя метод, опубликованный в следующем сообщении в блоге: http://bi -polar23.blogspot.com / 2007/05 / conditional-task-execute.html

Я думаю, однако, естьболее простое решение.Почему я не могу просто добавить выражение к каждой из моих задач на 1-й день месяца, которое проверяет день месяца и соответственно устанавливает свойство «Отключено» в задаче?

Использование выраженийи отключение Задачи кажется намного проще, чем добавление фиктивного скрипта перед каждой Задачей.Кто-нибудь еще видит или знает о проблеме с моим методом для решения этой проблемы?Предварительные тесты, кажется, работают, однако я обнаружил, что SSIS привередлив.Я бы предпочел не делать что-то «нетрадиционное», если это может вызвать проблемы в будущем.

Спасибо за любые мысли.

1 Ответ

8 голосов
/ 01 июня 2011

Я не думаю, что есть что-то unconventional в настройке выражений для отключения задач на условной основе. Я сделал то же самое в пакете, который я разработал. Я бы предпочел установить условия непосредственно в свойстве Disable задачи, используя Expressions, а не Script Task. Смотрите скриншот # 1 . Другими словами, я согласен с вашим подходом.

При таком подходе следует соблюдать осторожность: следующий человек, изучающий пакет, может не знать, почему конкретное задание не было выполнено в определенную дату (в вашем случае первый день месяца). Чтобы предотвратить это, вы можете добавить Annotation о том, что в свойстве Disable задачи задано значение Expression.

Еще одна вещь, которую я хотел бы предложить, - это вычислить значение первого дня месяца и сохранить его в переменной со свойством EvaluateAsExpression, равным true , и использовать эту переменную в выражениях дал задание отключить \ включить его. Это предотвратит вычисление значения в каждом из выражений задач. Снимок экрана # 1 показывает, что для свойства Disable установлено значение, сохраненное в переменной IsFirstDayOfMonth. Выражение для этой переменной может быть установлено для вычисления первого дня месяца.

Надеюсь, это поможет.

Скриншот № 1:

1

...