有关更详细的日志记录,我想检索[System :: TaskName]
现在,当从失败的任务开始我们转到'脚本任务'时,我获取[System :: TaskName]并将其写入日志中。从逻辑上讲,这会写入当前的TaskName ='Script task'而不是失败的任务
问题是System :: TaskName只知道任务内部,逻辑... 实际上我想从数据流内部更新变量'User :: CurrentTaskName',=来自任务内部。
如果我可以在数据流中使用“脚本任务”组件,这将是最简单的,但我找不到。 可能我需要一个解决方法。
希望大家明白我的意思......
提前致谢!
答案 0 :(得分:5)
从数据流的外观来看,您似乎正在尝试实现错误记录。我过去曾经为这类事情使用事件处理程序运气好。它还具有清理布局和将来更容易维护包的额外好处,因为您不需要保持从所有任务到错误处理的链接。
答案 1 :(得分:4)
我可以通过在脚本组件中添加以下内容来访问TaskName。
Private Function ReadVariable(ByVal varName As String) As Object
Dim result As Object
Try
Dim vars As IDTSVariables100
Me.VariableDispenser.LockForRead(varName)
Me.VariableDispenser.GetVariables(vars)
Try
result = vars(varName).Value
Catch ex As Exception
Throw ex
Finally
vars.Unlock()
End Try
Catch ex As Exception
Throw ex
End Try
Return result
End Function
然后像这样访问变量
ReadVariable("System::TaskName")