2016-06-23 5 views
0

У меня есть пакет SSIS, который ищет 8 файлов в заранее определенном месте. С помощью задачи скрипта я проверяю, отсутствуют ли какие-либо файлы? Если какие-либо файлы отсутствуют, я отправляю файлы с указанием сообщений электронной почты. Теперь я хочу остановить текущий пакет, если какие-либо файлы отсутствуют после отправки электронной почты.SSIS: прекратить выполнение пакета SSIS, если отсутствуют файлы

От ссылке Microsoft: https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.runningpackage.stop.aspx Я могу видеть, что я могу остановить пакет SSIS, останавливая службы SSIS (с SQL Server, который работает SSIS Service), что я не хочу делать то, что я не уверен, если это снова запустит службу ssis. Также у меня нет разрешения просматривать и запускать пакеты на сервере ssis и проверять этот способ.

Я не уверен, как прекратить использование инструмента DTEXEC. Я был бы признателен за любую помощь.

+2

Вы можете, например, подсчитать файлы и сохраните это в переменной. Затем используйте ограничение worklfow с выражением и продолжайте, если есть восемь файлов: https://blogs.msdn.microsoft.com/mattm/2006/11/01/conditional-constraints/ –

+0

Спасибо @ Nick.McDermaid. Я следил за учебником по ссылке, и он сработал. –

+0

I Если вы хотите задокументировать свое решение в ответ, вы должны его принять. –

ответ

0

Просто пропустите контейнер, добавив код «dts.TaskResult = ScriptResults.Failure».

После этого вы можете добавить контейнер «Сбой» (просто добавьте контейнер и смените зеленую стрелку на красный), чтобы отправить электронное письмо. Как только вы это сделаете, вы должны принудительно «сбой» на контейнер электронной почты и перейти к свойствам контейнера (вы можете просто щелкнуть правой кнопкой мыши и выбрать «Свойства»). Ищите «FailPackageOnFailure» и измените это на «True». Надеюсь, это поможет.

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