April 27, 2012 at 5:28 am
Hi, I have configured a send mail task to fire when a data flow task fails. I want to message source of the mail task to be error description of the data flow task,
so in my send mail task I have configured the message source to be an expression:
"Error " + @[System::ErrorDescription]
when I deliberatlly cause the data flow task to fail (by passing invalid date/times) I get an error saying: "Failed to lock variable" in the send mail task
on a side note is it possible to pass the entire execution results of a package as an expression of a string variable and then use that variable to write to a file or as the message source of an email
thanks
April 27, 2012 at 5:53 am
Where did you put the Send Mail Task? In an event handler?
Need an answer? No, you need a question
My blog at https://sqlkover.com.
MCSE Business Intelligence - Microsoft Data Platform MVP
April 27, 2012 at 5:58 am
yes in onError event handler of the data flow task. Thanks
April 27, 2012 at 6:31 am
Just for testing purposes, what if you changed the Send Mail Task to an Execute SQL Task? (and do some insert statement into a table for example)
Need an answer? No, you need a question
My blog at https://sqlkover.com.
MCSE Business Intelligence - Microsoft Data Platform MVP
April 27, 2012 at 7:03 am
what i did was change the source from a variable to direct input and left the input blank and then built the expression. Now it emails the error message, but it emails 7 different emails (identical to the 7 error messages in the execution results).
Is it possible to further refine the @[System::ErrorDescription] so that I just get the basic error message, which is:
[BookingRef [276]] Error: An error occurred while processing file "k:\Protected\SSIS\test\Import\BOOKING.csv" on data row 2.
Instead of all the ThreadCancelld, PrimeOutputFailed etc etc etc error messages. If thats not possible can I map a package level user string variable to the @[System::ErrorDescription] and then perform some sub string formatting on the string variable. Can I pass an EventHandler system variable to a user package level variable?
Thanks
April 27, 2012 at 7:10 am
You'll need to parse the string yourself. Have fun with that
Need an answer? No, you need a question
My blog at https://sqlkover.com.
MCSE Business Intelligence - Microsoft Data Platform MVP
April 27, 2012 at 7:32 am
I'm happy to parse the string, but where and how map do I pass the system variable to the user variable.
I tried doing it in package explorer by adding @[System::ErrorDescription] to the expression of the user variable but that didnt work, I also tried in the expression of the send mail task for the message source.
It complained of coverting a bool to a string but the error message is a string according to http://msdn.microsoft.com/en-us/library/ms141788%28SQL.90%29.aspx
April 27, 2012 at 11:04 am
there is scripting solution to seperate out all the error messages returned by the main error message, it's quite simple to modify the code to suit your needs
http://agilebi.com/jwelch/2007/05/05/handling-multiple-errors-in-ssis/
Viewing 8 posts - 1 through 7 (of 7 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy