0

我有一个要求,我在 SSIS 包后执行事件处理程序中使用了发送邮件任务,其中我发送了一封合并错误的电子邮件。现在,根据客户要求,我需要启用或禁用此发送错误电子邮件功能。这个标志(真/假)可以通过包配置来配置。有人可以为我指出正确的实施方向吗?

4

2 回答 2

0

只需在电子邮件模块之前的优先约束中添加一个表达式:

http://msdn.microsoft.com/en-us/library/ms140153.aspx

因此,如果您有一个名为 sendmail 的用户变量,则您的优先约束可能要求表达式@sendmail == true计算结果为 true 才能继续执行 sendmail 任务。

于 2013-07-22T15:36:37.847 回答
0

如果您使用的是包配置,那么您只需更改源中的值(表、xml 文件、环境变量、注册表项)。如果您想在运行时设置它,您也可以将其作为执行选项进行。假设您有一个变量 EnableMail,您可以Set在运行包时使用语句来更改变量的值。

dtexec.exe /file MyPackage /set \Package.Variables[User::EnableMail].Properties[Value];"True"

现在,如果您混合使用配置并使用命令行方法,则 2005 和 2008 软件包在应用顺序方面存在差异。请参阅 John Welch 的文章:定义集成服务包的配置方法

无论您选择将值分配给变量的哪种方式,您都可以将事件处理程序作为一个整体或仅关闭邮件发送部分。Disable只需使用您的变量将表达式分配给属性。

我还会考虑更改变量的名称以匹配 Disable 属性的正/负意义,因为 EnableMail 的 True 将具有否定表达式!@[User::EnableMail],但这只是语义。

于 2013-07-22T15:38:17.997 回答