更新日期: 2006 年 7 月 17 日
如上一个任务中所示,当 Lookup Currency Key 转换尝试对产生错误的已损坏示例平面文件进行处理时,该转换无法生成匹配。 由于转换针对错误输出使用了默认设置,因此,任何错误都将导致该转换失败。 当转换失败时,该包的其余部分也将失败。
可以使用错误输出将组件配置为将失败的行重定向到其他处理路径,而不是允许转换失败。 使用单独的错误处理路径,您可以执行多项任务。 例如,您可能要尝试清除该数据,然后重新处理失败的行。 或者,您可能要将失败的行与其他错误信息保存在一起,以便以后进行验证和重新处理。
在本任务中,您将 Lookup Currency Key 转换配置为将所有失败的行重定向到错误输出。 在数据流的错误分支中,这些行将被写入文件中。
默认情况下,Integration Services 错误输出中的另外两列(ErrorCode 和 ErrorColumn)只包含表示错误号的数值代码以及出现错误的列的 ID。 这些数值的使用具有限制性,而且没有相应的错误说明。
若要增强错误输出的用途,请在包将失败的行写入文件之前,使用脚本组件来访问 Integration Services API 并获取错误说明。
配置错误输出
在**“工具箱”中,展开“数据流转换”,然后将“脚本组件”拖动到“数据流”选项卡上的设计图面。 将“脚本”**放置在 Lookup Currency Key 转换的右侧。
在**“选择脚本组件类型”对话框中,单击“转换”,再单击“确定”**。
单击 Lookup Currency Key 转换,并将红色箭头拖动到新添加的**“脚本”**转换中,以连接这两个组件。
红色箭头表示 Lookup Currency Key 转换的错误输出。 通过使用红色箭头将转换连接到脚本组件,您可以将所有处理错误重定向到脚本组件,然后,该组件会处理这些错误并将它们发送到目标。
在**“配置错误输出”对话框的“错误”列中,选择“重定向行”,再单击“确定”**。
在**“数据流”设计图面上,右键单击新添加的“脚本”转换,单击“重命名”**,再将该名称更改为 Get Error Description。
双击 Get Error Description 转换。
在**“脚本转换编辑器”对话框中的“输入列”**页中,选择 ErrorCode 列。
在**“输入和输出”页中,展开“输出 0”,单击“输出列”,再单击“添加列”**。
在 Name 属性中,键入 ErrorDescription 并将 DataType 属性设置为 string [DT_WSTR]。
在**“脚本”页中,确保已将 LocaleID 属性设置为“英语(美国)”**。
单击**“设计脚本”**打开 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
在**“文件”菜单中,单击“关闭并返回”关闭 VSA IDE 和“脚本转换编辑器”**对话框。
单击**“确定”**。