SSIS データフローの途中で変換を実行するスクリプト タスクがあります。スクリプトが失敗した場合 (たとえば、文字を数値に変換しようとした場合)、「失敗」ステータスで停止し、メイン パッケージに戻り、データフロー タスク イベント ハンドラのOnErrorを使用して正常に終了する必要があります。
現時点では、データフローのスクリプト タスクが .net エラー ポップアップを返していることがわかりました。これをクリアする必要があります。デバッグウィンドウの表示を停止しているように見えるコードの周りでTry Catchを試しましたが、パッケージが失敗する原因となる「失敗ステータス」でスクリプトを終了させることができないようです。Dts.TaskResult = Dts.Results.Failure は、データフロー タスクでは有効ではないようです。現時点で私はこれを試しています:
Catch e As System.Exception
Me.ComponentMetaData.FireError(-1, "", "Error: ", e.Message, 1, True)
While Not e.InnerException Is Nothing
e = e.InnerException
Me.ComponentMetaData.FireError(-1, "", "InnerException: ", e.Message, 1, True)
End While
Exit Sub
End Try
...しかし、これは悪い行をスキップするだけです。データフローは継続します。問題は、「失敗」として終了するため、パッケージの onError エラー ハンドラー イベントがトリガーされることです。
どんな提案もありがたく受け取った。グレン