如果我在我的SSIS包中使用 OnError 事件处理程序,则存在变量 System :: ErrorCode 和 System :: ErrorDescription 如果执行时出现任何问题,可以获取错误信息。
但我无法找到相同的 OnTaskFailed 事件处理程序,即如何从OnTaskFailed事件处理程序获取 ErrorCode 和 ErrorDescription 如果我们只想为我们的包实现OnTaskFailed事件处理程序,那么在执行时任何事情都会失败吗?
答案 0 :(得分:1)
这可能会有所帮助,它是所有系统变量的列表以及何时可用。
答案 1 :(得分:0)
我刚刚遇到了同样的问题,并且通过以下方法解决了这个问题:
答案 2 :(得分:0)
转到要监视错误的任务的事件处理程序,然后单击链接以创建新的处理程序。
然后创建一个任务,例如“发送邮件”并创建2个变量:mail_header和mail_body。
重要:将变量从当前范围移到 OnError 范围,否则在处理程序包时这些值将不可用。
在执行“ + @ [System :: PackageName] +” package时,将mail_subject变量定义为字符串,并将表达式设置为:“ Error” + @ [System :: TaskName] +“。
将mail_body变量定义为字符串,并将表达式设置为:REPLACENULL(@ [System :: ErrorDescription],“”)+“ \ n通知您的系统管理员。
在任务编辑器上,创建一个表达式,将Subject分配给@mail_subject变量。将MessageSourceType定义为变量,并将MessageSource设置为@mail_body。
答案 3 :(得分:-1)
在您放入错误事件处理程序的任务中,您可以选择仅在错误处理程序中可用的参数,例如system:Errordescription或system:Sourcename(提供失败的任务)。我们将这些作为输入变量用于存储过程,该过程插入到错误表中(以及发送失败过程的电子邮件),该过程存储除日志记录表之外的其他信息。我们还使用日志记录表来记录我们的步骤,并在错误中包含错误信息。