如何在错误处理程序中获取FireError方法的SubComponent参数
SSIS FireError方法SubComponent参数获取说明
Dts.Events.FireError方法的第二个参数SubComponent支持在错误处理程序中直接获取,无需额外自定义变量透传。- 访问方式:在错误对应的
OnError事件处理上下文里,读取系统变量System::SourceName即可拿到传入的SubComponent参数值。
参数映射关系验证
你可以通过简单测试确认参数和系统变量的对应关系,在脚本任务中写入如下测试代码触发自定义错误:
bool fireAgain = true; Dts.Events.FireError( errorCode: 1001, subComponent: "订单数据校验模块", description: "订单金额字段存在负值非法数据", helpFile: string.Empty, helpContext: 0, fireAgain: ref fireAgain );
给该脚本任务绑定OnError事件处理程序,在事件处理流程中读取系统变量,对应关系如下:
System::ErrorCode:匹配传入的第一个参数errorCode,本例返回值为1001System::SourceName:匹配传入的第二个参数subComponent,本例返回值为订单数据校验模块System::ErrorDescription:匹配传入的第三个参数description,本例返回值为订单金额字段存在负值非法数据
注意事项:该变量值仅在当前错误对应的OnError事件处理上下文中有效,普通控制流、数据流节点无法读取某次错误触发时传入的SubComponent值;如果未主动调用
FireError自定义触发错误,而是由脚本任务抛出原生运行时异常,System::SourceName会默认返回当前脚本任务的名称。
内容的提问来源于stack exchange,提问作者zernager
相关产品推荐
相关产品推荐

