使用脚本组件增强错误输出
默认情况下,Integration Services 错误输出中的另外两列 ErrorCode 和 ErrorColumn 只包含表示错误号的数值代码以及出现错误的列的 ID。 如果没有相应的错误说明,这些数值没有多大用处。
本主题介绍如何使用脚本组件向数据流中的现有错误输出数据中添加错误说明列。 示例使用 IDTSComponentMetaData100 接口的 GetErrorDescription 方法添加与特定预定义 Integration Services 错误代码对应的错误说明,该接口通过脚本组件的 ComponentMetaData 属性提供。
注意 |
---|
如果希望创建可更方便地重用于多个数据流任务和多个包的组件,请考虑以此脚本组件示例中的代码为基础,创建自定义数据流组件。 有关详细信息,请参阅开发自定义数据流组件。 |
示例
下面显示的示例使用一个配置为转换的脚本组件向数据流中的现有错误输出数据中添加错误说明列。
有关如何配置脚本组件以用作数据流中的转换的详细信息,请参阅使用脚本组件创建同步转换和使用脚本组件创建异步转换。
配置此脚本组件示例
创建新脚本组件之前,先配置数据流中的上游组件,以便在错误或截断出现时将行重定向到上游组件的错误输出。 出于测试目的,您可能希望以确保将发生错误的方式来配置组件,例如,在两个将发生查找失败的表之间配置一个查找转换。
向数据流设计器图面添加新的脚本组件并将其配置为转换。
将错误输出从上游组件连接到新脚本组件。
打开**“脚本转换编辑器”,在“脚本”**页中,为 ScriptLanguage 属性选择脚本语言。
单击**“编辑脚本”**打开 Microsoft Visual 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);
}
}
|