protected void ExecuteDuringDesignTime(XPathNavigator patternNavigator, DTS.Executable task) { bool executeNow = patternNavigator.SelectSingleNode("@ExecuteDuringDesignTime").ValueAsBoolean; if (executeNow) { Message.Trace(Severity.Alert, "Executing DTS Package {0}", VulcanPackage.ExtractNameFromDTSExecutable(task)); this.SafeExecute(task); } }
protected void SafeExecute(DTS.Executable executable) { Vulcan.Common.ErrorEvents errorHandler = new Vulcan.Common.ErrorEvents(); DTS.DTSExecResult execResult = executable.Execute(null, null, errorHandler, null, null); if (execResult == Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success && errorHandler.ValidationErrorCount == 0) { Message.Trace( Severity.Notification, "Success executing Task {0}", VulcanPackage.ExtractNameFromDTSExecutable(executable) ); } else { Message.Trace( Severity.Error, "Error executing Task {0}: Result = {1} (BugBug: SSIS always returns success) but ErrorCount = {2}", VulcanPackage.ExtractNameFromDTSExecutable(executable), execResult, errorHandler.ValidationErrorCount ); } }