SSIS:在数据流中使用 System::TaskName

对于更详细的日志记录,我想检索 [System::TaskName]

For more detailed logging, I want to retrieve the [System::TaskName]

现在,当从失败的任务开始时,我们转到脚本任务",在那里我获取 [System::TaskName] 并将其写入日志.从逻辑上讲,这会写入当前的 TaskName = 'Script task' 而不是失败的任务

Right now, when starting from the task that fails we go to 'script task', there I fetch [System::TaskName] and write that in the log. Logically this writes the current TaskName = 'Script task' instead of the failed task

问题是 System::TaskName 只知道在任务内部,逻辑上...事实上,我想从数据流内部更新一个变量User::CurrentTaskName",= 从任务内部.

Problem is the System::TaskName is only know inside the task, logical... In fact I want to update a variable 'User::CurrentTaskName' from inside the dataflow, = from inside the task.

如果我可以在数据流中使用脚本任务"组件,这将是最简单的,但我找不到.可能我需要一个解决方法.

This would be easiest if I could use a 'Script Task' component inside a dataflow but I can't find that. Probably I need a workaround.

希望你们大致明白我的意思...

Hope you guys understand approximately what I mean...

提前致谢!

推荐答案

我能够通过在脚本组件中添加以下内容来访问 TaskName.

I was able to access the TaskName by adding the following inside a Script Component.

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")

相关文章