2013年3月17日日曜日

◆イベント ハンドラー

イベント ハンドラーの利用

イベント ハンドラーを利用するとパッケージ実行時のイベント(エラーや警告など)の内容に応じて、タスクを実行できるようになります。この Step では、パッケージのエラー発生時に、スクリプト タスクを実行するようにしてみましょう。

イベント ハンドラーの設定

ここでは、前の Step で作成した SSISoyo2 プロジェクトを引き続き利用します。

  1. イベント ハンドラーを設定するには、次のように[イベント ハンドラー]タブをクリックします。
    image
  2. 今回は、エラー発生時に実行するタスクを設定するので、[実行可能ファイル]で[Package]、[イベント ハンドラー]で「OnError」が選択されていることを確認して、[実行可能ファイル 'Package' の 'OnError' イベント ハンドラーを作成するにはここをクリックします]をクリックします。
    image
  3. これにより、次のようにイベント ハンドラー デザイナーが表示されるので、ここで、エラー発生時に実行するタスクを設定していきます。今回は、SSIS ツール ボックスの[共通]カテゴリから[スクリプト タスク]をドラッグ&ドロップして、配置します。
    image
  4. 配置した[スクリプト タスク]をダブル クリックします。
    image
  5. [スクリプト タスク エディター]ダイアログが表示されたら、今回も Visual Basic でスクリプトを記述するので、[ScriptLanguage]で「Microsoft Visual Basic 2010」を選択します。
    image
  6. 続いて、[ReadOnlyVariables]で[...]ボタンをクリックして、[変数の選択]ダイアログを表示し、システム変数の一覧から「System::ErrorCode」(エラー番号)と「System::ErrorDescription」(エラーの説明)をチェックします。
    image
  7. [スクリプト タスク エディター]へ戻ったら、[スクリプトの編集]ボタンをクリックします。
    image
  8. [スクリプト エディター]が表示されたら、「public Sub Main( )」内のコードを、次のように入力します(変数名の大文字と小文字に注意してください)。
    MessageBox.Show(Dts.Variables("System::ErrorCode").Value.ToString() _ & ":" & Dts.Variables("ErrorDescription").Value.ToString())
    imageこのコードにより、エラー番号とエラーの説明をメッセージ ボックスで表示できるようになります。
    入力後、保存してスクリプト エディターを閉じます。
  9. [スクリプト タスク エディター]ダイアログへ戻ったら、[OK]ボタンをクリックして閉じます。
    image
  10. パッケージをデバッグ実行して確認します。
    配置されている[スクリプト タスク]が実行中に変わり、エラー番号とエラーの説明がメッセージ ボックスで表示されることを確認できます。
    image
    このメッセージ ボックスは、エラー(OnError イベント)が発生した数の分だけ表示されるので、その分[OK]ボタンをクリックします。
  11. すべてのメッセージ ボックスが表示され、[スクリプト タスク]に緑のチェックマークが付いたら、デバッグを終了します。
  12. 最後に、[ファイル]メニューの[すべてを保存]をクリックして、SSISoyo2 プロジェクトを保存しておきます。このプロジェクトは、次の Step でも引き続き使用します。
    このように、イベント ハンドラーを利用すれば、パッケージのエラー発生時などに応じて、タスクを実行できるようになるので、大変便利です。

Note: エラー発生時にメール送信(メール送信タスク)
OnError イベント ハンドラーや OnTaskFailed(タスクの失敗)イベント ハンドラーでは、メール送信タスクを利用すると、エラー発生時にメールを送信できるようになるので便利です。
メール送信タスクでは、次のように「SMTP サーバー」の名前と「From」(送信元のメール アドレス)、「To」(送信先のメール アドレス)、「件名」を設定するだけでメールを送信することができます。

image

0 件のコメント:

コメントを投稿