【问题标题】:How can I use System::ErrorDescription system variable in the expression builder如何在表达式生成器中使用 System::ErrorDescription 系统变量
【发布时间】:2017-02-20 10:49:57
【问题描述】:

我正在使用 BIML 创建 SSIS 包,包的一部分处理发生的错误。我正在使用一个 Execute SQL Task,它调用一个存储过程来记录数据库中的错误详细信息,并且存储过程需要一个参数 @Comments 来保存错误描述和其他一些自定义信息。

我正在尝试创建一个变量 Error_Details 并使用表达式来构建 @Comments 参数的值。

<Parameters>
    <Parameter Name="ParentPkgID" DataType="Int32">0</Parameter>
</Parameters>

<Variables>
    <Variable Name="TableName" DataType="String">
        tblEmployee
    </Variable>
    <Variable Name="Error_Details" DataType="String" EvaluateAsExpression="true"> 
        &quot;Package execution failed, Error details :: &quot; + @[System::ErrorDescription]
    </Variable>
</Variables>

问题是当我使用上面的代码创建变量时,包创建失败,我理解 System::ErrorDescription 在表达式生成器中不可用,但我在这里有什么选择。

如何使用仅在 BIML 代码中的某些特定上下文中可用的一些系统变量。

非常感谢您查看我的问题。请提出解决方案。

【问题讨论】:

    标签: ssis ssis-2012 biml


    【解决方案1】:

    这是由于 SSIS 中的限制,如果您尝试在此处使用上述表达式,SSDT 设计器会给您类似的错误。

    SSIS 仅使 System::ErrorDescription 和 System::ErrorCode 变量在某些事件处理程序类型的上下文中可用,例如 OnError。

    您可以重新安排您的包以在 ExecuteSQL 任务上创建一个事件处理程序,获取其中的错误描述,然后在事件处理程序中使用您的存储过程调用来处理它。以下是一些将按预期构建的最小示例代码:

    <Biml xmlns="http://schemas.varigence.com/biml.xsd">
        <Packages>
            <Package Name="Package1">
                <Tasks>
                    <Dataflow Name="DataflowTask1">
                        <Events>
                            <Event Name="OnError" EventType="OnError">
                                <Variables>
                                    <Variable Name="Error_Details" DataType="String" EvaluateAsExpression="true">&quot;Package execution failed, Error details :: &quot; + @[System::ErrorDescription]    </Variable>
                                </Variables>
                            </Event>
                        </Events>
                    </Dataflow>
                </Tasks>
            </Package>
        </Packages>
    </Biml>
    

    【讨论】:

    • 感谢斯科特非常有帮助。最后,我在事件处理程序中创建了一个表达式任务,将所需的值分配给变量 Error_Details。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    相关资源
    最近更新 更多