使用指令碼元件增強錯誤輸出
依預設,Integration Services 錯誤輸出中的兩個額外資料行 ErrorCode 與 ErrorColumn 只包含數字碼,代表錯誤號碼及發生錯誤之資料行的識別碼。這些數值若無對應的錯誤描述,則用途有限。
此主題描述如何使用指令碼元件,將錯誤描述資料行加入資料流程中的現有錯誤輸出資料。此範例使用 IDTSComponentMetaData100 介面的 GetErrorDescription 方法 (可透過指令碼元件的 ComponentMetaData 屬性取得),加入對應至特定預先定義的 Integration Services 錯誤碼之錯誤描述。
[!附註]
如果您要建立可以更輕鬆地在多個資料流程工作與多個封裝之間重複使用的元件,請考慮使用這個指令碼元件範例中的程式碼,做為自訂資料流程元件的起點。如需詳細資訊,請參閱<開發自訂資料流程元件>。
範例
在這裡顯示的範例使用設定成轉換的指令碼元件,將錯誤描述資料行加入資料流程中的現有錯誤輸出資料。
如需有關如何將指令碼元件設定成當做資料流程中的轉換使用的詳細資訊,請參閱<使用指令碼元件建立同步轉換>與<使用指令碼元件建立非同步轉換>。
設定此指令碼元件範例
在建立新指令碼元件之前,請先設定資料流程中的上游元件,使它在錯誤或截斷發生時將資料列重新導向至其錯誤輸出。為了進行測試,您可能會想要以確定錯誤將發生的方式設定元件,例如,在查閱將失敗的兩個資料表之間,設定「查閱」轉換。
將新指令碼元件加入資料流程設計師介面,並將它設定為轉換。
從上游元件將錯誤輸出連接至新指令碼元件。
開啟 [指令碼轉換編輯器],然後在 [指令碼] 頁面上為 [ScriptLanguage] 屬性選取指令碼語言。
按一下 [編輯指令碼] 開啟 MicrosoftVisual Studio Tools for Applications (VSTA) IDE,並加入以下所示的範例程式碼。
關閉 VSTA。
在 [指令碼轉換編輯器] 的 [輸入資料行] 頁面上,選取 [ErrorCode] 資料行。
在 [輸入及輸出] 頁面上,加入類型為 String 且名為 ErrorDescription 的新輸出資料行。將新資料行的預設長度增加至 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);
}
}
|