我有一个要求,我在SSIS包邮件执行事件处理程序中使用了发送邮件任务,我在其中发送了一个合并错误的电子邮件。现在,根据客户端要求,我需要启用或禁用此发送错误电子邮件功能。可以通过程序包配置配置此标志(true / false)。有人可以指点我实施它的正确方向吗?
答案 0 :(得分:0)
只需将表达式添加到电子邮件模块之前的优先约束:
http://msdn.microsoft.com/en-us/library/ms140153.aspx
因此,如果您有一个名为sendmail的用户变量,那么您的优先约束可能要求表达式@sendmail == true
的计算结果为true才能继续执行sendmail任务。
答案 1 :(得分:0)
如果您使用的是“程序包配置”,则只需更改源中的值(表,xml文件,环境变量,注册表项)。如果要在运行时设置它,也可以将其作为执行选项。假设您有一个变量EnableMail,您可以在运行包时使用Set
语句来更改变量的值。
dtexec.exe /file MyPackage /set \Package.Variables[User::EnableMail].Properties[Value];"True"
现在,如果您混合使用Configuration并使用命令行方法,那么2005和2008软件包之间的应用顺序会有所不同。请参阅John Welch的文章:Defining a Configuration Approach for Integration Services Packages
无论哪种方式,您选择将值分配给您的变量,您可以关闭事件处理程序作为一个整体或仅打开邮件发送部分。只需使用您的变量为Disable
属性指定表达式。
我还会考虑更改变量的名称以匹配Disable属性的正/负意义,因为True for EnableMail会有一个否定的表达式!@[User::EnableMail]
,但这只是语义。