スクリプト コンポーネントによるエラー出力の強化
既定では、Integration Services のエラー出力の 2 つの追加列 (ErrorCode と ErrorColumn) には、エラー番号を表す数値コードと、エラーが発生した列の ID しか含まれていません。これらの数値は、対応するエラー説明がないとあまり役に立ちません。
ここでは、スクリプト コンポーネントを使用して、データ フローの既存のエラー出力データにエラー説明の列を追加する方法を説明します。この例では、IDTSComponentMetaData100 インターフェイスの GetErrorDescription メソッドを使用して、事前定義された特定の Integration Services エラー コードに対応するエラーの説明を追加します。これは、スクリプト コンポーネントの ComponentMetaData プロパティから使用できます。
注意 |
---|
複数のデータ フロー タスクおよび複数のパッケージでより簡単に再利用できるコンポーネントを作成する場合は、このスクリプト コンポーネント サンプルのコードを基にした、カスタム データ フロー コンポーネントの作成を検討してください。詳細については、「カスタム データ フロー コンポーネントの開発」を参照してください。 |
例
次に示す例では、変換として構成されたスクリプト コンポーネントを使用して、データ フローの既存のエラー出力データにエラー説明の列を追加します。
スクリプト コンポーネントをデータ フローで変換として使用するための構成方法の詳細については、「スクリプト コンポーネントによる同期変換の作成」および「スクリプト コンポーネントによる非同期変換の作成」を参照してください。
このスクリプト コンポーネントの例を構成するには
新しいスクリプト コンポーネントを作成する前に、データ フローの上流コンポーネントを構成して、エラーや切り捨てが発生した場合に行をエラー出力にリダイレクトするようにします。テスト目的の場合、たとえば、参照が失敗するような 2 つのテーブル間の参照変換を構成するなどして、エラーが発生するような形でコンポーネントを構成します。
新しいスクリプト コンポーネントを [データ フロー] デザイナ画面に追加し、変換として構成します。
上流コンポーネントからのエラー出力を新しいスクリプト コンポーネントに接続します。
[スクリプト変換エディタ] を開き、[スクリプト] ページの [ScriptLanguage] プロパティでスクリプト言語を選択します。
[スクリプトの編集] をクリックして MicrosoftVisual Studio Tools for Applications (VSTA) IDE を開き、以下に示すサンプル コードを追加します。
VSTA を閉じます。
スクリプト変換エディタの [入力列] ページで、[ErrorCode] 列を選択します。
[入力および出力] ページで、ErrorDescription という String 型の新しい出力列を追加します。長いメッセージをサポートするために、新しい列の既定の長さを 255 に拡張します。
[スクリプト変換エディタ] を閉じます。
スクリプト コンポーネントの出力を、適切な変換先にアタッチします。アドホック テスト用に最も構成しやすいのは、フラット ファイル変換先です。
パッケージを実行します。
Public Class ScriptMain
Inherits UserComponent
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Row.ErrorDescription = _
Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)
End Sub
End Class
public class ScriptMain:
UserComponent
{
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);
}
}
|