Input SSIS:获取先前数据流组件的名称

Input SSIS:获取先前数据流组件的名称,input,path,ssis,custom-component,Input,Path,Ssis,Custom Component,我正在尝试增强登录SSIS时的错误。除了使用SSIS的内置日志(OnError、OnWarning等)保存到Syssilog之外,我还跟踪重定向到错误输出的特定行(我将这些行转换为xml,添加包和数据流任务的名称,并将这些行放到数据库中的表中)。我试图通过包括抛出错误的数据流组件来增强跟踪重定向错误行时捕获的信息 我的问题是,我不知道如何最好地传递组件名称,使其成为工作流的一部分。我的第一个想法是创建一个可以捕获这些信息的自定义组件,但我似乎找不到一种方法来从IDTSInput100对象回溯到其

我正在尝试增强登录SSIS时的错误。除了使用SSIS的内置日志(OnError、OnWarning等)保存到Syssilog之外,我还跟踪重定向到错误输出的特定行(我将这些行转换为xml,添加包和数据流任务的名称,并将这些行放到数据库中的表中)。我试图通过包括抛出错误的数据流组件来增强跟踪重定向错误行时捕获的信息

我的问题是,我不知道如何最好地传递组件名称,使其成为工作流的一部分。我的第一个想法是创建一个可以捕获这些信息的自定义组件,但我似乎找不到一种方法来从IDTSInput100对象回溯到其关联的IDTSPath100对象。如果我能做到这一点,那么我想我可以获得与其关联的IDTSOutput100对象的ID,然后再后退一步,以便从数据流中的前一个组件获取元数据


关于如何最好地实现我的最终目标,有什么建议吗?谢谢你的帮助

不要对此进行过多解读,但您能否只拥有一个派生列并将所有需要的信息添加到传出错误行中?我通常以这种方式(在查找时)添加自定义错误消息,表示“客户ID:[ColumnName]的查找失败”。这对我有好处

我想出了如何获取上游组件名称!我对每个IDTSInput100对象使用GetVirtualInput方法,然后访问IDTSVirtualInputColumn100对象以查找UpstreamComponentName。必须有一个更简单的方法,但至少我能做我需要的


还有rvphx,谢谢你的建议。这对于获取错误列的名称和描述非常有用。

这是我使用上面的(user1956536)注释所做的。我同意这很糟糕,必须有更好的方法

    IDTSInputCollection100 inputCollection = ComponentMetaData.InputCollection;
    String upStreamComponent = String.Empty;
    if(inputCollection.Count > 0)
    {
        IDTSVirtualInput100 virtualInput =  inputCollection[0].GetVirtualInput();
        IDTSVirtualInputColumnCollection100 virtualInputColumnCollection = virtualInput.VirtualInputColumnCollection;
        if (virtualInputColumnCollection.Count > 0)
        {
            upStreamComponent = virtualInputColumnCollection[0].UpstreamComponentName;
        }
    }

    Row.ErrorDescription = ComponentMetaData.GetErrorDescription(Row.ErrorCode);
    Row.ErrorComponent = upStreamComponent;

对不起,你能澄清一下你的意思吗?执行查找时,将错误输出连接到派生列组件,该组件会在转储表中的错误行之前添加一列,该列显示“查找失败”?如果是这样的话,那不是我想要的。我想构建一些东西来简化流程,并尽可能减少在项目中设置错误日志记录时的手动工作。我们希望能够自动获取重定向错误行的组件的名称,这样除了连接错误输出外,就不需要额外的手动操作。但这不是直截了当的。让我们知道这是否有用。