2017-01-27 8 views
0

У меня есть пакет SSIS, который отправляет электронное письмо при сбое задачи, позволяя мне узнать имя задачи. Я пытаюсь получить более конкретные ошибки. Я добавил код ниже в мою задачу скрипта VB, но никогда не получаю ошибку.SSIS Как отправить сообщение об ошибке, полученной в скрипте VB

У меня есть переменная строки, удерживающая ошибку, [User :: EmailError]. У меня есть эта переменная, заданная в моей задаче как ReadWriteVariables. У меня есть код ниже, чтобы зафиксировать ошибку и поместить ее в переменную. У меня также есть свойство задачи скрипта «FailPackageOnFailure», установленное в true.

Try 
     smtpServer.Send(email) 
    Catch ex As Exception 
     Dts.Variables("EmailError").Value = ex.ToString 
     Dts.TaskResult = ScriptResults.Failure 
    End Try 

У меня есть OnError настройка обработчика событий для задачи сценария с отправкой почты задачей, используя следующее выражение для messagsource.

"The Send User Email script failed with the following error:" 
[email protected][User::EmailError] 

Получаю письмо, но переменная всегда пуста.

ответ

0

Оказывается, мой скрипт генерирует ошибку при назначении адреса электронной почты «Кому» почтовому сообщению, которое находилось вне Try/Catch. Я переместил Try, и ошибка была обнаружена и успешно отправлена ​​по электронной почте.