添加错误流重定向

更新日期: 2006 年 7 月 17 日

如上一个任务中所示,当 Lookup Currency Key 转换尝试对产生错误的已损坏示例平面文件进行处理时,该转换无法生成匹配。 由于转换针对错误输出使用了默认设置,因此,任何错误都将导致该转换失败。 当转换失败时,该包的其余部分也将失败。

可以使用错误输出将组件配置为将失败的行重定向到其他处理路径,而不是允许转换失败。 使用单独的错误处理路径,您可以执行多项任务。 例如,您可能要尝试清除该数据,然后重新处理失败的行。 或者,您可能要将失败的行与其他错误信息保存在一起,以便以后进行验证和重新处理。

在本任务中,您将 Lookup Currency Key 转换配置为将所有失败的行重定向到错误输出。 在数据流的错误分支中,这些行将被写入文件中。

默认情况下,Integration Services 错误输出中的另外两列(ErrorCodeErrorColumn)只包含表示错误号的数值代码以及出现错误的列的 ID。 这些数值的使用具有限制性,而且没有相应的错误说明。

若要增强错误输出的用途,请在包将失败的行写入文件之前,使用脚本组件来访问 Integration Services API 并获取错误说明。

配置错误输出

  1. 在**“工具箱”中,展开“数据流转换”,然后将“脚本组件”拖动到“数据流”选项卡上的设计图面。 将“脚本”**放置在 Lookup Currency Key 转换的右侧。

  2. 在**“选择脚本组件类型”对话框中,单击“转换”,再单击“确定”**。

  3. 单击 Lookup Currency Key 转换,并将红色箭头拖动到新添加的**“脚本”**转换中,以连接这两个组件。

    红色箭头表示 Lookup Currency Key 转换的错误输出。 通过使用红色箭头将转换连接到脚本组件,您可以将所有处理错误重定向到脚本组件,然后,该组件会处理这些错误并将它们发送到目标。

  4. 在**“配置错误输出”对话框的“错误”列中,选择“重定向行”,再单击“确定”**。

  5. 在**“数据流”设计图面上,右键单击新添加的“脚本”转换,单击“重命名”**,再将该名称更改为 Get Error Description

  6. 双击 Get Error Description 转换。

  7. 在**“脚本转换编辑器”对话框中的“输入列”**页中,选择 ErrorCode 列。

  8. 在**“输入和输出”页中,展开“输出 0”,单击“输出列”,再单击“添加列”**。

  9. Name 属性中,键入 ErrorDescription 并将 DataType 属性设置为 string [DT_WSTR]

  10. 在**“脚本”页中,确保已将 LocaleID 属性设置为“英语(美国)”**。

  11. 单击**“设计脚本”**打开 Visual Studio for Applications (VSA) 脚本环境。 在 Input0_ProcessInputRow 方法中,键入或粘贴以下代码。

    Row.ErrorDescription =

    Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)

    已完成的子例程如以下代码所示。

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

    Row.ErrorDescription =

    Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)

    End Sub

  12. 在**“文件”菜单中,单击“关闭并返回”关闭 VSA IDE 和“脚本转换编辑器”**对话框。

  13. 单击**“确定”**。

后续步骤

添加平面文件目标