I have created a package with a for loop that runs for a few hours and process incoming files , but when a file is wrong and the processing gives an Error I want the for loop to continue with the next package but still log the error. To do this you have to play around with the Propagate variable. The Propagate variable controls whether the event is raised to the next container.
I have created 2 separate packages, one for the file watching and one for processing, the process package is executed from a execute package task, on this task I have created a OnError eventhandler and in this eventhandler set the propagate error to false.
This means when the package throws an error it will follow the Error constraint to enable you to for example send a mail or move the file but it won’t bubble the Error to the superseding task allowing the package to keep running.
Read more at: http://social.msdn.microsoft.com/Forums/pt-BR/sqlintegrationservices/thread/a8c841bf-8899-415f-a91f-1a4b17db6917 and http://agilebi.com/cs/blogs/jwelch/archive/2008/01/15/handling-multiple-errors-in-ssis-revisited.aspx