共用方式為


課程 4-3:新增錯誤流程重新導向

適用於:SQL Server Azure Data Factory 中的 SSIS Integration Runtime

在上一個工作中,當 [查閱貨幣索引鍵] 轉換試圖處理已損毀的範例一般檔案 (會產生錯誤) 時,無法產生相符項目。 因為轉換使用錯誤輸出的預設值,所以任何錯誤都會造成轉換失敗。 當轉換失敗時,封裝的其餘部分也會失敗。

若要不讓轉換失敗,您可以利用錯誤輸出,設定讓元件將失敗的資料列重新導向到另一個處理路徑。 使用個別的錯誤處理路徑可提供更多選項。 例如,您可以清除資料,然後重新處理失敗的資料列。 或者,您可以儲存失敗的資料列及其錯誤資訊,供以後驗證和重新處理。

在此工作中,您會設定 [查閱貨幣索引鍵] 轉換,以將任何失敗的資料列重新導向到錯誤輸出。 在資料流程的錯誤分支中,Integration Services 會將這些資料列寫入檔案。

根據預設,Integration Services 錯誤輸出中的兩個額外資料行 ErrorCodeErrorColumn 只包含數字錯誤碼,以及發生錯誤之資料行的識別碼。 在此工作中,於封裝將失敗的資料列寫入檔案之前,您需使用指令碼元件來存取 Integration Services API 及取得該錯誤的描述。

設定錯誤輸出

  1. [SSIS 工具箱] 中,展開 [通用] ,然後將 [指令碼元件] 拖曳至 [資料流程] 索引標籤的設計介面中。將 [指令碼] 放到 [查閱貨幣索引鍵] 轉換的右邊。

  2. 在 [選取指令碼元件類型] 對話方塊中,選取 [轉換],然後選取 [確定]

  3. 若要連接兩個元件,請選取 [查閱貨幣索引鍵] 轉換,然後將其紅色箭頭拖曳至新的 [指令碼]

    紅色箭頭代表 [查閱貨幣索引鍵] 轉換的錯誤輸出。 藉由使用紅色箭頭將轉換連接到「指令碼」元件,即可將任何處理錯誤重新導向到該「指令碼」元件,然後由它處理這些錯誤並傳送到目的地。

  4. 在 [設定錯誤輸出] 對話方塊的 [錯誤] 資料行中,選取 [重新導向資料列],然後選取 [確定]

  5. 在 [資料流程] 設計介面上,於新的 ScriptComponent 中選取 [指令碼元件] 名稱,然後將該名稱變更為取得錯誤描述

  6. 按兩下 [取得錯誤描述] 轉換。

  7. [指令碼轉換編輯器] 對話方塊的 [輸入資料行] 頁面上,選取 [ErrorCode] 資料行。

  8. 在 [輸入及輸出] 頁面上,展開 [輸出 0],選取 [輸出資料行],然後選取 [加入資料行]

  9. 在 [Name] 屬性中,輸入 ErrorDescription,然後將 [DataType] 屬性設定為 [Unicode 字串 [DT_WSTR]]

  10. 在 [指令碼] 頁面上,確認 [LocaleID] 屬性是設定為 [英文 (美國)]。

  11. 選取 [編輯指令碼] 以開啟 Microsoft Visual Studio Tools for Applications (VSTA)。 在 Input0_ProcessInputRow 方法中,輸入或貼上下列程式碼:

    [Visual Basic]

    Row.ErrorDescription =   
      Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)  
    

    [Visual C#]

    Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);  
    

    完成的副程式看起來會像下列程式碼:

    [Visual Basic]

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)  
    
      Row.ErrorDescription =   
        Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)  
    
    End Sub  
    

    [Visual C#]

    public override void Input0_ProcessInputRow(Input0Buffer Row)  
        {  
    
            Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);  
    
        }  
    
  12. 在 [建置] 功能表上,選取 [建置方案] 以建置指令碼並儲存您的變更,然後關閉 VSTA。

  13. 選取 [確定] 以關閉 [指令碼轉換編輯器] 對話方塊。

移至下一個工作

步驟 4:新增一般檔案目的地