SSIS——根据员工情况给员工发送不同的邮件
SSIS - send different emails to employees depending on employee situation
我对 SSIS 还很陌生。
我有一个非常复杂的 SQL 查询(我不想复制和维护 3 次),其结果是一个包含 2 列的 table:
电子邮件地址,formLetterNumber
我想做的是
for each row returned:
if formLetterNumber == 1
send form letter #1 to that emailAddress
if formLetterNumber == 2
send form letter #2 to that emailAddress
if formLetterNumber == 3
send form letter #3 to that emailAddress
出于各种商业原因,我预计套用信函不会超过 3 个。
我做了什么:
- 在控制流上,我放置了一个执行 SQL 组件。 (到目前为止,一切顺利)
- 我将它连接到 Foreach 组件
- 在 Foreach 组件中,我放置了一个发送邮件任务
enter image description here
如果只有一种套用信函,这会起作用。这个单格式字母包运行没有任何问题。
但现在我想做一个有条件的拆分,这样我就可以根据 SQL 返回的formLetterNumber 将流程分成 3 个不同的发送邮件任务。但是条件拆分在数据流工具箱上,而发送邮件任务只在控制流工具箱上,我不知道如何将数据从一个组件移动到另一个组件。查看图像以了解我正在尝试做的事情:enter image description here, enter image description here
我在这个网站和 YouTube 上看过,要么找不到解决方案,要么我问问题的方式不对。 C# 和脚本是一种选择,但购买其他软件则不是。预先感谢您的建议。
可以在 SSIS 控制流中使用 Precedence Constraints。
优先约束支持表达式。如果我们在 SSIS 优先约束中选择表达式,它将计算表达式,如果表达式为真,则受约束的可执行文件运行。
因此,对于您的情况,您需要三个优先约束以及一个表达式,如下所示:
@formLetterNumber == 1
下一个优先约束表达式是
@formLetterNumber == 2
关于该主题的好文章:Overview of SSIS Precedence Constraints
作为最终结果,可以按如下方式组成过程:
- 在 Foreach Employee Container 中添加一个空的 Sequence Container。
- 乱序容器添加三个优先约束描述
以上。
- 对于特定类型的套用信函,每个优先约束都以其自己的“发送电子邮件”任务结束。
我对 SSIS 还很陌生。
我有一个非常复杂的 SQL 查询(我不想复制和维护 3 次),其结果是一个包含 2 列的 table: 电子邮件地址,formLetterNumber
我想做的是
for each row returned:
if formLetterNumber == 1
send form letter #1 to that emailAddress
if formLetterNumber == 2
send form letter #2 to that emailAddress
if formLetterNumber == 3
send form letter #3 to that emailAddress
出于各种商业原因,我预计套用信函不会超过 3 个。
我做了什么:
- 在控制流上,我放置了一个执行 SQL 组件。 (到目前为止,一切顺利)
- 我将它连接到 Foreach 组件
- 在 Foreach 组件中,我放置了一个发送邮件任务 enter image description here 如果只有一种套用信函,这会起作用。这个单格式字母包运行没有任何问题。
但现在我想做一个有条件的拆分,这样我就可以根据 SQL 返回的formLetterNumber 将流程分成 3 个不同的发送邮件任务。但是条件拆分在数据流工具箱上,而发送邮件任务只在控制流工具箱上,我不知道如何将数据从一个组件移动到另一个组件。查看图像以了解我正在尝试做的事情:enter image description here, enter image description here
我在这个网站和 YouTube 上看过,要么找不到解决方案,要么我问问题的方式不对。 C# 和脚本是一种选择,但购买其他软件则不是。预先感谢您的建议。
可以在 SSIS 控制流中使用 Precedence Constraints。
优先约束支持表达式。如果我们在 SSIS 优先约束中选择表达式,它将计算表达式,如果表达式为真,则受约束的可执行文件运行。
因此,对于您的情况,您需要三个优先约束以及一个表达式,如下所示:
@formLetterNumber == 1
下一个优先约束表达式是
@formLetterNumber == 2
关于该主题的好文章:Overview of SSIS Precedence Constraints
作为最终结果,可以按如下方式组成过程:
- 在 Foreach Employee Container 中添加一个空的 Sequence Container。
- 乱序容器添加三个优先约束描述 以上。
- 对于特定类型的套用信函,每个优先约束都以其自己的“发送电子邮件”任务结束。