SSIS,如何使用配置文件中的值?

时间:2013-09-18 11:25:46

标签: sql-server visual-studio ssis

我使用MS Visual Studio 2008创建了一个商业智能项目。 在dtsx我有一个简单的邮件任务。如何从dtsConfig文件中使用MailTo变量?

<Configuration ConfiguredType="Property" Path="\Package.Variables[User::MailTo].Properties[Value]" ValueType="String"> <ConfiguredValue>hello@world.com</ConfiguredValue> </Configuration>

现在我正在使用Windows批处理脚本来运行这个dtsx包。

dtexec /f "D:\MyPath\Sample.dtsx" /conf "D:\MyPath\Sample.dtsConfig"

当我在更改配置文件变量[User::MailTo]后执行时,它不会进行操作。 它将邮件发送到以前的邮件ID。

如何在运行时使用dtsConfig文件中的变量[User::MailTo]

提前致谢...

1 个答案:

答案 0 :(得分:0)

变量存在于根/包级别的SSIS中。变量可以存在于其他范围中,因此识别存在的位置非常重要。

您使用的配置文件在运行时将值“hello@world.com”分配给@ [User :: MailTo]

如果您举办了一个活动,您可以看到MailTo的值从设计时间值TempExpt@other.net更改为配置文件中的值。现在的诀窍是让Mail Task使用变量而不是硬编码值。

这是通过表达式完成的。 SSIS中的每个对象都公开了一个Expressions集合。你可能有一个看似简单的包,但它可以从这里连接到无限,表达链接到其他表达式。我经常提到专业人士和助手之间的区别在于明智地使用表达式,配置和记录。

双击“发送邮件任务”,应该有“表达式”选项卡。在那里,在第一个网格中,单击下拉列表,直到找到“收件人”字段。在下一列中,使用变量@[User::MailTo]

虽然您可以使用编辑器在对象上构建复杂的表达式,但我强烈建议不要这样做。创建一个变量,在那里使用邪恶的复杂表达式逻辑,在你的对象中,只需引用变量。其原因是支持和维护。您无法检查对象以查看表达式。如果它们不好,您的包裹会爆炸,您无法进行故障排除。如果它只是一个表达式,你可以在它们上设置一个断点,然后检查你的变量,寻找什么是错误。